<!doctype html>
<!-- Generated by chromite/licensing/licenses; do not edit.
     See https://dev.chromium.org/chromium-os/licensing-for-chromiumos-developers
-->
<html>
<head>
<meta charset="UTF-8">
<title>Credits</title>
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
<style>
body {
  background-color:white;
  font-size:84%;
  max-width:1020px;
}
.page-title {
  font-size:164%;
  font-weight:bold;
}
.product {
  background-color:#c3d9ff;
  overflow:auto;
  padding:2px;
  margin-top:3px;
  border-radius:5px;
}
.product .title {
  font-size:110%;
  font-weight:bold;
  float:left;
  margin:3px;
}
.product .homepage {
  text-align:right;
  float:right;
  margin:3px;
}
.product .homepage:after {
  content:" - ";
}
.product .show {
  text-align:right;
  float:right;
  margin:3px;
}
.licence {
  clear:both;
  background-color:#e8eef7;
  padding:3px;
  border-radius:3px;
  display:none;
}
.licence pre {
  white-space: pre-wrap
}
.licence h3 {
  margin-top:0px;
}
.license-packages {
  font-size:80%;
}
.dialog #print-link {
  display: none;
}
.dialog .homepage {
  display: none;
}

@media print {
  div.licence {
    display: block;
  }
  a.show {
    display: none;
  }
  .homepage {
    display: none;
  }
  a.print-link {
    display: none;
  }
}
</style>
<script>
//<![CDATA[
function toggle(o) {
  var licence = o.nextSibling;

  while (licence.className != 'licence') {
    if (!licence) return false;
    licence = licence.nextSibling;
  }
  return toggleblock(licence, o);
}

function toggleblock(licence, o) {
  if (licence.style && licence.style.display == 'block') {
    licence.style.display = 'none';
    o.innerHTML = 'show license text';
  } else {
    licence.style.display = 'block';
    o.innerHTML = 'hide license text';
  }
  return false;
}
//]]>
</script>
</head>
<body>
<span class="page-title" style="float:left;">Credits</span>
<span style="float:right">
<a id="print-link" href="javascript:window.print();">Print</a>
</span>
<div style="clear:both; overflow:auto;">
<h2>List of Packages used in Google Chrome OS</h2>
<!-- Chromium <3s the following projects -->
{{entries}}
</div>

<h2>List of Shared Licenses used in Google Chrome OS</h2>
{{licenses}}

</body>
</html>
