and elements
*/
/**
@@ -3005,7 +3311,6 @@ pre {
color: #444;
border-radius: 3px;
-moz-tab-size: 3;
- -o-tab-size: 3;
tab-size: 3; }
code {
@@ -3034,7 +3339,6 @@ pre {
/**
* Tables
* =================================
- * Index:
* - Associated Table Variables
* - Default table Styles
* – Table modifiers:
@@ -3103,7 +3407,7 @@ th {
* If you need more responsive tables, consider Tablesaw by the Filament Group:
* https://github.com/filamentgroup/tablesaw
*/
-@media screen and (max-width: 46.875em) {
+@media (max-width: 749px) {
.responsiveTable {
width: 100%;
margin-bottom: 21px;
@@ -3143,10 +3447,35 @@ th {
border-bottom: 0; } }
/**
- * Your app styles
+ * Partials
+ */
+/**
+ * Masthead
+ * =================================
+ */
+/**
+ * Footer
+ * =================================
+ */
+/**
+ * Browser upgrade message
+ * =================================
+ */
+.browserupgrade {
+ margin: .2em 0;
+ background: #ccc;
+ color: #000;
+ padding: .2em 0; }
+
+/**
+ * Views
+ */
+/**
+ * Global styles
*/
/**
* Global app/site styles
+ * =================================
*/
body {
background-color: #f1f1f1; }
@@ -3159,18 +3488,12 @@ body {
max-width: 1000px;
margin: 0 auto; }
-.browserupgrade {
- margin: .2em 0;
- background: #ccc;
- color: #000;
- padding: .2em 0; }
-
/**
- * Views
+ * Helper/utility classes
*/
-/* Helper/utility classes */
/**
- * Utilities
+ * Helper classes
+ * =================================
* Non-semantic helper classes
*/
/**
@@ -3178,7 +3501,7 @@ body {
* http://www.cssmojo.com/latest_new_clearfix_so_far/
* See mixins/_utility.scss for a mixin version of this
*/
-.clearfix:after {
+.clearfix::after {
content: "";
display: table;
clear: both; }
@@ -3239,7 +3562,7 @@ body {
margin-top: 0 !important; }
* {
- -webkit-tap-highlight-color: rgba(24, 24, 48, 0) !important; }
+ -webkit-tap-highlight-color: transparent !important; }
/* A hack for HTML5 contenteditable attribute on mobile */
textarea[contenteditable] {
@@ -3247,13 +3570,13 @@ textarea[contenteditable] {
.promote-layer {
/*
- This may promote the layer to a composited
- layer.
+ This may promote the layer to a composited
+ layer.
- Replace with will-change when available
+ Replace with will-change when available
- #perfmatters
- */
+ #perfmatters
+ */
-webkit-backface-visibility: hidden;
backface-visibility: hidden; }
@@ -3261,14 +3584,24 @@ textarea[contenteditable] {
-webkit-transition: all 300ms cubic-bezier(0.77, 0, 0.175, 1);
transition: all 300ms cubic-bezier(0.77, 0, 0.175, 1); }
-a, button, input, select, textarea, label, summary {
+a,
+area,
+button,
+input,
+label,
+select,
+textarea,
+[tabindex] {
-ms-touch-action: manipulation;
touch-action: manipulation; }
-/* Print styles */
/**
* Print styles
*/
+/**
+ * Print styles
+ * =================================
+ */
@media print {
*,
*:before,
@@ -3311,4 +3644,5 @@ a, button, input, select, textarea, label, summary {
widows: 3; }
h2, h3 {
page-break-after: avoid; } }
-/*# sourceMappingURL=kickoff.css.map */
\ No newline at end of file
+
+/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImtpY2tvZmYuY3NzIiwia2lja29mZi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL2Z1bmN0aW9ucy9fZ2V0LXZhbHVlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvZnVuY3Rpb25zL19tYXAtZGVlcC1nZXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9mdW5jdGlvbnMvX211bHRpcGx5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvbWl4aW5zL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX3Jlc3BvbnNpdmUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX2hpZHBpLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvbWl4aW5zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX3ZlcnRpY2FsLWNlbnRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fdXRpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fbW9kdWxlLW5hbWluZy1oZWxwZXJzLnNjc3MiLCJfY29sb3ItcGFsZXR0ZS5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiX3Jlc2V0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvbm9ybWFsaXplLXNjc3Mvc2Fzcy9ub3JtYWxpemUvX25vcm1hbGl6ZS1taXhpbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL25vcm1hbGl6ZS1zY3NzL3Nhc3Mvbm9ybWFsaXplL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ub3JtYWxpemUtc2Nzcy9zYXNzL25vcm1hbGl6ZS9fdmVydGljYWwtcmh5dGhtLnNjc3MiLCJfdHlwb2dyYXBoeS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZmx1aWRWaWRlby5jc3Mvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZ3JpZC5jc3Mvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZ3JpZC5jc3Mvc2Nzcy9fZ3JpZC12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLWdyaWQuY3NzL3Njc3MvX2dyaWQtaGVscGVycy5zY3NzIiwiY29tcG9uZW50cy9mb3Jtcy9fZm9ybXMuc2NzcyIsImNvbXBvbmVudHMvZm9ybXMvX2Zvcm0tdGhlbWUtc3RhbmRhcmQuc2NzcyIsImNvbXBvbmVudHMvZm9ybXMvX2Zvcm0taGVscGVycy5zY3NzIiwiY29tcG9uZW50cy9mb3Jtcy9fZm9ybXMtY3VzdG9tLXJhZGlvc2NoZWNrYm94ZXMuc2NzcyIsImNvbXBvbmVudHMvZm9ybXMvX2Zvcm1zLWN1c3RvbS1zZWxlY3Quc2NzcyIsImNvbXBvbmVudHMvZm9ybXMvX2Zvcm1zLWN1c3RvbS1maWxlLnNjc3MiLCJjb21wb25lbnRzL19saW5rcy5zY3NzIiwiY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwiY29tcG9uZW50cy9fbGlzdHMuc2NzcyIsImNvbXBvbmVudHMvX2VtYmVkZGVkLWNvbnRlbnQuc2NzcyIsImNvbXBvbmVudHMvX2ljb25zLnNjc3MiLCJjb21wb25lbnRzL19za2lwLW5hdmlnYXRpb24uc2NzcyIsImNvbXBvbmVudHMvX2NvZGUuc2NzcyIsImNvbXBvbmVudHMvX3RhYmxlcy5zY3NzIiwicGFydGlhbHMvX21hc3RoZWFkLnNjc3MiLCJwYXJ0aWFscy9fZm9vdGVyLnNjc3MiLCJwYXJ0aWFscy9fYnJvd3Nlci11cGdyYWRlLnNjc3MiLCJfZ2xvYmFsLnNjc3MiLCJfaGVscGVyLWNsYXNzZXMuc2NzcyIsInZpZXdzL19wcmludC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQ0c7QUFHSDs7R0FFRztBQ3JDSDs7Ozs7O0dBTUc7QUFhSDs7Ozs7Ozs7O0dBU0c7QUFNSDs7Ozs7Ozs7O0dBU0c7QUMzQ0g7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUNoQkg7Ozs7O0dBS0c7QUFzRUg7Ozs7OztHQU1HO0FDakZIOzs7Ozs7OztHQVFHO0FDUkg7Ozs7Ozs7O0dBUUc7QUNSSDs7Ozs7OztHQU9HO0FBY0g7Ozs7R0FJRztBQVVIOzs7O0dBSUc7QUFVSDs7OztHQUlHO0FDckRIOzs7O0dBSUc7QUFXSDs7O0dBR0c7QUFhSDs7O0dBR0c7QUNqQ0g7Ozs7Ozs7R0FPRztBQVdIOztHQUVHO0FDckJIOzs7O0dBSUc7QUNKSDs7Ozs7R0FLRztBQ0xIOzs7Ozs7Ozs7R0FTRztBQTRGSDs7R0FFRztBQ3ZHSDs7Ozs7O0dBTUc7QVpvQ0g7OztHQUdHO0FhN0NIOzs7Ozs7Ozs7O0dBVUc7QUNWSDs7Ozs7Ozs7R0FRRztBQUVILG1DQUFtQztBQUVuQzs7Ozs7OztHQU9HO0FBc0NIOzs7Ozs7O0dBT0c7QUFpQkg7Ozs7OztHQU1H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LGFBQWEsRUFDYjs7QUFFRDtFQUNDLFlBQVk7RUFDWixZQUFZLEVBQ1o7O0FBRUQ7RUFBUyw0QkFBNEIsRUFBSTs7QUFDekM7RUFBUyx5QkFBeUIsRUFBSTs7QUFHdEM7RUFDQyxvREFBb0QsRUFDcEQ7O0FBRUQsMERBQTBEO0FBQzFEO0VBQ0MseUJBQXlCLEVBQ3pCOztBQUVEO0VBQ0M7Ozs7Ozs7R0FPRTtFQUNGLG9DQUE0QjtVQUE1Qiw0QkFBNEIsRUFDNUI7O0FBR0Q7RUFDQyw4RDdCUTBDO0U2QlIxQyxzRDdCUTBDLEU2QlAxQzs7QUFJRDs7Ozs7Ozs7RUFRQywrQkFBMkI7TUFBM0IsMkJBQTJCLEVBQzNCOztBM0NSRDs7R0FFRztBNENySEg7OztHQUdHO0FBRUg7RUFDQzs7OztJQUlDLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFBRSwrREFBK0Q7SUFDeEYsNEJBQTRCO0lBQzVCLDZCQUE2QixFQUM3QjtFQUVEO0lBRUUsMkJBQTJCLEVBQzNCO0VBSEY7SUFNRSw2QkFBNEIsRUFDNUI7RUFHRjtJQUNDLDhCQUE2QixFQUM3QjtFQUVEOztJQUVHO0VBQ0g7OztJQUdDLFlBQVksRUFDWjtFQUVEOztJQUVDLHVCQUF1QjtJQUN2Qix5QkFBeUIsRUFDekI7RUFFRDtJQUNDLDRCQUE0QjtJQUFFLGdCQUFnQixFQUM5QztFQUVEOztJQUVDLHlCQUF5QixFQUN6QjtFQUVEO0lBQ0MsMkJBQTJCLEVBQzNCO0VBRUQ7SUFDQyxhQUFhLEVBQUE7RUFHZDtJQUNDLFdBQVc7SUFDWCxVQUFVLEVBQ1Y7RUFFRDtJQUNDLHdCQUF3QixFQUN4QixFQUFBIiwiZmlsZSI6ImtpY2tvZmYuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiDilojilojilZcgIOKWiOKWiOKVl+KWiOKWiOKVlyDilojilojilojilojilojilojilZfilojilojilZcgIOKWiOKWiOKVlyDilojilojilojilojilojilojilZcg4paI4paI4paI4paI4paI4paI4paI4pWX4paI4paI4paI4paI4paI4paI4paI4pWXXG4gKiDilojilojilZEg4paI4paI4pWU4pWd4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWQ4pWQ4pWd4paI4paI4pWRIOKWiOKWiOKVlOKVneKWiOKWiOKVlOKVkOKVkOKVkOKWiOKWiOKVl+KWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVnVxuICog4paI4paI4paI4paI4paI4pWU4pWdIOKWiOKWiOKVkeKWiOKWiOKVkSAgICAg4paI4paI4paI4paI4paI4pWU4pWdIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKWiOKWiOKWiOKVlyAg4paI4paI4paI4paI4paI4pWXXG4gKiDilojilojilZTilZDilojilojilZcg4paI4paI4pWR4paI4paI4pWRICAgICDilojilojilZTilZDilojilojilZcg4paI4paI4pWRICAg4paI4paI4pWR4paI4paI4pWU4pWQ4pWQ4pWdICDilojilojilZTilZDilZDilZ1cbiAqIOKWiOKWiOKVkSAg4paI4paI4pWX4paI4paI4pWR4pWa4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWRICDilojilojilZfilZrilojilojilojilojilojilojilZTilZ3ilojilojilZEgICAgIOKWiOKWiOKVkVxuICog4pWa4pWQ4pWdICDilZrilZDilZ3ilZrilZDilZ0g4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWd4pWa4pWQ4pWdICDilZrilZDilZ0g4pWa4pWQ4pWQ4pWQ4pWQ4pWQ4pWdIOKVmuKVkOKVnSAgICAg4pWa4pWQ4pWdXG4gKiBCeSBaYW5kZXIgTWFydGluZWF1ICYgQXNobGV5IE5vbGFuXG4gKiBodHRwOi8vdHJ5a2lja29mZi5jb21cbiAqXG4gKiBQcm9qZWN0IGRlcGVuZGVuY2llc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIE1peGlucywgaGVscGVycyBhbmQgZnVuY3Rpb25zXG4gKiAtIENvcmUgdmFyaWFibGVzXG4gKiAtIENTUyByZXNldHNcbiAqIC0gVHlwb2dyYXBoeSBzdHlsZXNcbiAqIC0gQ29tcG9uZW50c1xuICogLSBQYXJ0aWFsc1xuICogLSBWaWV3c1xuICogLSBHbG9iYWwgc3R5bGVzXG4gKiAtIEhlbHBlci91dGlsaXR5IGNsYXNzZXNcbiAqIC0gUHJpbnQgc3R5bGVzXG4gKlxuICogUmVhZCBhYm91dCBvdXIgZGlzdGluY3Rpb24gYmV0d2VlbiB2aWV3cywgcGFydGlhbHMgYW5kIGNvbXBvbmVudHMgYXRcbiAqIGh0dHBzOi8vdHJ5a2lja29mZi5jb20vbGVhcm4vY3NzLmh0bWwjdmlld3MtcGFydGlhbHMtLWNvbXBvbmVudHNcbiAqXG4gKiAjIyBZZW9tYW5cbiAqIFRoZSBZZW9tYW4gZ2VuZXJhdG9yIGNhbiBhbHNvIGJlIHVzZWQgdG8gYWRkIG5ldyB2aWV3cywgcGFydGlhbHMgYW5kXG4gKiBjb21wb25lbnRzLiBlLmcuIGB5byBraWNrb2ZmOnNhc3M6Y29tcG9uZW50IGZvb2Agd2lsbCBjcmVhdGUgYSBuZXcgZmlsZTpcbiAqIGBzY3NzL2NvbXBvbmVudHMvX2NvbXBvbmVudC5zY3NzYCBhbmQgYWRkIHRoZSBgQGltcG9ydGAgc3RhdGVtZW50IGluIHRoaXNcbiAqIGZpbGUuIEluc3RhbGwgdGhlIGdlbmVyYXRvciBieSBydW5uaW5nIGBucG0gaSAtZyB5byBnZW5lcmF0b3Ita2lja29mZmBcbiAqXG4gKi9cbi8qXG4gKiBNaXhpbnMsIGhlbHBlcnMgYW5kIGZ1bmN0aW9uc1xuICovXG4vKipcbiAqIFVzYWdlOlxuICpcbiAqIGtvLWdldFZhbCgxMDAsICRtYXApIC0gdXNlcyBhbiBpbnRlZ2VyXG4gKiBrby1nZXRWYWwobWlkLCAkbWFwKSAtIHVzZXMgYSBTYXNzIG1hcFxuICoga28tZ2V0VmFsKCRmb28sICRtYXApIC0gdXNlcyBhIFNhc3MgdmFyaWFibGVcbiAqL1xuLyoqXG4gKiBHZXQgYnJlYWtwb2ludHNcbiAqXG4gKiBrby1icCgpXG4gKlxuICogVXNhZ2U6XG4gKiBrby1icCgxMDApIC0gdXNlcyBhbiBpbnRlZ2VyXG4gKiBrby1icChtaWQpIC0gdXNlcyB0aGUgJGJyZWFrcG9pbnRzIFNhc3MgbWFwXG4gKiBrby1icCgkZm9vKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cbi8qKlxuICogR2V0IHR5cGUgc2l6ZVxuICpcbiAqIGtvLXR5cGUoKVxuICpcbiAqIFVzYWdlOlxuICoga28tdHlwZSgxMDApIC0gdXNlcyBhbiBpbnRlZ2VyXG4gKiBrby10eXBlKG1pZCkgLSB1c2VzIHRoZSAkdHlwZSBTYXNzIG1hcFxuICoga28tdHlwZSgkZm9vKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cbi8qKlxuICogVXNhZ2U6XG4gKlxuICRncmlkLWNvbmZpZ3VyYXRpb246IChcbiAgICdjb2x1bW5zJzogMTIsXG4gICAnbGF5b3V0cyc6IChcbiAgICAgJ3NtYWxsJzogODAwcHgsXG4gICAgICdtZWRpdW0nOiAxMDAwcHgsXG4gICAgICdsYXJnZSc6IDEyMDBweCxcbiAgICksXG4gKTtcblxuIGRpdiB7XG4gICBmb250LXNpemU6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnY29sdW1ucycpO1xuICAgd2lkdGg6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnbGF5b3V0cycsICdtZWRpdW0nKTtcbiB9XG4gKi9cbi8qKlxuICogTW9kdWxhciBzY2FsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBVc2FnZToga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIDMsICR0eXBlLXNjYWxlKVxuICogb3Igd2l0aCB0aGUgc2hvcnRoYW5kIHZlcnNpb246IGtvLW1zKDMpXG4gKi9cbi8qKlxuICogU2hvcnRoYW5kIG1vZHVsYXIgc2NhbGVcbiAqIFVzZXMgdGhlICRmb250LXNpemUtYmFzZSBhbmQgJHR5cGUtc2NhbGUgZnJhbWV3b3JrIHZhcmlhYmxlcyBzbyB0aGF0IHlvdVxuICogb25seSBuZWVkIHRvIHByb3ZpZGUgdGhlIHNjYWxlIGluY3JlbWVudFxuICpcbiAqIGUuZy4ga28tbXMoNSlcbiAqL1xuLyoqXG4gKiBNdWx0aXBseVxuICogPT09PT09PT09PT09PT09PT1cbiAqIE11bHRpcGx5IGFueSB2YWx1ZVxuICpcbiAqIFVzYWdlOlxuICoga28tbXVsdGlwbHkoMTUsIDIpXG4gKiBrby1tdWx0aXBseSgkYmFzZWxpbmUsIDEuNSlcbiAqL1xuLyoqXG4gKiBTYXNzIE1peGluc1xuICogLSBSZXNwb25zaXZlXG4gKiAtIERpbWVuc2lvbnNcbiAqIC0gUG9zaXRpb25pbmdcbiAqIC0gVXRpbGl0eVxuICogLSBGb3Jtc1xuICogLSBNb2R1bGUgTmFtaW5nIEhlbHBlcnNcbiAqL1xuLyoqXG4gKiBSZXNwb25zaXZlIG1lZGlhIHF1ZXJ5IG1peGluc1xuICogLSBUaGVzZSBhcmUgdXNlZCBzbyB0aGF0IHdlIGNhbiBkZWZpbmUgc2VwYXJhdGUgbWVkaWEtcXVlcnkgY29udGVudFxuICogLSBBcmd1bWVudHMgY2FuIHVzZTpcbiAqICAgLSBhIG5hbWVkIGJyZWFrcG9pbnQgaW4gdGhlICRicmVha3BvaW50cyBtYXAsIGUuZy4gbWlkXG4gKiAgIC0gYSBwaXhlbCB2YWx1ZSBlLmcuIDUwMHB4XG4gKiAgIC0gYSB1bml0bGVzcyB2YWx1ZSB0aGF0IGlzIGVxaXZhbGVudCB0byBhIHBpeGVsIGUuZy4gNTAwXG4gKi9cbi8qKlxuICogTWluLXdpZHRoIG1lZGlhIHF1ZXJ5OlxuICogLSBFcXVpdmFsZW50IHRvOiBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyMGVtKSB7IC4uLiB9XG4gKiAtIFVzYWdlOiBAaW5jbHVkZSBrby1yZXNwb25kLW1pbihtaWQpIHsgLi4uIH07XG4gKi9cbi8qKlxuICogTWF4LXdpZHRoIG1lZGlhIHF1ZXJ5OlxuICogLSBFcXVpdmFsZW50IHRvOiBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAyMGVtKSB7IC4uLiB9XG4gKiAtIFVzYWdlOiBAaW5jbHVkZSBrby1yZXNwb25kLW1heChtaWQpIHsgLi4uIH07XG4gKi9cbi8qKlxuICogTWluLW1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTBlbSkgYW5kIChtYXgtd2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluLW1heChuYXJyb3csIDYwMCkgeyAuLi4gfTtcbiAqL1xuLyoqXG4gKiAgSGlEUEkgbWl4aW4uXG4gKiAgQGluY2x1ZGUga28taGlkcGkgeyAuLi4gfTtcbiAqICBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbiAqL1xuLyoqXG4gKiBIaWRwaSB3aXRoIGEgbWluaW11bSB3aWR0aCBtZWRpYSBxdWVyeVxuICogQGluY2x1ZGUga28taGlkcGktbWluKGJwKG1pZCksIDEuNSkgeyAuLi4gfTtcbiAqL1xuLyoqXG4gKiBIaWRwaSB3aXRoIGEgbWF4IHdpZHRoIG1lZGlhIHF1ZXJ5XG4gKiBAaW5jbHVkZSBrby1oaWRwaS1tYXgoYnAobWlkKSwgMS4zKSB7IC4uLiB9O1xuICovXG4vKipcbiAqIERpbWVuc2lvbnMtYmFzZWQgbWl4aW5zXG4gKiAtIFJFTSBjYWxjdWxhdGlvblxuICogLSBUeXBvZ3JhcGh5IG1peGlucyBiYXNlZCBvbiB0aGUgUkVNIG1peGluXG4gKiAgIC0gZm9udC1zaXplXG4gKiAgIC0gbGluZS1oZWlnaHRcbiAqICAgLSBmb250LXNpemUtZW1zXG4gKi9cbi8qKlxuICogVHlwb2dyYXBoeSBtaXhpbnNcbiAqL1xuLyoqXG4gKiBrby1wb3NpdGlvblxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSBrby1wb3NpdGlvbihhYnNvbHV0ZSwgMTBweCAyMHB4IDMwcHggMTBweCk7XG4gKi9cbi8qKlxuICogdmVydGljYWwtY2VudGVyXG4gKiBWZXJ0aWNhbGx5IGNlbnRlciBhbnkgZWxlbWVudC4gTmVlZHMgc3VwcG9ydCBmb3IgQ1NTIHRyYW5mb3Jtcy5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUga28tdmVydGljYWwtY2VudGVyO1xuICovXG4vKipcbiAqIFV0aWxpdHkgTWl4aW5zXG4gKiAtIGNsZWFyZml4XG4gKiAtIGZvbnQtZmFjZVxuICogLVxuICogLSBzaXppbmcgc2hvcnRjdXRzXG4gKiAgIC0gc2l6ZVxuICogICAtIHNxdWFyZVxuICogLSByZXNpemFibGVcbiAqL1xuLyoqXG4gKiBTaXppbmcgc2hvcnRjdXRzXG4gKi9cbi8qKlxuICogYmVtaWZ5IFttb2RpZmllZCBmb3IgS2lja29mZl1cbiAqIGh0dHBzOi8vZ3RpaHViLmNvbS9mcmFuemhlaWRsL2JlbWlmeVxuICogRnJhbnogSGVpZGwgMjAxNVxuICpcbiAqIFVzYWdlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS8wY2QyMDEwYmYyNjVkNzEyYmFmYlxuICovXG4vKipcbiAqIENvcmUgdmFyaWFibGVzXG4gKiBFZGl0IHlvdXIgY29sb3IgcGFsZXR0ZSBhbmQgYXBwIHZhcnMgYmVmb3JlIHlvdXIgYmVnaW5cbiAqL1xuLyoqXG4gKiBHbG9iYWwgY29sb3IgcGFsZXR0ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEdlbmVyaWMgY29sb3JzXG4gKiAtIENvbG9yIHNjaGVtZVxuICogLSBDb21tb24gY29sb3JzXG4gKiAtIExpbmtzXG4gKiAtIFRleHQgc2VsZWN0aW9uXG4gKiAtIDxocj5cbiAqIC0gQW55IG90aGVycy4uXG4gKi9cbi8qKlxuICogVmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIC0gVHlwb2dyYXBoeVxuICogLSBCcmVha3BvaW50c1xuICogLSBQYXRoc1xuICogLSBMYXlvdXQgJiBHcmlkXG4gKiAtIEFwcC1zcGVjaWZpY1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvbiAqL1xuLyoqXG4gKiBUeXBvZ3JhcGh5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBCYXNlIHNpemVzOlxuICogU2V0IHRoaXMgaW4gcGl4ZWxzIChidXQgZG8gbm90IGFkZCBweCksXG4gKiB0aGUgZm9udC1zaXplIG1peGluIHdpbGwgY29udmVydCB0byBSRU1TXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlcmUgYXJlIG5vIGNvbW1vbiBicmVha3BvaW50cyBzbyB0aGVzZSBhcmUganVzdCBhIHN1Z2dlc3Rpb25zXG4gKiBZb3UnbGwgbmVlZCB0byBkZWZpbmUgeW91ciBvd24gYnJlYWtwb2ludHMgdG8gc3VpdCB5b3VyIGRlc2lnblxuICogQWRkIHlvdXIgYnJlYWtwb2ludHMgdG8gdGhpcyBTYXNzIG1hcFxuICogVXNlZCBpbiB0aGUgS2lja29mZiBncmlkXG4gKi9cbi8qKlxuICogR3JpZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBUaGVzZSB2YXJpYWJsZXMgd2lsbCBjb250cm9sIHRoZSBncmlkIG1vZHVsZS5cbiAqXG4gKiBpZiB5b3VyIHByb2plY3QgZG9lc250IHVzZSBLaWNrb2Zm4oCZcyBkZWZhdWx0IGdyaWQsIHlvdSBjYW4gZGVsZXRlIHRoZXNlXG4gKi9cbi8qKlxuICogUGF0aCB2YXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4vKipcbiAqIFotaW5kZXggdmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBBcHAtc3BlY2lmaWMgdmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBDU1MgcmVzZXRzXG4gKi9cbi8qKlxuICogS2lja29mZiByZXNldFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBXZSB1c2Ugbm9ybWFsaXplLmNzcyBmb3IgdGhlIGJ1bGsgb2Ygb3VyICdyZXNldCdcbiAqL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcbiAgYm94LXNpemluZzogaW5oZXJpdDsgfVxuXG4vKiEgbm9ybWFsaXplLXNjc3MgfCBNSVQvR1BMdjIgTGljZW5zZSB8IGJpdC5seS9ub3JtYWxpemUtc2NzcyAqL1xuLyogRG9jdW1lbnRcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gQ2hhbmdlIHRoZSBkZWZhdWx0IGZvbnQgZmFtaWx5IGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGxpbmUgaGVpZ2h0IGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAzLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gICAgICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICAgICAqL1xuaHRtbCB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAvKiAyICovXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlO1xuICAvKiAzICovXG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMyAqLyB9XG5cbi8qIFNlY3Rpb25zXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmFydGljbGUsXG5hc2lkZSxcbmZvb3RlcixcbmhlYWRlcixcbm5hdixcbnNlY3Rpb24ge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gICAgICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAgICAgKi9cbmgxIHtcbiAgZm9udC1zaXplOiAyZW07XG4gIG1hcmdpbjogMC42N2VtIDA7IH1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmZpZ2NhcHRpb24sXG5maWd1cmUge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gICAgICovXG5maWd1cmUge1xuICBtYXJnaW46IDFlbSA0MHB4OyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5ociB7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAvKiAxICovXG4gIGhlaWdodDogMDtcbiAgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xubWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyogTGlua3NcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gICAgICogMS4gUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgb24gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuICAgICAqIDIuIFJlbW92ZSBnYXBzIGluIGxpbmtzIHVuZGVybGluZSBpbiBpT1MgOCsgYW5kIFNhZmFyaSA4Ky5cbiAgICAgKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBvdXRsaW5lIG9uIGZvY3VzZWQgbGlua3Mgd2hlbiB0aGV5IGFyZSBhbHNvIGFjdGl2ZSBvciBob3ZlcmVkXG4gICAgICogaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lLXdpZHRoOiAwOyB9XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqLyB9XG5cbi8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBpbmhlcml0OyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG4gICAgICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICAgICAqL1xuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDsgfVxuXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07IH1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cblxuLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAgICAgKi9cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGhlaWdodDogMDsgfVxuXG4vKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4vKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgLyogMSAqL1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICBtYXJnaW46IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cbmJ1dHRvbiB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAgICAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAgICAgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIC8qIDEgKi9cbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cblxuLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi8gfVxuXG5idXR0b24sXG5bdHlwZT1cImJ1dHRvblwiXSxcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqLyB9XG4gIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwicmVzZXRcIl06Oi1tb3otZm9jdXMtaW5uZXIsXG4gIFt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICBidXR0b246LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwiYnV0dG9uXCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuICBbdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0OyB9XG5cbi8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLS5cbiAgICAgKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICAgICAqL1xuW3R5cGU9XCJjaGVja2JveFwiXSxcblt0eXBlPVwicmFkaW9cIl0ge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDIgKi8gfVxuXG4vKipcbiAgICAgKiBDb3JyZWN0IHRoZSBjdXJzb3Igc3R5bGUgb2YgaW5jcmVtZW50IGFuZCBkZWNyZW1lbnQgYnV0dG9ucyBpbiBDaHJvbWUuXG4gICAgICovXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgLyogMSAqL1xuICBvdXRsaW5lLW9mZnNldDogLTJweDtcbiAgLyogMiAqL1xuICAvKipcbiAgICAgICAqIFJlbW92ZSB0aGUgaW5uZXIgcGFkZGluZyBhbmQgY2FuY2VsIGJ1dHRvbnMgaW4gQ2hyb21lIGFuZCBTYWZhcmkgb24gbWFjT1MuXG4gICAgICAgKi8gfVxuICBbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiwgW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cbjo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgLyogMSAqL1xuICBmb250OiBpbmhlcml0O1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogQ2hhbmdlIHRoZSBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcgaW4gYWxsIGJyb3dzZXJzIChvcGluaW9uYXRlZCkuXG4gICAgICovXG5maWVsZHNldCB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gIG1hcmdpbjogMCAycHg7XG4gIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTsgfVxuXG4vKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgICAgKiAzLiBSZW1vdmUgdGhlIHBhZGRpbmcgc28gZGV2ZWxvcGVycyBhcmUgbm90IGNhdWdodCBvdXQgd2hlbiB0aGV5IHplcm8gb3V0XG4gICAgICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5sZWdlbmQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAvKiAxICovXG4gIGRpc3BsYXk6IHRhYmxlO1xuICAvKiAxICovXG4gIG1heC13aWR0aDogMTAwJTtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAzICovXG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAyICovXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gIC8qIDEgKi8gfVxuXG4vKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICAgICAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovIH1cblxuLyoqXG4gICAgICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAgICAgKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87IH1cblxuLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5kZXRhaWxzIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtOyB9XG5cbi8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gICAgICovXG5tZW51IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIEhpZGRlblxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSAxMC0uXG4gICAgICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLyoqXG4gKiBUeXBvZ3JhcGh5IHN0eWxlc1xuICogU2VlIGh0dHBzOi8vdHJ5a2lja29mZi5jb20vZGVtb3MvdHlwb2dyYXBoeS5odG1sIGZvciBtb3JlIGluZm9cbiAqL1xuLyoqXG4gKiBUeXBvZ3JhcGh5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIC0gQmFzZVxuICogLSBQYXJhZ3JhcGhzXG4gKiAtIEhlYWRpbmdzXG4gKiAtIFR5cGUgc2l6ZXNcbiAqIC0gTWlzY1xuICogLSBVdGlsaXRpZXNcbiAqXG4gKiBCb2R5IGZvbnQgc2l6ZSwgbGVhZGluZ3MgZXRjIGhhdmUgYmVlbiBzZXQgaW4gX3ZhcmlhYmxlcy5zY3NzXG4gKlxuICogU2VlIGh0dHA6Ly9tb2R1bGFyc2NhbGUuY29tIGZvclxuICpcbiAqL1xuaHRtbCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgIGh0bWwge1xuICAgICAgZm9udC1zaXplOiAyMHB4OyB9IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGNvbG9yOiAjNDQ0O1xuICBmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLCBcImRsaWdcIiwgXCJoaXN0XCI7XG4gIGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IGNvbW1vbi1saWdhdHVyZXMgZGlzY3JldGlvbmFyeS1saWdhdHVyZXMgaGlzdG9yaWNhbC1saWdhdHVyZXM7IH1cblxuLyoqXG4gKiBQYXJhZ3JhcGhzXG4gKi9cbnAge1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAyOHB4OyB9XG5cbi8qKlxuICogSGVhZGluZ3NcbiAqL1xuaDEsXG5oMixcbmgzLFxuaDQsXG5oNSxcbmg2IHtcbiAgbWFyZ2luOiAwO1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZWxlZ2liaWxpdHk7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDI4cHg7IH1cbiAgaDEgc21hbGwsXG4gIGgyIHNtYWxsLFxuICBoMyBzbWFsbCxcbiAgaDQgc21hbGwsXG4gIGg1IHNtYWxsLFxuICBoNiBzbWFsbCB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuXG5oMSxcbi5oMSxcbi5hbHBoYSB7XG4gIGZvbnQtc2l6ZTogMS45NTMxMnJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNTZweDsgfVxuXG5oMixcbi5oMixcbi5iZXRhIHtcbiAgZm9udC1zaXplOiAxLjU2MjVyZW07IH1cblxuaDMsXG4uaDMsXG4uZ2FtbWEge1xuICBmb250LXNpemU6IDEuMjVyZW07IH1cblxuaDQsXG4uaDQsXG4uZGVsdGEge1xuICBmb250LXNpemU6IDFyZW07IH1cblxuaDUsXG4uaDUsXG4uZXBzaWxvbixcbmg2LFxuLmg2LFxuLnpldGEge1xuICBmb250LXNpemU6IDFyZW07XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuKiArIGgxLFxuKiArIC5oMSxcbiogKyAuYWxwaGEsXG4qICsgaDIsXG4qICsgLmgyLFxuKiArIC5iZXRhLFxuKiArIGgzLFxuKiArIC5oMyxcbiogKyAuZ2FtbWEsXG4qICsgaDQsXG4qICsgLmg0LFxuKiArIC5kZWx0YSB7XG4gIG1hcmdpbi10b3A6IDI4cHg7IH1cblxuc21hbGwge1xuICBmb250LXNpemU6IDgwJTsgfVxuXG4vKipcbiAqIE1pc2NlbGxhbmVvdXNcbiAqL1xuc3Ryb25nLFxuYiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmVtLFxuaSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYzsgfVxuXG5hYmJyW3RpdGxlXSB7XG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2RkZDtcbiAgY3Vyc29yOiBoZWxwOyB9XG5cbi8qKlxuICogQmxvY2txdW90ZXNcbiAqL1xuYmxvY2txdW90ZSB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgbWFyZ2luOiAyOHB4O1xuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNjY2NjY2M7IH1cbiAgYmxvY2txdW90ZSBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBmb250LXdlaWdodDogMzAwOyB9XG4gIGJsb2NrcXVvdGUgc21hbGwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGNvbG9yOiAjYjNiM2IzOyB9XG4gICAgYmxvY2txdW90ZSBzbWFsbDo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICdcXDIwMTQgXFwwMEEwJzsgfVxuXG5xOjpiZWZvcmUsIHE6OmFmdGVyLFxuYmxvY2txdW90ZTo6YmVmb3JlLFxuYmxvY2txdW90ZTo6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiOyB9XG5cbmNpdGUge1xuICBmb250LXN0eWxlOiBub3JtYWw7IH1cblxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljOyB9XG5cbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmVlZjZkO1xuICBwYWRkaW5nOiAycHggNHB4O1xuICBib3JkZXItcmFkaXVzOiAzcHg7IH1cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07IH1cblxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTsgfVxuXG4vKipcbiAqIFV0aWxpdGllc1xuICovXG4udGV4dC1jZW50cmUsXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLnRleHQtbGVmdCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG46Oi1tb3otc2VsZWN0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMxODE4MzA7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbjo6c2VsZWN0aW9uIHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQ6ICMxODE4MzA7XG4gIHRleHQtc2hhZG93OiBub25lOyB9XG5cbmhyIHtcbiAgbWFyZ2luOiAyOHB4IDA7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNiM2IzYjM7IH1cblxuLmh5cGhlbmF0ZSB7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbiAgaHlwaGVuczogYXV0bzsgfVxuXG4vKipcbiAqIENvbXBvbmVudHNcbiAqIFNlZSBodHRwczovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2NvbXBvbmVudHMuaHRtbCBmb3IgbW9yZSBpbmZvXG4gKlxuICogTm90ZTogcGxhY2UgYWxsIDNyZCBwYXJ0eSBjb21wb25lbnRzIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3RcbiAqL1xuLmZsdWlkVmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGhlaWdodDogMDtcbiAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgfVxuICAuZmx1aWRWaWRlby0tNC0zIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNzUlOyB9XG5cbi5mbHVpZFZpZGVvLWl0ZW0sXG4uZmx1aWRWaWRlbyBpZnJhbWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTsgfVxuXG4vKipcbiAqIFRoZSBLaWNrb2ZmIEZsZXhib3ggR3JpZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBEZWZhdWx0IGdyaWQgY2xhc3Nlc1xuICogR3JpZCBndXR0ZXIgb3B0aW9uc1xuICogTW9kaWZpZXIgQ2xhc3NlcyAoY29sdW1uIGhlaWdodCBhbmQgY2VsbCBhbGlnbm1lbnQpXG4gKiBMZWdhY3kgZmFsbGJhY2tzIGZvciBmbGV4Ym94XG4gKiBHcmlkIHNwYW4gY2xhc3Nlc1xuICogQnJlYWtwb2ludCBzdGFja2luZ1xuICovXG4vKiBJbXBvcnQgR3JpZCBoZWxwZXJzIGFuZCBtaXhpbnMgKi9cbi8qKlxuICogR3JpZCBWYXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGF0IHRoZSBncmlkIGNhbiBydW4gYXMgYSBzdGFuZGFsb25lIG1vZHVsZSAob3V0c2lkZSBvZiBLaWNrb2ZmKSxcbiAqIGFzIHdlbGwgYXMgYWxsb3dpbmcgdGhlc2UgZmlsZXMgdG8gYmUgZ2VuZXJhdGVkIGludG8gc3RhbmRhcmQgQ1NTLlxuICpcbiAqIFdoZW4gaW1wb3J0aW5nIHRoZSBncmlkIGludG8geW91ciBvd24gcHJvamVjdCwgY29weSB0aGUgdmFyaWFibGVzIGZyb20gdGhpcyBmaWxlIGludG8geW91ciBvd24gdmFyaWFibGVzLnNjc3NcbiAqIFRoZXkgd2lsbCB0aGVuIG92ZXJyaWRlIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGhlcmUgKGFzIGxvbmcgYXMgdGhlIGdyaWQgaXMgaW1wb3J0ZWQgYmVsb3cgd2hlcmUgeW91ciBvd24gdmFyaWFibGVzIGFyZSBkZWZpbmVkKS5cbiAqL1xuLyoqXG4gKiBLaWNrb2ZmIGdyaWQgaGVscGVyc1xuICovXG4vKipcbiAqIEdyaWQgc3RhY2tpbmdcbiAqIFN0YWNrIGdyaWRzIGJhc2VkIG9uIGEgZ2l2ZW4gYnJlYWtwb2ludFxuICpcbiAqIFVzYWdlOlxuICogLmctLXN0YWNrLS1uYXJyb3dcbiAqIC5nLS1zdGFjay0td2lkZVxuICovXG4vKipcbiAqIEd1dHRlciBDYWxjdWxhdGlvbnNcbiAqIERlZmF1bHQ6IHBlcmNlbnRcbiAqIFVzYWdlOiBrby1ndXR0ZXJDYWxjKCkgb3Iga28tZ3V0dGVyQ2FsYyhmYWxzZSlcbiAqIFdoZW4gc2hvdy11bml0IGlzIHRydWUsIHJldHVybnMgdGhlIHBlcmNlbnRhZ2UsIG90aGVyd2lzZSByZXR1cm4gYSBkZWNpbWFsXG4gKi9cbi8qKlxuICogR3JpZCBjb2x1bW5zIHdpZHRoIGNhbGN1bGF0aW9uc1xuICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgb2Ygd29ya2luZyBvdXQgdGhlIGNvbHVtbiB3aWR0aHMgaGFwcGVuc1xuICpcbiAqICRjb2x1bW4tc3BhbjogZGVmaW5lIHRoZSB3aWR0aCBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHJlcXVpcmVkXG4gKiAkc2hvdy11bml0OiBTd2l0Y2ggcmV0dXJuIHZhbHVlIGJldHdlZW4gcGVyY2VudGFnZSAoZGVmYXVsdCkgYW5kIGRlY2ltYWxcbiAqICRpbmNsdWRlLWd1dHRlcnM6IGlmIGd1dHRlcnMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBjYWxjdWxhdGlvbnMuIERlZmF1bHQgPSBmYWxzZVxuICogJGxlZ2FjeS1jYWxjOiBpZiB3ZSBhcmUgd29ya2luZyBvdXQgYSBsZWdhY3kgY29sdW1uIHdpZHRoIGNhbGN1bGF0aW9uLCBvciBub3QuIERlZmF1bHQgPSBmYWxzZVxuICovXG4vKipcbiAqIENvbHVtbiB3aWR0aCBtaXhpblxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSBjb2x1bW4oMik7XG4gKi9cbi8qKlxuICogQmFzaWMgVXNhZ2U6XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0PGRpdiBjbGFzcz1cImdcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuNCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuOCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0PC9kaXY+XG4gKi9cbi5nIHtcbiAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmcgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmctY29sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZsZXg6IDEgMCAwO1xuICBtaW4td2lkdGg6IDA7IH1cblxuLyoqXG4gKiBHdXR0ZXIgY2FsY3Mg4oCTIGFwcGxpZWQgdG8gZ3JpZCBjb2x1bW5zIGluIG91ciBncmlkIChkaXJlY3QgZGVzY2VuZGFudHMgb25seSlcbiAqIERlZmF1bHQ6IHBpeGVscyAoY2FuIGxvb2sgYXQgY2hhbmdpbmcgdG8gcGVyY2VudGFnZSlcbiAqIFVzYWdlOiBndXR0ZXJDYWxjKCkgb3IgZ3V0dGVyQ2FsYyhmYWxzZSlcbiAqL1xuLmctLWd1dHRlciB7XG4gIG1hcmdpbi1sZWZ0OiAtMTBweDtcbiAgbWFyZ2luLXJpZ2h0OiAtMTBweDsgfVxuICAuZy0tZ3V0dGVyID4gLmctY29sIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgcGFkZGluZy1yaWdodDogMTBweDsgfVxuXG4uZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2wge1xuICBtYXJnaW4tbGVmdDogMiU7XG4gIG1hcmdpbi1yaWdodDogMDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2w6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG5cbi5nLS1zdGFjayA+IC5nLWNvbCB7XG4gIGZsZXgtYmFzaXM6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTsgfVxuXG4uZy0tc3RhY2suZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2wge1xuICBtYXJnaW4tbGVmdDogMDsgfVxuXG4vKipcbiAqIC5nLS1lcXVhbEhlaWdodCDigJMgRXF1YWwgSGVpZ2h0IENoaWxkIEVsZW1lbnRzXG4gKi9cbi5nLS1lcXVhbEhlaWdodCA+IC5nLWNvbCB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmctLWVxdWFsSGVpZ2h0ID4gLmctY29sID4gKiB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuXG4vKipcbiAqIEFsaWdubWVudFxuICogTW9kaWZpZXIgY2xhc3NlcyB0byBtb3ZlIG91ciBncmlkIGVsZW1lbnRzIGFyb3VuZFxuICovXG4uZy0tYWxpZ25Ub3Age1xuICBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuXG4uZy0tYWxpZ25Cb3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLmctLWFsaWduU2VsZkJvdHRvbSB7XG4gIGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG5cbi5nLS1hbGlnblJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uZy0tYWxpZ25DZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4uZy0tYWxpZ25DZW50ZXItLXYge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qKlxuICogQ2VudGVyaW5nXG4gKiBDZW50ZXJzIGFuIGluZGl2aWR1YWwgY29sdW1uLCByYXRoZXIgdGhhbiB0aGUgZW50aXJlIGdyaWRcbiAqL1xuLmctY29sLS1jZW50ZXJlZCB7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qKlxuICogU2hyaW5raW5nIENvbnRlbnRcbiAqIFNocmluayBhIC5nLWNvbCBkb3duIHRvIG9ubHkgdGhlIHNwYWNlIGl0IG5lZWRzIChmbGV4Ym94IG9ubHkpXG4gKlxuICogRWZmZWN0aXZlbHkganVzdCBjaGFuZ2VzIGl04oCZcyB2YWx1ZXMgYmFjayB0byB0aGUgZGVmYXVsdCBmbGV4IHByb3BlcnRpZXNcbiAqL1xuLmctY29sLS1zaHJpbmsge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4vKipcbiAqIEFkZCBmYWxsYmFja3MgZm9yIG5vbi1mbGV4Ym94IHN1cHBvcnRpbmcgYnJvd3NlcnMgKGZvciBleGFtcGxlLCBJRTgvOSlcbiAqL1xuLm5vLWZsZXhib3ggLmcge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4gIC5uby1mbGV4Ym94IC5nOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNsZWFyOiBib3RoOyB9XG5cbi5uby1mbGV4Ym94IC5nLWNvbCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtaW4taGVpZ2h0OiAxcHg7XG4gIGNsZWFyOiBub25lO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG5cbi5uby1mbGV4Ym94IC5nLS1zdGFjayAuZy1jb2wge1xuICB3aWR0aDogMTAwJTsgfVxuXG4ubm8tZmxleGJveCAuZy0tZXF1YWxIZWlnaHQgPiAuZy1jb2wge1xuICBkaXNwbGF5OiBibG9jazsgfVxuXG4vKipcbiAqIEdyaWQgU3BhbiBjbGFzc2VzIChmb3IgZGlmZmVyZW50IGJyZWFrcG9pbnRzKVxuICpcbiAqIEFwcGxpZWQgYnkgdXNpbmcgLmctc3BhbnggdG8gLmctY29sIGVsZW1lbnRzLCB3aGVyZSB4IGlzIHRoZSBudW1iZXIgb2YgY29sdW1uc1xuICovXG4uZy1zcGFuMSB7XG4gIGZsZXgtYmFzaXM6IDguMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDgzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA2My4zMzMzM3B4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMSB7XG4gICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNi41JTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjEge1xuICAgIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDEge1xuICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuMiB7XG4gIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjIuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogMTY2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjIuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjIge1xuICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuMiB7XG4gICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjMge1xuICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4zLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogMjMwcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zIHtcbiAgICBmbGV4LWJhc2lzOiAyMy41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMjMuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW4zIHtcbiAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0MyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuNCB7XG4gIGZsZXgtYmFzaXM6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjQuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogMzMzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiAzMTMuMzMzMzNweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQge1xuICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMzIlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuNCB7XG4gICAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDQge1xuICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjUge1xuICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW41LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDQxNi42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41IHtcbiAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNDAuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW41IHtcbiAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0NSB7XG4gIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuNiB7XG4gIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjYuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA0ODBweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYge1xuICAgIGZsZXgtYmFzaXM6IDQ5JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNDklO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuNiB7XG4gICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDYge1xuICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cblxuLmctc3Bhbjcge1xuICBmbGV4LWJhc2lzOiA1OC4zMzMzMyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW43LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDU4My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNTYzLjMzMzMzcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43IHtcbiAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNTcuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW43IHtcbiAgICB3aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0NyB7XG4gIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuOCB7XG4gIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjguZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogNjY2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjguZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3Bhbjgge1xuICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNjYlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuOCB7XG4gICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctc3Bhbjkge1xuICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW45LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNzMwcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45IHtcbiAgICBmbGV4LWJhc2lzOiA3NC41JSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogNzQuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW45IHtcbiAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0OSB7XG4gIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuMTAge1xuICBmbGV4LWJhc2lzOiA4My4zMzMzMyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMC5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiA4MzMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA4MTMuMzMzMzNweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwIHtcbiAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDgzJTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjEwIHtcbiAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0MTAge1xuICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjExIHtcbiAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTEuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogOTE2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMSB7XG4gICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDkxLjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuMTEge1xuICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQxMSB7XG4gIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1zcGFuMTIge1xuICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEyLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTIuZy1ob2xkV2lkdGgge1xuICAgICAgbWluLXdpZHRoOiA5ODBweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW4xMiB7XG4gICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDAwcHgpIHtcbiAgLmctc3BhbjEtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogNjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDYuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNi41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xLS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MS0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMi0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4yLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDE2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMi0tbmFycm93IHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQyLS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4zLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiAyMzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDIzLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjMtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0My0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjQtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNC0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiAzMzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogMzEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiAzMiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMzIlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjQtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NC0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjUtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiA0MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0MC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW41LS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDUtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjYtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDQ4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogNDklICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW42LS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDYtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW43LS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjctLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogNTgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDU2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogNTcuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNTcuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNy0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ3LS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOC0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW44LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDY2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2NiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOC0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ4LS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW45LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA3MzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDc0LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjktLW5hcnJvdyB7XG4gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OS0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEwLS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEwLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDgzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogODEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogODMlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDgzJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMC0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMC0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjExLS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjExLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDkxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogOTEuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTEtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MTEtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEyLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDk4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEyLS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NTBweCkge1xuICAuZy1zcGFuMS0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMS0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS1taWQge1xuICAgICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEtLW1pZCB7XG4gICAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4yLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjItLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogMTY2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDE0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS1taWQge1xuICAgICAgZmxleC1iYXNpczogMTUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDE1JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4yLS1taWQge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDItLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4zLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDI1JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjMtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogMjUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS1taWQge1xuICAgICAgZmxleC1iYXNpczogMjMuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMjMuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMy0tbWlkIHtcbiAgICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQzLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNC0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW40LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDMzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiAzMTMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNC0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAzMiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNC0tbWlkIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ0LS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNS0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW41LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDQxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiAzOTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQwLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQwLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjUtLW1pZCB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NS0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjYtLW1pZCB7XG4gICAgZmxleC1iYXNpczogNTAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNi0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA1MDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogNDgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA0OSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDklO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjYtLW1pZCB7XG4gICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Ni0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjctLW1pZCB7XG4gICAgZmxleC1iYXNpczogNTguMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNy0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA1ODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogNTYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjctLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA1Ny41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW43LS1taWQge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDctLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW44LS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjgtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogNjY2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDY0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS1taWQge1xuICAgICAgZmxleC1iYXNpczogNjYlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDY2JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW44LS1taWQge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDgtLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW45LS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDc1JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjktLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogNzUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDczMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS1taWQge1xuICAgICAgZmxleC1iYXNpczogNzQuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNzQuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOS0tbWlkIHtcbiAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ5LS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTAtLW1pZCB7XG4gICAgZmxleC1iYXNpczogODMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTAtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogODMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MTMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogODMlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEwLS1taWQge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDEwLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTEtLW1pZCB7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogOTE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA4OTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA5MS41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA5MS41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMS0tbWlkIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMS0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEyLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTItLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogMTAwMHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogOTgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1taWQge1xuICAgICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTItLW1pZCB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMDBweCkge1xuICAuZy1zcGFuMS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEtLXdpZGUge1xuICAgICAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MS0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjItLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjItLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiAxNjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiAxNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjItLXdpZGUge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDItLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy0td2lkZSB7XG4gICAgZmxleC1iYXNpczogMjUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMy0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDIzLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjMtLXdpZGUge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDMtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNC0td2lkZSB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNC0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDMzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDMxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAzMiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNC0td2lkZSB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NC0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW41LS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW41LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogNDE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNDAuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDAuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNS0td2lkZSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NS0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA1MCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW42LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogNDgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNDklICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW42LS13aWRlIHtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ2LS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjctLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjctLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA1ODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA1NjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA1Ny41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW43LS13aWRlIHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ3LS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjgtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjgtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA2NjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA2NiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNjYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjgtLXdpZGUge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDgtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogNzUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDczMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDc0LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjktLXdpZGUge1xuICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDktLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTAtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEwLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogODMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDgxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogODMlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEwLS13aWRlIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMC0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA5MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDkxLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDkxLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjExLS13aWRlIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMS0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi0td2lkZSB7XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogOTgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEyLS13aWRlIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI1MHB4KSB7XG4gIC5nLXNwYW4xLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogNjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA2LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDYuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMS0taHVnZSB7XG4gICAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxLS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMi0taHVnZSB7XG4gICAgZmxleC1iYXNpczogMTYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMi0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDE2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDE0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMi0taHVnZSB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Mi0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4zLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4zLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogMjUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogMjMwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogMjMuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMjMuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMy0taHVnZSB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0My0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW40LS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiAzMy4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW40LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogMzMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogMzEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogMzIlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDMyJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW40LS1odWdlIHtcbiAgICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ0LS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjUtLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjUtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA0MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiAzOTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0MC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW41LS1odWdlIHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ1LS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjYtLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjYtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA1MDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA0ODBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA0OSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDklO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjYtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDYtLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNy0taHVnZSB7XG4gICAgZmxleC1iYXNpczogNTguMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNy0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDU4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjctLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDU2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDU3LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDU3LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjctLWh1Z2Uge1xuICAgICAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDctLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOC0taHVnZSB7XG4gICAgZmxleC1iYXNpczogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDY2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDY0Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2NiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOC0taHVnZSB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OC0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW45LS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW45LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogNzUwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogNzMwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogNzQuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNzQuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOS0taHVnZSB7XG4gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OS0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMC0taHVnZSB7XG4gICAgZmxleC1iYXNpczogODMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTAtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA4MzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogODEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDgzJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA4MyU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTAtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDEwLS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjExLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA5MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDkxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA4OTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogOTEuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTEtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDExLS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEyLS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEyLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogMTAwMHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA5ODBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTItLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTItLWh1Z2Uge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAzOTlweCkge1xuICAuZy0tc3RhY2stLW5hcnJvdyB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLmctLXN0YWNrLS1uYXJyb3cgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS1uYXJyb3cgPiAuZy1jb2wge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDc0OXB4KSB7XG4gIC5nLS1zdGFjay0tbWlkIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAuZy0tc3RhY2stLW1pZCA+IC5nLWNvbCB7XG4gICAgICBmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgICAubm8tZmxleGJveCAuZy0tc3RhY2stLW1pZCA+IC5nLWNvbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTk5cHgpIHtcbiAgLmctLXN0YWNrLS13aWRlIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAuZy0tc3RhY2stLXdpZGUgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS13aWRlID4gLmctY29sIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAxMjQ5cHgpIHtcbiAgLmctLXN0YWNrLS1odWdlIHtcbiAgICBmbGV4LWZsb3c6IGNvbHVtbiBub3dyYXA7IH1cbiAgICAuZy0tc3RhY2stLWh1Z2UgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS1odWdlID4gLmctY29sIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbi8qKlxuICogRm9ybXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogS2lja29mZidzIGZvcm1zIGhhcyBzdXBwb3J0IGZvciB0aGVtZXMuIFNlZSBiZWxvdyBmb3IgaW5mbyBhYm91dCB0aGVtLlxuICpcbiAqIFRoZSBzdHlsZXMgaGVyZSBhcmUgYmFzZSBzdHlsZXMgdGhhdCBhcHBseSB0byBib3RoIHRoZW1lcyxcbiAqIHRoZXkgYXJlIG1vcmUgb2YgYSByZXNldCBiZWZvcmUgeW91IG1ha2Ugc3R5bGlzdGljIGFtZW5kcyB0byBmb3JtIGZpZWxkc1xuICpcbiAqL1xuLyoqXG4gKiBGb3JtIHRoZW1lc1xuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBiYXNlIGZvcm0gc3R5bGVzIGFuZCBlYWNoIHRoZW1lIGZpbGUgY29udGFpbnNcbiAqIG92ZXJyaWRlcyBhbmQgYWRkaXRpb25zLlxuICpcbiAqIENob29zZSBmcm9tOlxuICogLSBgc3RhbmRhcmRgOiB0aGUgb3JpZ2luYWwgS2lja29mZiBmb3JtIHRoZW1lXG4gKiAtIGBtYXRlcmlhbGA6IGJhc2ljIHZlcnNpb24gb2YgR29vZ2xlJ3MgTWF0ZXJpYWwgZGVzaWduIGZvcm1zXG4gKlxuICogVXNhZ2U6IChjaG9vc2UgZnJvbSlcbiAqIEBpbXBvcnQgXCJmb3JtLXRoZW1lLXN0YW5kYXJkXCI7XG4gKiBAaW1wb3J0IFwiZm9ybS10aGVtZS1tYXRlcmlhbFwiO1xuICovXG4vKipcbiAqIEtpY2tvZmYgZm9ybXM6IFN0YW5kYXJkIHRoZW1lXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRGVtbzogaHR0cDovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2Zvcm1zLmh0bWwjbGF5b3V0LWV4YW1wbGUtbGFiZWxzLWFib3ZlXG4gKiBDb2RlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS82NzEyNTc3I2ZpbGUtbGFiZWxzLWFib3ZlLWlucHV0cy1odG1sXG4gKiBVc2FnZTpcbiAgXHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXBcIj5cbiAgXHRcdDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+TmFtZTwvbGFiZWw+XG4gIFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyXCI+XG4gIFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiWmFuZGVyIE1hcnRpbmVhdVwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiLz5cbiAgXHRcdDwvZGl2PlxuICBcdDwvZGl2PlxuICpcbiAqIENvbnRlbnRzOlxuICogLSBUaGVtZSB2YXJpYWJsZXNcbiAqIC0gVGhlbWUgc3R5bGVzXG4gKi9cbi8qKlxuICogR2VuZXJpYyBmb3JtIHN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBEZW1vOiBodHRwOi8vdHJ5a2lja29mZi5jb20vZGVtb3MvZm9ybXMuaHRtbCNsYXlvdXQtZXhhbXBsZS1sYWJlbHMtYWJvdmVcbiAqIENvZGU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL21ybWFydGluZWF1LzY3MTI1NzcjZmlsZS1sYWJlbHMtYWJvdmUtaW5wdXRzLWh0bWxcbiAqIFVzYWdlOlxuICBcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cFwiPlxuICBcdFx0PGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5OYW1lPC9sYWJlbD5cbiAgXHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXJcIj5cbiAgXHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJaYW5kZXIgTWFydGluZWF1XCIgY2xhc3M9XCJmb3JtLWlucHV0XCIvPlxuICBcdFx0PC9kaXY+XG4gIFx0PC9kaXY+XG4gKi9cbi5mb3JtIHtcbiAgbWFyZ2luOiAwIDAgMjhweDsgfVxuXG4uZm9ybS1maWVsZHNldCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgYm9yZGVyOiAwOyB9XG5cbi5mb3JtLWxlZ2VuZCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbi1ib3R0b206IDI4cHg7XG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM0NDQ7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlZWU7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cbiAgLmZvcm0tbGVnZW5kIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBjb2xvcjogI2IzYjNiMzsgfVxuXG4vKipcbiAqIEZvcm0gaW5wdXRzIGFuZCBncm91cHNcbiAqL1xuLmZvcm0tY29udHJvbEdyb3VwIHtcbiAgbWFyZ2luLXRvcDogNDJweDtcbiAgbWFyZ2luLWJvdHRvbTogNDJweDsgfVxuXG4uZm9ybS1sZWdlbmQgKyAuZm9ybS1jb250cm9sR3JvdXAge1xuICBtYXJnaW4tdG9wOiAyOHB4OyB9XG5cbi5mb3JtLWxhYmVsIHtcbiAgY29sb3I6ICM0NDQ7IH1cbiAgLmZvcm0tbGFiZWwgc21hbGwge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgY29sb3I6ICM5MTkxOTE7IH1cblxuLmZvcm0taW5wdXQge1xuICBoZWlnaHQ6IDIuNWVtO1xuICBwYWRkaW5nOiAuNWVtO1xuICBmb250LXNpemU6IDFyZW07XG4gIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCBcIkZpcmEgU2Fuc1wiLCBcIkRyb2lkIFNhbnNcIiwgXCJIZWx2ZXRpY2EgTmV1ZVwiLCBzYW5zLXNlcmlmO1xuICBsaW5lLWhlaWdodDogMS40O1xuICBjb2xvcjogIzQ0NDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICB0cmFuc2l0aW9uOiBib3JkZXIgMjAwbXMgZWFzZS1pbi1vdXQ7IH1cbiAgLmZvcm0taW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzE4MTgzMDsgfVxuICAuZm9ybS1pbnB1dFt0eXBlPVwiaW1hZ2VcIl0sIC5mb3JtLWlucHV0W3R5cGU9XCJjaGVja2JveFwiXSwgLmZvcm0taW5wdXRbdHlwZT1cInJhZGlvXCJdLCAuZm9ybS1pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgIG1hcmdpbjogM3B4IDA7IH1cbiAgLmZvcm0taW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLmZvcm0taW5wdXRbdHlwZT1cImNvbG9yXCJdIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAycHg7IH1cbiAgLmZvcm0taW5wdXRbZGlzYWJsZWRdLCAuZm9ybS1pbnB1dFtyZWFkb25seV0ge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cblxuLmZvcm0taW5wdXQtLXNlbGVjdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLmZvcm0taW5wdXQtZmlsZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4vKipcbiAqIEZvcm0gYWN0aW9uc1xuICovXG4uZm9ybS1hY3Rpb25zIHtcbiAgcGFkZGluZzogMjhweCAyMHB4O1xuICBtYXJnaW4tdG9wOiAyOHB4O1xuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDsgfVxuICAuZm9ybS1hY3Rpb25zIC5idG4ge1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAgIC5mb3JtLWFjdGlvbnMgLmJ0bjpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuXG4vKipcbiAqIEZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlc1xuICovXG4uZm9ybS1jb250cm9sR3JvdXAgLmZvcm0tbWVzc2FnZSB7XG4gIHBhZGRpbmctdG9wOiAwLjVlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjVlbTsgfVxuXG4uZm9ybS1hY3Rpb25zIC5mb3JtLW1lc3NhZ2Uge1xuICBwYWRkaW5nOiAwLjVlbTsgfVxuXG4vKipcbiAqIEZvcm0gZmllbGQgZmVlZGJhY2sgc3RhdGVzXG4gKi9cbi5oYXMtd2FybmluZyB7XG4gIGNvbG9yOiAjZjRhYTQ3OyB9XG5cbi5mb3JtLWNvbnRyb2xHcm91cC5oYXMtd2FybmluZyAuZm9ybS1sYWJlbCB7XG4gIGNvbG9yOiAjZjRhYTQ3OyB9XG5cbi5mb3JtLWNvbnRyb2xHcm91cC5oYXMtd2FybmluZyAuZm9ybS1pbnB1dCB7XG4gIGNvbG9yOiAjZjRhYTQ3O1xuICBib3JkZXItY29sb3I6ICNmNGFhNDc7IH1cbiAgLmZvcm0tY29udHJvbEdyb3VwLmhhcy13YXJuaW5nIC5mb3JtLWlucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICNmMTk0MTc7IH1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy13YXJuaW5nIC5mb3JtLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICNmNGFhNDc7IH1cblxuLmhhcy1lcnJvciB7XG4gIGNvbG9yOiAjQjk0QTREOyB9XG5cbi5mb3JtLWNvbnRyb2xHcm91cC5oYXMtZXJyb3IgLmZvcm0tbGFiZWwge1xuICBjb2xvcjogI0I5NEE0RDsgfVxuXG4uZm9ybS1jb250cm9sR3JvdXAuaGFzLWVycm9yIC5mb3JtLWlucHV0IHtcbiAgY29sb3I6ICNCOTRBNEQ7XG4gIGJvcmRlci1jb2xvcjogI0I5NEE0RDsgfVxuICAuZm9ybS1jb250cm9sR3JvdXAuaGFzLWVycm9yIC5mb3JtLWlucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICM5NjNhM2M7IH1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy1lcnJvciAuZm9ybS1tZXNzYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGNvbG9yOiAjQjk0QTREOyB9XG5cbi5oYXMtc3VjY2VzcyB7XG4gIGNvbG9yOiAjMTZjOThkOyB9XG5cbi5mb3JtLWNvbnRyb2xHcm91cC5oYXMtc3VjY2VzcyAuZm9ybS1sYWJlbCB7XG4gIGNvbG9yOiAjMTZjOThkOyB9XG5cbi5mb3JtLWNvbnRyb2xHcm91cC5oYXMtc3VjY2VzcyAuZm9ybS1pbnB1dCB7XG4gIGNvbG9yOiAjMTZjOThkO1xuICBib3JkZXItY29sb3I6ICMxNmM5OGQ7IH1cbiAgLmZvcm0tY29udHJvbEdyb3VwLmhhcy1zdWNjZXNzIC5mb3JtLWlucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMxMTliNmQ7IH1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy1zdWNjZXNzIC5mb3JtLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICMxNmM5OGQ7IH1cblxuLmhhcy1pbmZvIHtcbiAgY29sb3I6ICMyODhhZDY7IH1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy1pbmZvIC5mb3JtLWxhYmVsIHtcbiAgY29sb3I6ICMyODhhZDY7IH1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy1pbmZvIC5mb3JtLWlucHV0IHtcbiAgY29sb3I6ICMyODhhZDY7XG4gIGJvcmRlci1jb2xvcjogIzI4OGFkNjsgfVxuICAuZm9ybS1jb250cm9sR3JvdXAuaGFzLWluZm8gLmZvcm0taW5wdXQ6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogIzIwNmVhYjsgfVxuXG4uZm9ybS1jb250cm9sR3JvdXAuaGFzLWluZm8gLmZvcm0tbWVzc2FnZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogIzI4OGFkNjsgfVxuXG4vKipcbiAqIFBsYWNlaG9sZGVyIHRleHRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogR2V0cyBzcGVjaWFsIHN0eWxlczsgY2FuJ3QgYmUgYnVuZGxlZCB0b2dldGhlciB0aG91Z2ggZm9yIHNvbWUgcmVhc29uXG4gKi9cbjotbXMtaW5wdXQtcGxhY2Vob2xkZXIge1xuICBjb2xvcjogI2IzYjNiMzsgfVxuXG46LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYjNiM2IzOyB9XG5cbjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjYjNiM2IzOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAvKipcblx0ICogSG9yaXpvbnRhbC1zcGVjaWZpYyBzdHlsZXNcblx0ICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdCAqIGFkZCAuZm9ybS0taG9yaXpvbnRhbCB0byB0aGUgPGZvcm0+IGVsZW1lbnRcblx0ICogRGVtbzogaHR0cDovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2Zvcm1zLmh0bWwjbGF5b3V0LWV4YW1wbGUtbGFiZWxzLWlubGluZVxuXHQgKiBDb2RlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS82NzEyNTc3I2ZpbGUtbGFiZWxzLWlubGluZS1odG1sXG5cdCAqL1xuICAuZm9ybS0taG9yaXpvbnRhbCAuZm9ybS1jb250cm9sR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuZm9ybS0taG9yaXpvbnRhbCAuZm9ybS1jb250cm9sR3JvdXAgPiAuZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5mb3JtLS1ob3Jpem9udGFsIC5mb3JtLWxhYmVsIHtcbiAgICB3aWR0aDogMTQwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAyOHB4O1xuICAgIHBhZGRpbmctdG9wOiAwLjZlbTsgfVxuICAuZm9ybS0taG9yaXpvbnRhbCAuZm9ybS1hY3Rpb25zIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDE2OHB4OyB9IH1cblxuLyoqXG4gKiBDdXN0b20gY29udHJvbHNcbiAqIC0gUmFkaW9zL2NoZWNrYm94ZXNcbiAqIC0gU2VsZWN0IGVsZW1lbnRcbiAqIC0gRmlsZSB1cGxvYWRcbiAqL1xuLyoqXG4gKiBDdXN0b20gQ2hlY2tib3hlcyBhbmQgcmFkaW9zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIElFOStcbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICpcbiAqIENoZWNrYm94IGJ1dHRvbiBleGFtcGxlIEhUTUxcbiAqXG4gKlx0PGxhYmVsIGNsYXNzPVwiY29udHJvbCBjb250cm9sLS1jdXN0b21cIiBmb3I9XCJjaGVja2JveDFcIj5cblx0XHQ8aW5wdXQgY2xhc3M9XCJjb250cm9sLS1jdXN0b20taW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImNoZWNrYm94MVwiIG5hbWU9XCJteUNoZWNrYm94XCIgdmFsdWU9XCJBIHZhbHVlXCIvPlxuXHRcdFx0PHNwYW4gY2xhc3M9XCJjb250cm9sLWluZGljYXRvciBjb250cm9sLWluZGljYXRvci0tY2hlY2tib3hcIj48L3NwYW4+XG5cdFx0XHRNeSBDaGVja2JveCBMYWJlbCBUZXh0XG5cdFx0PC9sYWJlbD5cbiAqXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogUmFkaW8gYnV0dG9uIGV4YW1wbGUgSFRNTFxuICpcbiAqXHQ8bGFiZWwgY2xhc3M9XCJjb250cm9sIGNvbnRyb2wtLWN1c3RvbVwiIGZvcj1cInJhZGlvMVwiPlxuICpcdFx0PGlucHV0IGNsYXNzPVwiY29udHJvbC0tY3VzdG9tLWlucHV0XCIgdHlwZT1cInJhZGlvXCIgaWQ9XCJyYWRpbzFcIiBuYW1lPVwibXlSYWRpb0J0blwiIHZhbHVlPVwiQSB2YWx1ZVwiLz5cbiAqXHRcdDxzcGFuIGNsYXNzPVwiY29udHJvbC1pbmRpY2F0b3IgY29udHJvbC1pbmRpY2F0b3ItLXJhZGlvXCI+PC9zcGFuPlxuICpcdFx0TXkgUmFkaW8gQnV0dG9uIExhYmVsIFRleHRcbiAqIFx0PC9sYWJlbD5cbiAqXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi5jb250cm9sLS1jdXN0b20ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICBwYWRkaW5nLWxlZnQ6IDIuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICBsaW5lLWhlaWdodDogMS4zZW0gIWltcG9ydGFudDsgfVxuXG4uY29udHJvbC0tY3VzdG9tLS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmctcmlnaHQ6IDJlbTsgfVxuXG4uY29udHJvbC0tY3VzdG9tLWlucHV0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAtMTsgfVxuXG4uY29udHJvbC1pbmRpY2F0b3Ige1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEuM2VtO1xuICBoZWlnaHQ6IDEuM2VtO1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHRyYW5zcGFyZW50LCAwIDAgMCAwIHRyYW5zcGFyZW50OyB9XG5cbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Zm9jdXMgfiAuY29udHJvbC1pbmRpY2F0b3Ige1xuICBib3gtc2hhZG93OiAwIDAgMCAycHggI2YxZjFmMSwgMCAwIDAgM3B4ICMxODE4MzA7IH1cblxuLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveCxcbi5jb250cm9sLWluZGljYXRvci0tdGlja2JveCB7XG4gIGJvcmRlci1yYWRpdXM6IC4yZW07IH1cbiAgLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveDpiZWZvcmUsIC5jb250cm9sLWluZGljYXRvci0tY2hlY2tib3g6YWZ0ZXIsXG4gIC5jb250cm9sLWluZGljYXRvci0tdGlja2JveDpiZWZvcmUsXG4gIC5jb250cm9sLWluZGljYXRvci0tdGlja2JveDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB3aWR0aDogOTAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2UtaW4tb3V0OyB9XG5cbi5jb250cm9sLWluZGljYXRvci0tY2hlY2tib3g6YmVmb3JlLCAuY29udHJvbC1pbmRpY2F0b3ItLWNoZWNrYm94OmFmdGVyIHtcbiAgdG9wOiA1MCU7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogMC4xZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IH1cblxuLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveDpiZWZvcmUge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpIHNjYWxlKDApOyB9XG5cbi5jb250cm9sLWluZGljYXRvci0tY2hlY2tib3g6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgfVxuXG4uY29udHJvbC1pbmRpY2F0b3ItLXRpY2tib3g6YmVmb3JlIHtcbiAgdG9wOiAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgwKTtcbiAgYm9yZGVyOiAwLjFlbSBzb2xpZCAjZjFmMWYxO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgd2lkdGg6IDQwJTtcbiAgaGVpZ2h0OiA4MCU7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1sZWZ0OiAwOyB9XG5cbi5jb250cm9sLWluZGljYXRvci0tdGlja2JveDphZnRlciB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNvbnRyb2wtLWN1c3RvbS1pbnB1dDpjaGVja2VkIH4gLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveCxcbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Y2hlY2tlZCB+IC5jb250cm9sLWluZGljYXRvci0tdGlja2JveCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODE4MzA7XG4gIGJvcmRlcjogMC4xZW0gc29saWQgIzE4MTgzMDsgfVxuICAuY29udHJvbC0tY3VzdG9tLWlucHV0OmNoZWNrZWQgfiAuY29udHJvbC1pbmRpY2F0b3ItLWNoZWNrYm94OmJlZm9yZSwgLmNvbnRyb2wtLWN1c3RvbS1pbnB1dDpjaGVja2VkIH4gLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveDphZnRlcixcbiAgLmNvbnRyb2wtLWN1c3RvbS1pbnB1dDpjaGVja2VkIH4gLmNvbnRyb2wtaW5kaWNhdG9yLS10aWNrYm94OmJlZm9yZSxcbiAgLmNvbnRyb2wtLWN1c3RvbS1pbnB1dDpjaGVja2VkIH4gLmNvbnRyb2wtaW5kaWNhdG9yLS10aWNrYm94OmFmdGVyIHtcbiAgICBvcGFjaXR5OiAxOyB9XG5cbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Y2hlY2tlZCB+IC5jb250cm9sLWluZGljYXRvci0tdGlja2JveDpiZWZvcmUsIC5jb250cm9sLS1jdXN0b20taW5wdXQ6Y2hlY2tlZCB+IC5jb250cm9sLWluZGljYXRvci0tdGlja2JveDphZnRlciB7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpIHNjYWxlKDEpOyB9XG5cbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Y2hlY2tlZCB+IC5jb250cm9sLWluZGljYXRvci0tY2hlY2tib3g6YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgxKTsgfVxuXG4uY29udHJvbC0tY3VzdG9tLWlucHV0OmNoZWNrZWQgfiAuY29udHJvbC1pbmRpY2F0b3ItLWNoZWNrYm94OmFmdGVyIHtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC00NWRlZykgc2NhbGUoMSk7IH1cblxuLmNvbnRyb2wtaW5kaWNhdG9yLS1yYWRpbyB7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuXG4uY29udHJvbC0tY3VzdG9tLWlucHV0OmNoZWNrZWQgfiAuY29udHJvbC1pbmRpY2F0b3ItLXJhZGlvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgYm9yZGVyOiAwLjNlbSBzb2xpZCAjMTgxODMwOyB9XG5cbi8qKlxuICogQ3VzdG9tIHNlbGVjdCBlbGVtZW50XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEZpcmVmb3ggMzkrLCBJRTEwK1xuICpcbiAqXHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXBcIj5cblx0XHRcdDxsYWJlbCBmb3I9XCJjcy1jaG9pY2VcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5DdXN0b20gc2VsZWN0PC9sYWJlbD5cblx0XHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXIgZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyLS1zZWxlY3RcIj5cblx0XHRcdFx0PHNlbGVjdCBpZD1cImNzLWNob2ljZVwiIG5hbWU9XCJjcy1jaG9pY2VcIiBjbGFzcz1cImZvcm0taW5wdXQgZm9ybS1pbnB1dC0tc2VsZWN0XCI+XG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIi0tXCI+U2VsZWN0IHRpdGxlPC9vcHRpb24+XG5cdFx0XHRcdFx0PG9wdGlvbiB2YWx1ZT1cIk1yXCI+TXI8L29wdGlvbj5cblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiTXJzXCI+TXJzPC9vcHRpb24+XG5cdFx0XHRcdDwvc2VsZWN0PlxuXHRcdFx0PC9kaXY+XG5cdDwvZGl2PlxuICovXG4uZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyLS1zZWxlY3Qge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAwO1xuICAvKiBDdXN0b20gYXJyb3cgc2l0cyBvbiB0b3Agb2YgdGhlIHNlbGVjdCAtIGNvdWxkIGJlIGFuIGltYWdlLCBTVkcsIGljb24gZm9udCwgZXRjLiBvciB0aGUgYXJyb3cgY291bGQganVzdCBiYWtlZCBpbnRvIHRoZSBiZyBpbWFnZSBvbiB0aGUgc2VsZWN0ICovIH1cbiAgLmZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlci0tc2VsZWN0OmFmdGVyIHtcbiAgICBjb2xvcjogIzE4MTgzMDtcbiAgICBjb250ZW50OiBcIlxcMjVCQ1wiO1xuICAgIGZvbnQtc2l6ZTogLjdlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMS4yZW07XG4gICAgdG9wOiAxLjJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIC8qIFRoZXNlIGhhY2tzIG1ha2UgdGhlIHNlbGVjdCBiZWhpbmQgdGhlIGFycm93IGNsaWNrYWJsZSBpbiBzb21lIGJyb3dzZXJzICovXG4gICAgLW1zLXBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHVybCgjKTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgIC5mb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXItLXNlbGVjdDphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlci0tc2VsZWN0IC5mb3JtLWlucHV0LS1zZWxlY3Qge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICAgICAgLmZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlci0tc2VsZWN0IC5mb3JtLWlucHV0LS1zZWxlY3Q6Zm9jdXM6Oi1tcy12YWx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogIzIyMjsgfSB9XG5cbm9wdGlvbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cblxuLyoqXG4gKiBDdXN0b20gZmlsZSBpbnB1dFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXBcIj5cblx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZmlsZVwiPkZpbGUgdXBsb2FkPC9sYWJlbD5cblxuXHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXJcIj5cblx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0taW5wdXQgZm9ybS1pbnB1dC0tZmlsZVwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZvcm0taW5wdXQtLWZpbGUtdGV4dFwiPkNob29zZSBmaWxlLi48L3NwYW4+XG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiZm9ybS1pbnB1dC0tZmlsZS1idXR0b25cIj5Ccm93c2U8L3NwYW4+XG5cdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXQtLWZpbGUtaW5wdXRcIiB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiBzaXplPVwiMTRcIiAvPlxuXHRcdFx0PC9sYWJlbD5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG4gKi9cbi8qKlxuICogQ3VzdG9tIGZpbGUgaW5wdXRcbiAqL1xuLmZvcm0taW5wdXQtLWZpbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctcmlnaHQ6IDEyMHB4O1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uZm9ybS1pbnB1dC0tZmlsZS1pbnB1dCB7XG4gIG9wYWNpdHk6IDA7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7IH1cblxuLmZvcm0taW5wdXQtLWZpbGUtYnV0dG9uIHtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogLTFweDtcbiAgYm90dG9tOiAwO1xuICBwYWRkaW5nOiAuNDRlbSAxZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q5ZDlkOTsgfVxuICAuZm9ybS1pbnB1dC0tZmlsZS1idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNjY2M7IH1cblxuLyoqXG4gKiBCYXNlIGZvcm0gc3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIERlbW86IGh0dHA6Ly90cnlraWNrb2ZmLmNvbS9kZW1vcy9mb3Jtcy5odG1sI2xheW91dC1leGFtcGxlLWxhYmVscy1hYm92ZVxuICogQ29kZTogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbXJtYXJ0aW5lYXUvNjcxMjU3NyNmaWxlLWxhYmVscy1hYm92ZS1pbnB1dHMtaHRtbFxuICogVXNhZ2U6XG4gIFx0PGRpdiBjbGFzcz1cImZvcm0tY29udHJvbEdyb3VwXCI+XG4gIFx0XHQ8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk5hbWU8L2xhYmVsPlxuICBcdFx0PGRpdiBjbGFzcz1cImZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlclwiPlxuICBcdFx0XHQ8aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlphbmRlciBNYXJ0aW5lYXVcIiBjbGFzcz1cImZvcm0taW5wdXRcIi8+XG4gIFx0XHQ8L2Rpdj5cbiAgXHQ8L2Rpdj5cbiAqL1xuLmZvcm0tbGVnZW5kIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qKlxuICogRm9ybSBpbnB1dHMgYW5kIGdyb3Vwc1xuICovXG4uZm9ybS1sZWdlbmQgKyAuZm9ybS1jb250cm9sR3JvdXAge1xuICAtd2Via2l0LW1hcmdpbi10b3AtY29sbGFwc2U6IHNlcGFyYXRlOyB9XG5cbi5mb3JtLWxhYmVsIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmZvcm0taW5wdXQge1xuICBkaXNwbGF5OiBibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgfVxuICAuZm9ybS1pbnB1dDpmb2N1cyB7XG4gICAgb3V0bGluZTogMDtcbiAgICBvdXRsaW5lOiB0aGluIGRvdHRlZCBcXDk7IH1cbiAgLmZvcm0taW5wdXRbdHlwZT1cImltYWdlXCJdLCAuZm9ybS1pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sIC5mb3JtLWlucHV0W3R5cGU9XCJyYWRpb1wiXSwgLmZvcm0taW5wdXRbdHlwZT1cInJhbmdlXCJdIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgcGFkZGluZzogMDtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmZvcm0taW5wdXRbdHlwZT1cImltYWdlXCJdIHtcbiAgICBib3JkZXI6IDA7IH1cbiAgLmZvcm0taW5wdXRbdHlwZT1cImZpbGVcIl0ge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogMjhweDtcbiAgICBwYWRkaW5nOiBpbml0aWFsO1xuICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuICAgIGJvcmRlcjogaW5pdGlhbDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsOyB9XG4gIC5mb3JtLWlucHV0W3R5cGU9XCJoaWRkZW5cIl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZvcm0taW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsgfVxuICAuZm9ybS1pbnB1dFt0eXBlPVwicmFuZ2VcIl0ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5mb3JtLWlucHV0ID4gLnJhZGlvOmZpcnN0LWNoaWxkLFxuICAuZm9ybS1pbnB1dCA+IC5jaGVja2JveDpmaXJzdC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDVweDsgfVxuICAuZm9ybS1pbnB1dFtkaXNhYmxlZF0sIC5mb3JtLWlucHV0W3JlYWRvbmx5XSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuXG4uZm9ybS1pbnB1dC0tdGV4dGFyZWEge1xuICBoZWlnaHQ6IGF1dG87XG4gIG1pbi1oZWlnaHQ6IDVlbTtcbiAgcmVzaXplOiB2ZXJ0aWNhbDsgfVxuXG4uZm9ybS1pbnB1dC0tdGV4dGFyZWEtLXVuZWRpdGFibGUge1xuICB3aWR0aDogYXV0bztcbiAgaGVpZ2h0OiBhdXRvOyB9XG5cbi5mb3JtLWlucHV0LWZpbGUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGxpbmUtaGVpZ2h0OiAxZW07IH1cbiAgLmZvcm0taW5wdXQtZmlsZTpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuXG5idXR0b24sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gIHdpZHRoOiBhdXRvO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyB9XG5cbi8qKlxuICogQ2hlY2tib3hlczpcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQ8bGFiZWwgY2xhc3M9XCJjb250cm9sXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiY2hlY2sxXCI+XG5cdFx0VGhpcyBpcyBhIGNoZWNrYm94XG5cdDwvbGFiZWw+XG5cdDxsYWJlbCBjbGFzcz1cImNvbnRyb2wgY29udHJvbC0taW5saW5lXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwiY2hlY2sxXCI+XG5cdFx0VGhpcyBpcyBhIGNoZWNrYm94XG5cdDwvbGFiZWw+XG5cbiAqIFJhZGlvczpcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQ8bGFiZWwgY2xhc3M9XCJjb250cm9sXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvcHRpb25zUmFkaW9zXCIgaWQ9XCJvcHRpb25zUmFkaW9zMVwiIHZhbHVlPVwib3B0aW9uMVwiIGNoZWNrZWQ+XG5cdFx0VGhpcyBpcyBhIHJhZGlvXG5cdDwvbGFiZWw+XG5cdDxsYWJlbCBjbGFzcz1cImNvbnRyb2wgY29udHJvbC0taW5saW5lXCI+XG5cdFx0PGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJvcHRpb25zUmFkaW9zXCIgaWQ9XCJvcHRpb25zUmFkaW9zMVwiIHZhbHVlPVwib3B0aW9uMlwiIGNoZWNrZWQ+XG5cdFx0VGhpcyBpcyBhIHJhZGlvXG5cdDwvbGFiZWw+XG4gKi9cbi5jb250cm9sIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG4gIC5jb250cm9sICsgLmNvbnRyb2wge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7IH1cbiAgLmNvbnRyb2wgaW5wdXQge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07IH1cblxuLmNvbnRyb2wtLWlubGluZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuY29udHJvbC0taW5saW5lICsgLmNvbnRyb2wtLWlubGluZSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tbGVmdDogMS41ZW07IH1cblxuLyoqXG4gKiBGb3JtIHZhbGlkYXRpb24gbWVzc2FnZXNcbiAqL1xuLmZvcm0tY29udHJvbEdyb3VwIC5mb3JtLW1lc3NhZ2Uge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qKlxuICogTGlua3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5hIHtcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7IH1cbiAgYSwgYTpsaW5rIHtcbiAgICBjb2xvcjogIzI4OGFkNjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTp2aXNpdGVkIHtcbiAgICBjb2xvcjogIzI4OGFkNjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgY29sb3I6ICMxODUzODA7IH1cbiAgYTphY3RpdmUge1xuICAgIGNvbG9yOiAjMTg1MzgwOyB9XG5cbi8qKlxuICogQnV0dG9uc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEFzc29jaWF0ZWQgQnV0dG9uIFZhcmlhYmxlc1xuICogLSBCYXNlIGJ1dHRvbiBzdHlsaW5nXG4gKiDigJMgQnV0dG9uIE1vZGlmaWVyc1xuICogXHQg4oCTIGJ0bi0tcHJpbWFyeVxuICogICDigJMgYnRuLS1ibG9ja1xuICovXG4vKipcbiAqIERlZmluZSBhc3NvY2lhdGVkIEJ1dHRvbiB2YXJpYWJsZXNcbiAqL1xuLyoqXG4gKiBCYXNlIGJ1dHRvbiBzdHlsZXMg4oCTIEJhc2VkIG9uIGNzc3dpemFyZHJ5LmNvbS9iZWF1dG9uc1xuICpcbiAqIDEuIEFsbG93IHVzIHRvIGJldHRlciBzdHlsZSBib3ggbW9kZWwgcHJvcGVydGllcy5cbiAqIDIuIExpbmUgZGlmZmVyZW50IHNpemVkIGJ1dHRvbnMgdXAgYSBsaXR0bGUgbmljZXIuXG4gKiAzLiBTdG9wIGJ1dHRvbnMgd3JhcHBpbmcgYW5kIGxvb2tpbmcgYnJva2VuLlxuICogNC4gTWFrZSBidXR0b25zIGluaGVyaXQgZm9udCBzdHlsZXMuXG4gKiA1LiBGb3JjZSBhbGwgZWxlbWVudHMgdXNpbmcgYmVhdXRvbnMgdG8gYXBwZWFyIGNsaWNrYWJsZS5cbiAqIDYuIE5vcm1hbGlzZSBib3ggbW9kZWwgc3R5bGVzLlxuICogNy4gSWYgdGhlIGJ1dHRvbuKAmXMgdGV4dCBpcyAxZW0sIGFuZCB0aGUgYnV0dG9uIGlzICgzICogZm9udC1zaXplKSB0YWxsLCB0aGVuXG4gKiAgICB0aGVyZSBpcyAxZW0gb2Ygc3BhY2UgYWJvdmUgYW5kIGJlbG93IHRoYXQgdGV4dC4gV2UgdGhlcmVmb3JlIGFwcGx5IDFlbVxuICogICAgb2Ygc3BhY2UgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0LCBhcyBwYWRkaW5nLCB0byBrZWVwIGNvbnNpc3RlbnQgc3BhY2luZy5cbiAqIDguIEZpeGVzIG9kZCBpbm5lciBzcGFjaW5nIGluIElFNy5cbiAqIDkuIERvbuKAmXQgYWxsb3cgYnV0dG9ucyB0byBoYXZlIHVuZGVybGluZXM7IGl0IGtpbmRhIHJ1aW5zIHRoZSBpbGx1c2lvbi5cbiAqMTAuIFByZXZlbnRzIGZyb20gaW5oZXJpdGluZyBkZWZhdWx0IGFuY2hvciBzdHlsZXMuXG4gKi9cbi5idG4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIFsxXSAqL1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAvKiBbMl0gKi9cbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogWzNdICovXG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAvKiBbNF0gKi9cbiAgZm9udC1zaXplOiAxMDAlO1xuICAvKiBbNF0gKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiBbNV0gKi9cbiAgYm9yZGVyOiBub25lO1xuICAvKiBbNl0gKi9cbiAgbWFyZ2luOiAwO1xuICAvKiBbNl0gKi9cbiAgcGFkZGluZy10b3A6IDA7XG4gIC8qIFs2XSAqL1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgLyogWzZdICovXG4gIGxpbmUtaGVpZ2h0OiAyLjU7XG4gIC8qIFs3XSAqL1xuICBoZWlnaHQ6IDIuNWVtO1xuICAvKiBbN10gKi9cbiAgcGFkZGluZy1yaWdodDogMS41ZW07XG4gIC8qIFs3XSAqL1xuICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICAvKiBbN10gKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIC8qIFs4XSAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM5NWE1YTY7IH1cbiAgLmJ0biwgLmJ0bjpsaW5rLCAuYnRuOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idG46aG92ZXIsIC5idG46YWN0aXZlLCAuYnRuOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNzk4ZDhmOyB9XG4gIC5idG4sIC5idG46aG92ZXIsIC5idG46YWN0aXZlLCAuYnRuOmZvY3VzLCAuYnRuOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuYnRuOmFjdGl2ZSwgLmJ0bjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICAuYnRuLmRpc2FibGVkLCAuYnRuW2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IG5vbmU7XG4gICAgb3BhY2l0eTogLjU7IH1cblxuLmJ0bi0tcHJpbWFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMyODhhZDY7IH1cbiAgLmJ0bi0tcHJpbWFyeSwgLmJ0bi0tcHJpbWFyeTpsaW5rLCAuYnRuLS1wcmltYXJ5OnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5idG4tLXByaW1hcnk6aG92ZXIsIC5idG4tLXByaW1hcnk6YWN0aXZlLCAuYnRuLS1wcmltYXJ5OmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjA2ZWFiOyB9XG5cbi5idG4tLWJsb2NrIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLmJ0bi0tYmxvY2sgKyAuYnRuLS1ibG9jayB7XG4gICAgbWFyZ2luLXRvcDogMTBweDsgfVxuXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdLmJ0bi0tYmxvY2ssXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0uYnRuLS1ibG9jayxcbmlucHV0W3R5cGU9XCJidXR0b25cIl0uYnRuLS1ibG9jayB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi8qKlxuICogTGlzdHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogLSAoVW4pb3JkZXJlZCBsaXN0c1xuICogLSBVbnN0eWxlZCBsaXN0c1xuICogLSBEZWZpbml0aW9uIGxpc3RzXG4gKiAtIENlbnRyZWQgbGlzdHNcbiAqIC0gRmxvYXRlZCBsaXN0c1xuICovXG51bCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGlzYzsgfVxuXG5vbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbDsgfVxuXG51bCwgb2wge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDAgMCAyOHB4IDI4cHg7IH1cbiAgdWwgdWwsXG4gIHVsIG9sLCBvbCB1bCxcbiAgb2wgb2wge1xuICAgIG1hcmdpbi1sZWZ0OiA1NnB4OyB9XG4gIHVsIHVsLCBvbCB1bCB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7IH1cbiAgICB1bCB1bCB1bCwgb2wgdWwgdWwge1xuICAgICAgbGlzdC1zdHlsZS10eXBlOiBzcXVhcmU7IH1cbiAgdWwgb2wsIG9sIG9sIHtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IHVwcGVyLXJvbWFuOyB9XG4gICAgdWwgb2wgb2wsIG9sIG9sIG9sIHtcbiAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47IH1cbiAgdWwgdWwsIHVsIG9sLCBvbCB1bCwgb2wgb2wge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLyoqXG4gKiBVbnN0eWxlZCBsaXN0c1xuICovXG4udW5zdHlsZWQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7IH1cblxuLyoqXG4gKiBEZWZpbml0aW9uIGxpc3RzXG4gKi9cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMjhweDsgfVxuXG5kdCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkOyB9XG5cbmRkIHtcbiAgbWFyZ2luLWxlZnQ6IDI4cHg7IH1cblxuLyoqXG4gKiBDZW50cmVkIGxpc3RzXG4gKlxuICogVXNhZ2U6XG5cdDx1bCBjbGFzcz1cImwtbGlzdC0tY2VudHJlZFwiPlxuXHRcdDxsaT48L2xpPlxuXHQ8L3VsPlxuICovXG4ubC1saXN0LS1jZW50cmVkLCAubC1saXN0LS1jZW50ZXJlZCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubC1saXN0LS1jZW50cmVkIGxpLCAubC1saXN0LS1jZW50ZXJlZCBsaSB7XG4gICAgZGlzcGxheTogaW5saW5lOyB9XG5cbi8qKlxuICogRmxvYXRlZCBsaXN0c1xuICogVXNhZ2U6XG5cdDx1bCBjbGFzcz1cImwtbGlzdC0tZmxvYXRlZFwiPlxuXHRcdDxsaT48L2xpPlxuXHQ8L3VsPlxuICovXG4ubC1saXN0LS1mbG9hdGVkOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5sLWxpc3QtLWZsb2F0ZWQgbGkge1xuICBmbG9hdDogbGVmdDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi8qKlxuICogRW1iZWRkZWQgY29udGVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbmltZyB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgY29sb3I6ICNjMDA7XG4gIGJvcmRlcjogMDtcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG5pbWcsXG5vYmplY3QsXG5lbWJlZCxcbnZpZGVvIHtcbiAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qKlxuICogSWNvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRm9yIGFuIGV4YW1wbGUgb2YgaG93IHRvIHVzZSB0aGVzZSwgc2VlXG4gKiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS8zMTRiMDFiMzAwZmEyMGE1YTgyMGE0ZDY4ODlmZmQ0MlxuICogaHR0cDovL2NvZGVwZW4uaW8vbXJtYXJ0aW5lYXUvcGVuL2Fta1pCYj9lZGl0b3JzPTExMDBcbiAqXG4gKiBTVkcgaWNvbiB1c2FnZTpcbiAgIDxzdmcgdGl0bGU9XCJXaGF0c2FwcFwiIGNsYXNzPVwiaWNvbiBpY29uLS13aGF0c2FwcFwiPlxuICAgICA8dXNlIHhsaW5rOmhyZWY9XCIvYXNzZXRzL2Rpc3QvaW1nL2ljb25zLnN2ZyNsb2dvLXdoYXRzYXBwXCIvPlxuICAgPC9zdmc+XG4gKi9cbltjbGFzcyo9XCJpY29uXCJdIHtcbiAgc3BlYWs6IG5vbmU7IH1cblxuLmljb24tLWxhcmdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMjBweDtcbiAgaGVpZ2h0OiAxMjBweDsgfVxuXG4uaWNvbi0tc21hbGwge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAyNXB4O1xuICBoZWlnaHQ6IDI1cHg7IH1cblxuLyoqXG4gKiBJbmNsdWRlZCBTb2NpYWwgTWVkaWEgYW5kIG90aGVyIGljb25zXG4gKi9cbi5pY29uLS10d2l0dGVyIHtcbiAgY29sb3I6ICM1NWFjZWU7IH1cblxuLmljb24tLWZhY2Vib29rIHtcbiAgY29sb3I6ICMzYjU5OTg7IH1cblxuLmljb24tLWluc3RhZ3JhbSB7XG4gIGNvbG9yOiAjZTQ0MDVmOyB9XG5cbi5pY29uLS1waW50ZXJlc3Qge1xuICBjb2xvcjogI2JkMDgxYzsgfVxuXG4uaWNvbi0teW91dHViZSB7XG4gIGNvbG9yOiAjY2QyMDFmOyB9XG5cbi5pY29uLS13aGF0c2FwcCB7XG4gIGNvbG9yOiAjMjVkMzY2OyB9XG5cbi5pY29uLS1lbWFpbCB7XG4gIGNvbG9yOiAjMjg4YWQ2OyB9XG5cbi5pY29uLS1raWNrb2ZmIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyoqXG4gKiBTa2lwIHRvIG1haW4gY29udGVudCBsaW5rXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIDxkaXYgY2xhc3M9XCJza2lwVG9Db250ZW50XCI+XG5cdCBcdDxhIGhyZWY9XCIjbWFpbkNvbnRlbnRcIiBjbGFzcz1cImJ0biBidG4tLXByaW1hcnlcIj5Ta2lwIHRvIG1haW4gY29udGVudDwvYT5cblx0IDwvZGl2PlxuICovXG4uc2tpcFRvQ29udGVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoZWlnaHQ6IDA7IH1cbiAgLnNraXBUb0NvbnRlbnQgYSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTEwMHB4O1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHRyYW5zaXRpb246IGFsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC43NywgMCwgMC4xNzUsIDEpOyB9XG4gICAgLnNraXBUb0NvbnRlbnQgYTpmb2N1cyB7XG4gICAgICB0b3A6IDVweDsgfVxuXG4vKipcbiAqIFByZWZvcm1hdHRlZCBjb2RlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIENvZGUgdHlwb2dyYXBoeSBzdHlsZXMgZm9yIHRoZSA8Y29kZT4gYW5kIDxwcmU+IGVsZW1lbnRzXG4gKi9cbi8qKlxuICogRGVmaW5lIGFzc29jaWF0ZWQgQ29kZSB2YXJpYWJsZXNcbiAqL1xuY29kZSxcbnByZSB7XG4gIHBhZGRpbmc6IDAgM3B4IDJweDtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDAuOHJlbTtcbiAgY29sb3I6ICM0NDQ7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgdGFiLXNpemU6IDM7IH1cblxuY29kZSB7XG4gIHBhZGRpbmc6IDJweCA0cHg7XG4gIGNvbG9yOiAjNDQ0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkOyB9XG5cbnByZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwYWRkaW5nOiAxNHB4O1xuICBtYXJnaW46IDAgMCAyOHB4O1xuICBjb2xvcjogIzQ0NDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB3aGl0ZS1zcGFjZTogcHJlOyB9XG4gIHByZSBjb2RlIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGNvbG9yOiAjNDQ0O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNkZGQ7XG4gICAgYm9yZGVyOiAwOyB9XG5cbi5wcmUtLXNjcm9sbGFibGUge1xuICBtYXgtaGVpZ2h0OiAzNDBweDtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsOyB9XG5cbi8qKlxuICogVGFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIC0gQXNzb2NpYXRlZCBUYWJsZSBWYXJpYWJsZXNcbiAqIC0gRGVmYXVsdCB0YWJsZSBTdHlsZXNcbiAqIOKAkyBUYWJsZSBtb2RpZmllcnM6XG4gKiAgIC0gLnRhYmxlLS1zdHJpcGVkXG4gKiDigJMgLnJlc3BvbnNpdmVUYWJsZVxuICovXG4vKipcbiAqIERlZmluZSBhc3NvY2lhdGVkIFRhYmxlIHZhcmlhYmxlc1xuICovXG4vKipcbiAqIEN1c3RvbWl6ZXMgdGhlIGAudGFibGVgIGNvbXBvbmVudCB3aXRoIGJhc2ljIHZhbHVlcywgZWFjaCB1c2VkIGFjcm9zcyBhbGwgdGFibGUgdmFyaWF0aW9ucy5cbiAqL1xudGFibGUge1xuICB3aWR0aDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgYm9yZGVyOiAycHggc29saWQgI2NjYztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTtcbiAgdGFibGUtbGF5b3V0OiBmaXhlZDsgfVxuICB0YWJsZSB0aCxcbiAgdGFibGUgdGQge1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBsaW5lLWhlaWdodDogMjhweDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7IH1cbiAgICB0YWJsZSB0aDpmaXJzdC1jaGlsZCxcbiAgICB0YWJsZSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItbGVmdDogMDsgfVxuICAgIHRhYmxlIHRoOmxhc3QtY2hpbGQsXG4gICAgdGFibGUgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItcmlnaHQ6IDA7IH1cbiAgdGFibGUgPiB0aGVhZCB0aCxcbiAgdGFibGUgPiB0aGVhZCB0ZCB7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2NjYzsgfVxuICB0YWJsZSA+IHRmb290IHRkIHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgI2NjYztcbiAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIHRhYmxlID4gdGhlYWQ6Zmlyc3QtY2hpbGQgPiB0cjpmaXJzdC1jaGlsZCA+IHRoLFxuICB0YWJsZSA+IHRoZWFkOmZpcnN0LWNoaWxkID4gdHI6Zmlyc3QtY2hpbGQgPiB0ZCB7XG4gICAgYm9yZGVyLXRvcDogMDsgfVxuICB0YWJsZSB0cjpob3ZlciB0ZCwgdGFibGUgdHI6aG92ZXIgdGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7IH1cbiAgdGFibGUgPiB0Ym9keSArIHRib2R5IHtcbiAgICBib3JkZXItdG9wOiAycHggc29saWQgI2NjYzsgfVxuICB0YWJsZSB0YWJsZSxcbiAgdGFibGUgLnRhYmxlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG5cbnRoIHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4vKipcbiAqIFplYnJhLXN0cmlwaW5nXG4gKiBEZWZhdWx0IHplYnJhLXN0cmlwZSBzdHlsZXMgKGFsdGVybmF0aW5nIGdyYXkgYW5kIHRyYW5zcGFyZW50IGJhY2tncm91bmRzKVxuICovXG4udGFibGUtLXN0cmlwZWQgdGJvZHkgOm50aC1jaGlsZChvZGQpIHRoLFxuLnRhYmxlLS1zdHJpcGVkIHRib2R5IDpudGgtY2hpbGQob2RkKSB0ZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOWY5ZjkgIWltcG9ydGFudDsgfVxuXG4vKipcbiAqIFJlc3BvbnNpdmUgdGFibGVzXG4gKiBXcmFwIHlvdXIgdGFibGVzIGluIGAucmVzcG9uc2l2ZVRhYmxlYCBhbmQgd2UnbGwgbWFrZSB0aGVtIG1vYmlsZSBmcmllbmRseSBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0IHdpbGwgZGlzcGxheSBub3JtYWxseS5cbiAqXG4gKiBJZiB5b3UgbmVlZCBtb3JlIHJlc3BvbnNpdmUgdGFibGVzLCBjb25zaWRlciBUYWJsZXNhdyBieSB0aGUgRmlsYW1lbnQgR3JvdXA6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmlsYW1lbnRncm91cC90YWJsZXNhd1xuICovXG5AbWVkaWEgKG1heC13aWR0aDogNzQ5cHgpIHtcbiAgLnJlc3BvbnNpdmVUYWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMjFweDtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IC1tcy1hdXRvaGlkaW5nLXNjcm9sbGJhcjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDsgfVxuICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgYm9yZGVyOiAwOyB9XG4gICAgICAucmVzcG9uc2l2ZVRhYmxlID4gdGFibGUgPiB0aGVhZCB0aCxcbiAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRoZWFkIHRkLFxuICAgICAgLnJlc3BvbnNpdmVUYWJsZSA+IHRhYmxlID4gdGJvZHkgdGgsXG4gICAgICAucmVzcG9uc2l2ZVRhYmxlID4gdGFibGUgPiB0Ym9keSB0ZCxcbiAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRmb290IHRoLFxuICAgICAgLnJlc3BvbnNpdmVUYWJsZSA+IHRhYmxlID4gdGZvb3QgdGQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRoZWFkIHRoOmZpcnN0LWNoaWxkLFxuICAgICAgICAucmVzcG9uc2l2ZVRhYmxlID4gdGFibGUgPiB0aGVhZCB0ZDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnJlc3BvbnNpdmVUYWJsZSA+IHRhYmxlID4gdGJvZHkgdGg6Zmlyc3QtY2hpbGQsXG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRib2R5IHRkOmZpcnN0LWNoaWxkLFxuICAgICAgICAucmVzcG9uc2l2ZVRhYmxlID4gdGFibGUgPiB0Zm9vdCB0aDpmaXJzdC1jaGlsZCxcbiAgICAgICAgLnJlc3BvbnNpdmVUYWJsZSA+IHRhYmxlID4gdGZvb3QgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAwOyB9XG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRoZWFkIHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRoZWFkIHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRib2R5IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRib2R5IHRkOmxhc3QtY2hpbGQsXG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRmb290IHRoOmxhc3QtY2hpbGQsXG4gICAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRmb290IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAgICAgLnJlc3BvbnNpdmVUYWJsZSA+IHRhYmxlID4gdGJvZHkgPiB0aCxcbiAgICAgIC5yZXNwb25zaXZlVGFibGUgPiB0YWJsZSA+IHRib2R5ID4gdGQsXG4gICAgICAucmVzcG9uc2l2ZVRhYmxlID4gdGFibGUgPiB0Zm9vdCB0cjpsYXN0LWNoaWxkID4gdGgsXG4gICAgICAucmVzcG9uc2l2ZVRhYmxlID4gdGFibGUgPiB0Zm9vdCB0cjpsYXN0LWNoaWxkID4gdGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cblxuLyoqXG4gKiBQYXJ0aWFsc1xuICovXG4vKipcbiAqIE1hc3RoZWFkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBGb290ZXJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4vKipcbiAqIEJyb3dzZXIgdXBncmFkZSBtZXNzYWdlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLmJyb3dzZXJ1cGdyYWRlIHtcbiAgbWFyZ2luOiAuMmVtIDA7XG4gIGJhY2tncm91bmQ6ICNjY2M7XG4gIGNvbG9yOiAjMDAwO1xuICBwYWRkaW5nOiAuMmVtIDA7IH1cblxuLyoqXG4gKiBWaWV3c1xuICovXG4vKipcbiAqIEdsb2JhbCBzdHlsZXNcbiAqL1xuLyoqXG4gKiBHbG9iYWwgYXBwL3NpdGUgc3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMWYxZjE7IH1cblxuLyoqXG4gKiBEZWZhdWx0IGxheW91dCBjb250YWluZXJcbiAqL1xuLmwtY29udGFpbmVyIHtcbiAgd2lkdGg6IDkwJTtcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi8qKlxuICogSGVscGVyL3V0aWxpdHkgY2xhc3Nlc1xuICovXG4vKipcbiAqIEhlbHBlciBjbGFzc2VzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIE5vbi1zZW1hbnRpYyBoZWxwZXIgY2xhc3Nlc1xuICovXG4vKipcbiAqIENsZWFyZml4XG4gKiBodHRwOi8vd3d3LmNzc21vam8uY29tL2xhdGVzdF9uZXdfY2xlYXJmaXhfc29fZmFyL1xuICogU2VlIG1peGlucy9fdXRpbGl0eS5zY3NzIGZvciBhIG1peGluIHZlcnNpb24gb2YgdGhpc1xuICovXG4uY2xlYXJmaXg6OmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgZGlzcGxheTogdGFibGU7XG4gIGNsZWFyOiBib3RoOyB9XG5cbi5pciB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBib3JkZXI6IDA7XG4gIGRpcmVjdGlvbjogbHRyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgdGV4dC1pbmRlbnQ6IC05OTllbTsgfVxuICAuaXIgYnIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmlzLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cblxuLmlzLXNob3duIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLmlzLXZpc3VhbGx5SGlkZGVuIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cbiAgLmlzLXZpc3VhbGx5SGlkZGVuLmZvY3VzYWJsZTphY3RpdmUsIC5pcy12aXN1YWxseUhpZGRlbi5mb2N1c2FibGU6Zm9jdXMge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgIHdpZHRoOiBhdXRvOyB9XG5cbi5pcy1pbnZpc2libGUge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47IH1cblxuLmwtZmxvYXRMZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLmwtZmxvYXRSaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4ubC1jbGVhciB7XG4gIGNsZWFyOiBib3RoO1xuICBmbG9hdDogbm9uZTsgfVxuXG4ubC1tYjAge1xuICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cblxuLmwtbXQwIHtcbiAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cbioge1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IH1cblxuLyogQSBoYWNrIGZvciBIVE1MNSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIG9uIG1vYmlsZSAqL1xudGV4dGFyZWFbY29udGVudGVkaXRhYmxlXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4ucHJvbW90ZS1sYXllciB7XG4gIC8qXG5cdFRoaXMgbWF5IHByb21vdGUgdGhlIGxheWVyIHRvIGEgY29tcG9zaXRlZFxuXHRsYXllci5cblxuXHRSZXBsYWNlIHdpdGggd2lsbC1jaGFuZ2Ugd2hlbiBhdmFpbGFibGVcblxuXHQjcGVyZm1hdHRlcnNcblx0Ki9cbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi50cmFuc2l0aW9uIHtcbiAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7IH1cblxuYSxcbmFyZWEsXG5idXR0b24sXG5pbnB1dCxcbmxhYmVsLFxuc2VsZWN0LFxudGV4dGFyZWEsXG5bdGFiaW5kZXhdIHtcbiAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247IH1cblxuLyoqXG4gKiBQcmludCBzdHlsZXNcbiAqL1xuLyoqXG4gKiBQcmludCBzdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG5AbWVkaWEgcHJpbnQge1xuICAqLFxuICAqOmJlZm9yZSxcbiAgKjphZnRlcixcbiAgKjpmaXJzdC1sZXR0ZXIge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbiAgICAvKiBCbGFjayBwcmludHMgZmFzdGVyOiBodHRwOi8vd3d3LnNhbmJlaWppLmNvbS9hcmNoaXZlcy85NTMgKi9cbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICBhOnZpc2l0ZWQge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG4gIGFbaHJlZl06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKGhyZWYpIFwiKVwiOyB9XG4gIGFiYnJbdGl0bGVdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cih0aXRsZSkgXCIpXCI7IH1cbiAgLypcblx0ICogRG9uJ3Qgc2hvdyBsaW5rcyBmb3IgaW1hZ2VzLCBvciBqYXZhc2NyaXB0L2ludGVybmFsIGxpbmtzXG5cdCAqL1xuICAuaXIgYTphZnRlcixcbiAgYVtocmVmXj1cImphdmFzY3JpcHQ6XCJdOmFmdGVyLFxuICBhW2hyZWZePVwiI1wiXTphZnRlciB7XG4gICAgY29udGVudDogXCJcIjsgfVxuICBwcmUsXG4gIGJsb2NrcXVvdGUge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIHRoZWFkIHtcbiAgICBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXA7XG4gICAgLyogaDVicC5jb20vdCAqLyB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIEBwYWdlIHtcbiAgICBtYXJnaW46IC41Y207IH1cbiAgcCwgaDIsIGgzIHtcbiAgICBvcnBoYW5zOiAzO1xuICAgIHdpZG93czogMzsgfVxuICBoMiwgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9IH1cbiIsIi8qKlxuICog4paI4paI4pWXICDilojilojilZfilojilojilZcg4paI4paI4paI4paI4paI4paI4pWX4paI4paI4pWXICDilojilojilZcg4paI4paI4paI4paI4paI4paI4pWXIOKWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKWiOKWiOKWiOKWiOKWiOKVl1xuICog4paI4paI4pWRIOKWiOKWiOKVlOKVneKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVkOKVkOKVneKWiOKWiOKVkSDilojilojilZTilZ3ilojilojilZTilZDilZDilZDilojilojilZfilojilojilZTilZDilZDilZDilZDilZ3ilojilojilZTilZDilZDilZDilZDilZ1cbiAqIOKWiOKWiOKWiOKWiOKWiOKVlOKVnSDilojilojilZHilojilojilZEgICAgIOKWiOKWiOKWiOKWiOKWiOKVlOKVnSDilojilojilZEgICDilojilojilZHilojilojilojilojilojilZcgIOKWiOKWiOKWiOKWiOKWiOKVl1xuICog4paI4paI4pWU4pWQ4paI4paI4pWXIOKWiOKWiOKVkeKWiOKWiOKVkSAgICAg4paI4paI4pWU4pWQ4paI4paI4pWXIOKWiOKWiOKVkSAgIOKWiOKWiOKVkeKWiOKWiOKVlOKVkOKVkOKVnSAg4paI4paI4pWU4pWQ4pWQ4pWdXG4gKiDilojilojilZEgIOKWiOKWiOKVl+KWiOKWiOKVkeKVmuKWiOKWiOKWiOKWiOKWiOKWiOKVl+KWiOKWiOKVkSAg4paI4paI4pWX4pWa4paI4paI4paI4paI4paI4paI4pWU4pWd4paI4paI4pWRICAgICDilojilojilZFcbiAqIOKVmuKVkOKVnSAg4pWa4pWQ4pWd4pWa4pWQ4pWdIOKVmuKVkOKVkOKVkOKVkOKVkOKVneKVmuKVkOKVnSAg4pWa4pWQ4pWdIOKVmuKVkOKVkOKVkOKVkOKVkOKVnSDilZrilZDilZ0gICAgIOKVmuKVkOKVnVxuICogQnkgWmFuZGVyIE1hcnRpbmVhdSAmIEFzaGxleSBOb2xhblxuICogaHR0cDovL3RyeWtpY2tvZmYuY29tXG4gKlxuICogUHJvamVjdCBkZXBlbmRlbmNpZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogLSBNaXhpbnMsIGhlbHBlcnMgYW5kIGZ1bmN0aW9uc1xuICogLSBDb3JlIHZhcmlhYmxlc1xuICogLSBDU1MgcmVzZXRzXG4gKiAtIFR5cG9ncmFwaHkgc3R5bGVzXG4gKiAtIENvbXBvbmVudHNcbiAqIC0gUGFydGlhbHNcbiAqIC0gVmlld3NcbiAqIC0gR2xvYmFsIHN0eWxlc1xuICogLSBIZWxwZXIvdXRpbGl0eSBjbGFzc2VzXG4gKiAtIFByaW50IHN0eWxlc1xuICpcbiAqIFJlYWQgYWJvdXQgb3VyIGRpc3RpbmN0aW9uIGJldHdlZW4gdmlld3MsIHBhcnRpYWxzIGFuZCBjb21wb25lbnRzIGF0XG4gKiBodHRwczovL3RyeWtpY2tvZmYuY29tL2xlYXJuL2Nzcy5odG1sI3ZpZXdzLXBhcnRpYWxzLS1jb21wb25lbnRzXG4gKlxuICogIyMgWWVvbWFuXG4gKiBUaGUgWWVvbWFuIGdlbmVyYXRvciBjYW4gYWxzbyBiZSB1c2VkIHRvIGFkZCBuZXcgdmlld3MsIHBhcnRpYWxzIGFuZFxuICogY29tcG9uZW50cy4gZS5nLiBgeW8ga2lja29mZjpzYXNzOmNvbXBvbmVudCBmb29gIHdpbGwgY3JlYXRlIGEgbmV3IGZpbGU6XG4gKiBgc2Nzcy9jb21wb25lbnRzL19jb21wb25lbnQuc2Nzc2AgYW5kIGFkZCB0aGUgYEBpbXBvcnRgIHN0YXRlbWVudCBpbiB0aGlzXG4gKiBmaWxlLiBJbnN0YWxsIHRoZSBnZW5lcmF0b3IgYnkgcnVubmluZyBgbnBtIGkgLWcgeW8gZ2VuZXJhdG9yLWtpY2tvZmZgXG4gKlxuICovXG5cblxuLypcbiAqIE1peGlucywgaGVscGVycyBhbmQgZnVuY3Rpb25zXG4gKi9cbkBpbXBvcnQgXCJraWNrb2ZmLXV0aWxzXCI7IC8vIEZyb20gZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS9raWNrb2ZmLXV0aWxzLnNjc3NcbkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7IC8vIEZyb20gaW5jbHVkZS1tZWRpYS5jb21cblxuXG4vKipcbiAqIENvcmUgdmFyaWFibGVzXG4gKiBFZGl0IHlvdXIgY29sb3IgcGFsZXR0ZSBhbmQgYXBwIHZhcnMgYmVmb3JlIHlvdXIgYmVnaW5cbiAqL1xuQGltcG9ydCBcImNvbG9yLXBhbGV0dGVcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcblxuXG4vKipcbiAqIENTUyByZXNldHNcbiAqL1xuQGltcG9ydCBcInJlc2V0XCI7XG5cblxuLyoqXG4gKiBUeXBvZ3JhcGh5IHN0eWxlc1xuICogU2VlIGh0dHBzOi8vdHJ5a2lja29mZi5jb20vZGVtb3MvdHlwb2dyYXBoeS5odG1sIGZvciBtb3JlIGluZm9cbiAqL1xuQGltcG9ydCBcInR5cG9ncmFwaHlcIjtcblxuXG4vKipcbiAqIENvbXBvbmVudHNcbiAqIFNlZSBodHRwczovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2NvbXBvbmVudHMuaHRtbCBmb3IgbW9yZSBpbmZvXG4gKlxuICogTm90ZTogcGxhY2UgYWxsIDNyZCBwYXJ0eSBjb21wb25lbnRzIGF0IHRoZSB0b3Agb2YgdGhlIGxpc3RcbiAqL1xuQGltcG9ydCBcImtpY2tvZmYtZmx1aWRWaWRlb1wiOyAvLyBodHRwczovL2dpdGh1Yi5jb20vbXJtYXJ0aW5lYXUva2lja29mZi1mbHVpZFZpZGVvLmNzc1xuQGltcG9ydCBcImtpY2tvZmYtZ3JpZFwiOyAvLyBodHRwczovL2dpdGh1Yi5jb20vVHJ5S2lja29mZi9raWNrb2ZmLWdyaWQuY3NzIC0gZG9jczogdHJ5a2lja29mZi5jb20vZG9jcy9ncmlkLmh0bWwgJiBkZW1vOiB0cnlraWNrb2ZmLmNvbS9kZW1vcy9ncmlkcy5odG1sXG5AaW1wb3J0IFwiY29tcG9uZW50cy9mb3Jtcy9mb3Jtc1wiOyAvLyBodHRwczovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2Zvcm1zLmh0bWxcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xpbmtzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9idXR0b25zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9saXN0c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZW1iZWRkZWQtY29udGVudFwiOyAvLyBpbWFnZXMgZXRjXG5AaW1wb3J0IFwiY29tcG9uZW50cy9pY29uc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2tpcC1uYXZpZ2F0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb2RlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90YWJsZXNcIjtcbi8vIEBpbXBvcnQgXCJjb21wb25lbnRzL3Njcm9sbGJhcnNcIjtcbi8vIHlvOnN0YXJ0IC0tIGNvbXBvbmVudFxuLy8geW86ZW5kIC0tIGNvbXBvbmVudFxuXG5cbi8qKlxuICogUGFydGlhbHNcbiAqL1xuQGltcG9ydCBcInBhcnRpYWxzL21hc3RoZWFkXCI7IC8vIEV4YW1wbGUgcGFydGlhbCBmb3IgbWFzdGhlYWRcbkBpbXBvcnQgXCJwYXJ0aWFscy9mb290ZXJcIjsgLy8gRXhhbXBsZSBwYXJ0aWFsIGZvciBmb290ZXJcbkBpbXBvcnQgXCJwYXJ0aWFscy9icm93c2VyLXVwZ3JhZGVcIjsgLy8gU3R5bGVzIHRvIHNob3cgYW4gdXBncmFkZSBtZXNzYWdlIHRvIHVzZXJzIG9uIG9sZCBicm93c2Vyc1xuLy8geW86c3RhcnQgLS0gcGFydGlhbFxuLy8geW86ZW5kIC0tIHBhcnRpYWxcblxuXG4vKipcbiAqIFZpZXdzXG4gKi9cbi8vQGltcG9ydCBcInZpZXdzL2hvbWVcIjtcbi8vQGltcG9ydCBcInZpZXdzL2NvbnRhY3RcIjtcbi8vIHlvOnN0YXJ0IC0tIHZpZXdcbi8vIHlvOmVuZCAtLSB2aWV3XG5cblxuLyoqXG4gKiBHbG9iYWwgc3R5bGVzXG4gKi9cbkBpbXBvcnQgXCJnbG9iYWxcIjtcblxuXG4vKipcbiAqIEhlbHBlci91dGlsaXR5IGNsYXNzZXNcbiAqL1xuQGltcG9ydCBcImhlbHBlci1jbGFzc2VzXCI7XG5cbi8qKlxuICogUHJpbnQgc3R5bGVzXG4gKi9cbkBpbXBvcnQgXCJ2aWV3cy9wcmludFwiO1xuIiwiLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiBrby1nZXRWYWwoMTAwLCAkbWFwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tZ2V0VmFsKG1pZCwgJG1hcCkgLSB1c2VzIGEgU2FzcyBtYXBcbiAqIGtvLWdldFZhbCgkZm9vLCAkbWFwKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cblxuQGZ1bmN0aW9uIGtvLWdldFZhbHVlKCR2YWwsICRtYXA6ICcnKSB7XG5cdEBpZiB0eXBlLW9mKCR2YWwpID09ICdudW1iZXInIHtcblx0XHRAcmV0dXJuICR2YWw7XG5cdH0gQGVsc2UgaWYgdmFyaWFibGUtZXhpc3RzKCR2YWwpIHtcblx0XHRAcmV0dXJuICR2YWw7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsKTtcblx0fVxufVxuXG5cbi8qKlxuICogR2V0IGJyZWFrcG9pbnRzXG4gKlxuICoga28tYnAoKVxuICpcbiAqIFVzYWdlOlxuICoga28tYnAoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tYnAobWlkKSAtIHVzZXMgdGhlICRicmVha3BvaW50cyBTYXNzIG1hcFxuICoga28tYnAoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG5AZnVuY3Rpb24ga28tYnAoJHZhbCkge1xuXHRAcmV0dXJuIGdldFZhbHVlKCR2YWwsICRicmVha3BvaW50cyk7XG59XG5cblxuLyoqXG4gKiBHZXQgdHlwZSBzaXplXG4gKlxuICoga28tdHlwZSgpXG4gKlxuICogVXNhZ2U6XG4gKiBrby10eXBlKDEwMCkgLSB1c2VzIGFuIGludGVnZXJcbiAqIGtvLXR5cGUobWlkKSAtIHVzZXMgdGhlICR0eXBlIFNhc3MgbWFwXG4gKiBrby10eXBlKCRmb28pIC0gdXNlcyBhIFNhc3MgdmFyaWFibGVcbiAqL1xuQGZ1bmN0aW9uIGtvLXR5cGUoJHZhbCkge1xuXHRAcmV0dXJuIGdldFZhbHVlKCR2YWwsICR0eXBlKTtcbn1cbiIsIi8qKlxuICogVXNhZ2U6XG4gKlxuICRncmlkLWNvbmZpZ3VyYXRpb246IChcbiAgICdjb2x1bW5zJzogMTIsXG4gICAnbGF5b3V0cyc6IChcbiAgICAgJ3NtYWxsJzogODAwcHgsXG4gICAgICdtZWRpdW0nOiAxMDAwcHgsXG4gICAgICdsYXJnZSc6IDEyMDBweCxcbiAgICksXG4gKTtcblxuIGRpdiB7XG4gICBmb250LXNpemU6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnY29sdW1ucycpO1xuICAgd2lkdGg6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnbGF5b3V0cycsICdtZWRpdW0nKTtcbiB9XG4gKi9cblxuQGZ1bmN0aW9uIGtvLW1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuXHRAZWFjaCAka2V5IGluICRrZXlzIHtcblx0XHQkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuXG5cdFx0QGlmIG5vdCAkbWFwIHtcblx0XHRcdEBlcnJvciAnVGhlIHZhbHVlIGAjeyRrZXl9YCBkb2VzbuKAmXQgZXhpc3QgaW4gdGhlIG1hcC4nO1xuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gJG1hcDtcbn1cbiIsIi8qKlxuICogTW9kdWxhciBzY2FsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBVc2FnZToga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIDMsICR0eXBlLXNjYWxlKVxuICogb3Igd2l0aCB0aGUgc2hvcnRoYW5kIHZlcnNpb246IGtvLW1zKDMpXG4gKi9cblxuLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW4gICAgICAgICAgIDogMS42MTg7XG4kbWlub3Itc2Vjb25kICAgICA6IDEuMDY3O1xuJG1ham9yLXNlY29uZCAgICAgOiAxLjEyNTtcbiRtaW5vci10aGlyZCAgICAgIDogMS4yO1xuJG1ham9yLXRoaXJkICAgICAgOiAxLjI1O1xuJHBlcmZlY3QtZm91cnRoICAgOiAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoIDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aCAgICA6IDEuNTtcbiRtaW5vci1zaXh0aCAgICAgIDogMS42O1xuJG1ham9yLXNpeHRoICAgICAgOiAxLjY2NztcbiRtaW5vci1zZXZlbnRoICAgIDogMS43Nzg7XG4kbWFqb3Itc2V2ZW50aCAgICA6IDEuODc1O1xuJG9jdGF2ZSAgICAgICAgICAgOiAyO1xuJG1ham9yLXRlbnRoICAgICAgOiAyLjU7XG4kbWFqb3ItZWxldmVudGggICA6IDIuNjY3O1xuJG1ham9yLXR3ZWxmdGggICAgOiAzO1xuJGRvdWJsZS1vY3RhdmUgICAgOiA0O1xuXG5cbkBmdW5jdGlvbiBrby1tb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJHJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vKipcbiAqIFNob3J0aGFuZCBtb2R1bGFyIHNjYWxlXG4gKiBVc2VzIHRoZSAkZm9udC1zaXplLWJhc2UgYW5kICR0eXBlLXNjYWxlIGZyYW1ld29yayB2YXJpYWJsZXMgc28gdGhhdCB5b3VcbiAqIG9ubHkgbmVlZCB0byBwcm92aWRlIHRoZSBzY2FsZSBpbmNyZW1lbnRcbiAqXG4gKiBlLmcuIGtvLW1zKDUpXG4gKi9cbkBmdW5jdGlvbiBrby1tcygkaW5jcmVtZW50KSB7XG5cdEByZXR1cm4ga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsICRpbmNyZW1lbnQsICR0eXBlLXNjYWxlKTtcbn1cbiIsIi8qKlxuICogTXVsdGlwbHlcbiAqID09PT09PT09PT09PT09PT09XG4gKiBNdWx0aXBseSBhbnkgdmFsdWVcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLW11bHRpcGx5KDE1LCAyKVxuICoga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAxLjUpXG4gKi9cbkBmdW5jdGlvbiBrby1tdWx0aXBseSgkaW5pdGlhbCwgJG11bHRpcGx5KSB7XG5cdEByZXR1cm4gJG11bHRpcGx5ICogJGluaXRpYWw7XG59XG4iLCIvKipcbiAqIFNhc3MgTWl4aW5zXG4gKiAtIFJlc3BvbnNpdmVcbiAqIC0gRGltZW5zaW9uc1xuICogLSBQb3NpdGlvbmluZ1xuICogLSBVdGlsaXR5XG4gKiAtIEZvcm1zXG4gKiAtIE1vZHVsZSBOYW1pbmcgSGVscGVyc1xuICovXG5cbi8vIFJlc3BvbnNpdmUgbWl4aW5zXG5AaW1wb3J0IFwicmVzcG9uc2l2ZVwiO1xuQGltcG9ydCBcImhpZHBpXCI7XG5cbi8vIFNpemluZyBtaXhpbnNcbi8vIEZvbnQtc2l6aW5nLCBSRU0gbWl4aW5zIGFuZCBvdGhlciBzaXppbmcgbWl4aW5zXG5AaW1wb3J0IFwidW5pdHNcIjtcblxuLy8gUG9zaXRpb25pbmcgbWl4aW5zXG5AaW1wb3J0IFwicG9zaXRpb25cIjtcbkBpbXBvcnQgXCJ2ZXJ0aWNhbC1jZW50ZXJcIjtcblxuLy8gVXRpbGl0eSBtaXhpbnMgLSBDbGVhcmZpeCBhbmQgb3RoZXIgaGVscGVyc1xuQGltcG9ydCBcInV0aWxpdHlcIjtcblxuLy8gTW9kdWxlIG5hbWluZyBoZWxwZXJzXG5AaW1wb3J0IFwibW9kdWxlLW5hbWluZy1oZWxwZXJzXCI7XG4iLCIvKipcbiAqIFJlc3BvbnNpdmUgbWVkaWEgcXVlcnkgbWl4aW5zXG4gKiAtIFRoZXNlIGFyZSB1c2VkIHNvIHRoYXQgd2UgY2FuIGRlZmluZSBzZXBhcmF0ZSBtZWRpYS1xdWVyeSBjb250ZW50XG4gKiAtIEFyZ3VtZW50cyBjYW4gdXNlOlxuICogICAtIGEgbmFtZWQgYnJlYWtwb2ludCBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCwgZS5nLiBtaWRcbiAqICAgLSBhIHBpeGVsIHZhbHVlIGUuZy4gNTAwcHhcbiAqICAgLSBhIHVuaXRsZXNzIHZhbHVlIHRoYXQgaXMgZXFpdmFsZW50IHRvIGEgcGl4ZWwgZS5nLiA1MDBcbiAqL1xuXG4vLyAkbXEtYmFzZSB2YXJpYWJsZTpcbi8vXG4vLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGJyb3dzZXJzIGRvIG5vdCBjYWxjdWxhdGUgZW0tYmFzZWRcbi8vIG1lZGlhIHF1ZXJpZXMgY29ycmVjdGx5LiBJdCBpcyBzZXQgdG8gMTYgYmVjYXVzZSB3ZSB0aGlua1xuLy8gdGhlIG1ham9yaXR5IG9mIHVzZXJzIHdpbGwgaGF2ZSB0aGVpciBicm93c2VyIHNldCB0byAxMDAlXG4vLyB6b29tIGxldmVsLlxuLy9cbi8vIFNlZSBiZWxvdyBmb3IgYW4gZXhwbGFuYXRpb246XG4vLyBodHRwOi8vd3d3LmZpbGFtZW50Z3JvdXAuY29tL2xhYi9ob3ctd2UtbGVhcm5lZC10by1sZWF2ZS1ib2R5LWZvbnQtc2l6ZS1hbG9uZS5odG1sXG4kbXEtYmFzZTogMTY7XG5cblxuLyoqXG4gKiBNaW4td2lkdGggbWVkaWEgcXVlcnk6XG4gKiAtIEVxdWl2YWxlbnQgdG86IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluKG1pZCkgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLXJlc3BvbmQtbWluKCR3aWR0aCkge1xuXHQkd2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCR3aWR0aCkpLCAkbXEtYmFzZSk7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoLWVtKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuXG4vKipcbiAqIE1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1tYXgobWlkKSB7IC4uLiB9O1xuICovXG5AbWl4aW4ga28tcmVzcG9uZC1tYXgoJHdpZHRoKSB7XG5cdCR3aWR0aC1lbToga28tZW0oa28tc3RyaXAtdW5pdHMoa28tYnAoJHdpZHRoKSksICRtcS1iYXNlKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgtZW0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogTWluLW1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTBlbSkgYW5kIChtYXgtd2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluLW1heChuYXJyb3csIDYwMCkgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLXJlc3BvbmQtbWluLW1heCgkbWluLXdpZHRoLCAkbWF4LXdpZHRoKSB7XG5cdCRtaW4td2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCRtaW4td2lkdGgpKSwgJG1xLWJhc2UpO1xuXHQkbWF4LXdpZHRoLWVtOiBrby1lbShrby1zdHJpcC11bml0cyhrby1icCgkbWF4LXdpZHRoKSksICRtcS1iYXNlKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluLXdpZHRoLWVtKSBhbmQgKG1heC13aWR0aDogJG1heC13aWR0aC1lbSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvKipcbiAqICBIaURQSSBtaXhpbi5cbiAqICBAaW5jbHVkZSBrby1oaWRwaSB7IC4uLiB9O1xuICogIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuICovXG5AbWl4aW4ga28taGlkcGkoJHJhdGlvOiAxLjI1KSB7XG5cdEBtZWRpYSBwcmludCxcblx0XHQoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuXHRcdChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCksXG5cdFx0KG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpbyo5Nn1kcGkpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1pbmltdW0gd2lkdGggbWVkaWEgcXVlcnlcbiAqIEBpbmNsdWRlIGtvLWhpZHBpLW1pbihicChtaWQpLCAxLjUpIHsgLi4uIH07XG4gKi9cbkBtaXhpbiBrby1oaWRwaS1taW4oJHdpZHRoLCAkcmF0aW86IDEuMjUpIHtcblx0JHdpZHRoLWVtOiBrby1lbShrby1zdHJpcC11bml0cyhrby1icCgkd2lkdGgpKSwgJG1xLWJhc2UpO1xuXG5cdEBtZWRpYSBwcmludCxcblx0XHRzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR3aWR0aC1lbSkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG5cdFx0c2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgtZW0pIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpLFxuXHRcdHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoLWVtKSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpbyo5Nn1kcGkpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1heCB3aWR0aCBtZWRpYSBxdWVyeVxuICogQGluY2x1ZGUga28taGlkcGktbWF4KGJwKG1pZCksIDEuMykgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLWhpZHBpLW1heCgkd2lkdGgsICRyYXRpbzogMS4yNSkge1xuXHQkd2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCR3aWR0aCkpLCAkbXEtYmFzZSk7XG5cblx0QG1lZGlhIHByaW50LFxuXHRcdHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHdpZHRoLWVtKSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcblx0XHRzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR3aWR0aC1lbSkgYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCksXG5cdFx0c2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgtZW0pIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvKjk2fWRwaSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvLy8gQGdyb3VwIHVuaXRzXG4vKipcbiAqIERpbWVuc2lvbnMtYmFzZWQgbWl4aW5zXG4gKiAtIFJFTSBjYWxjdWxhdGlvblxuICogLSBUeXBvZ3JhcGh5IG1peGlucyBiYXNlZCBvbiB0aGUgUkVNIG1peGluXG4gKiAgIC0gZm9udC1zaXplXG4gKiAgIC0gbGluZS1oZWlnaHRcbiAqICAgLSBmb250LXNpemUtZW1zXG4gKi9cblxuLy8gUkVNXG4vLyBAaW5jbHVkZSBrby1yZW0obWFyZ2luLCAkZm9udC1zaXplLWJhc2UpO1xuQG1peGluIGtvLXJlbSgkcHJvcGVydHksICRzaXplVmFsdWU6ICRmb250LXNpemUtYmFzZSkge1xuXHQkcmVtVmFsdWU6IChrby1zdHJpcC11bml0cygkc2l6ZVZhbHVlKSAvICRmb250LXNpemUtYmFzZSk7XG5cdC8vICN7JHByb3BlcnR5fTogY2VpbCgkc2l6ZVZhbHVlKSArIHB4O1xuXHQjeyRwcm9wZXJ0eX06ICN7JHJlbVZhbHVlfXJlbTtcbn1cblxuXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zXG4gKi9cblxuLy8gUkVNIGZvbnQgc2l6ZVxuLy8gQGluY2x1ZGUga28tZm9udC1zaXplKDE2KTtcbi8vIEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShsYXJnZSk7XG4vLyBAaW5jbHVkZSBrby1mb250LXNpemUoJHR5cGUtanVtYm8pO1xuQG1peGluIGtvLWZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAkZm9udC1zaXplLWJhc2UpIHtcblx0JHR5cGU6ICgpICFkZWZhdWx0O1xuXHQvLyBAZGVidWcgJHNpemVWYWx1ZTtcblx0QGluY2x1ZGUga28tcmVtKGZvbnQtc2l6ZSwga28tZ2V0VmFsdWUoJHNpemVWYWx1ZSwgJHR5cGUpKTtcbn1cblxuXG4vLyBSRU0gbGluZSBoZWlnaHRcbi8vIEBpbmNsdWRlIGtvLWxpbmUtaGVpZ2h0KDE2KTtcbkBtaXhpbiBrby1saW5lLWhlaWdodCgkc2l6ZVZhbHVlOiAkbGluZS1oZWlnaHQtYmFzZSkge1xuXHRAaW5jbHVkZSBrby1yZW0obGluZS1oZWlnaHQsICRzaXplVmFsdWUpO1xufVxuXG5cbi8vIEVNIGZvbnQgc2l6ZVxuLy8gQGluY2x1ZGUga28tZm9udC1zaXplLWVtcygyMCwgMTYpO1xuQG1peGluIGtvLWZvbnQtc2l6ZS1lbXMoJHRhcmdldC1weC1zaXplLCAkY29udGV4dC1weC1zaXplOiAkZm9udC1zaXplLWJhc2UpIHtcblx0Zm9udC1zaXplOiAoJHRhcmdldC1weC1zaXplIC8gJGNvbnRleHQtcHgtc2l6ZSkgKiAxZW07XG59XG4iLCIvKipcbiAqIGtvLXBvc2l0aW9uXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIGtvLXBvc2l0aW9uKGFic29sdXRlLCAxMHB4IDIwcHggMzBweCAxMHB4KTtcbiAqL1xuQG1peGluIGtvLXBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IDAgMCAwIDApIHtcblxuXHRAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuXHRcdCRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuXHRcdCRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQkdG9wOiBudGgoJGNvb3JkaW5hdGVzLCAxKTtcblx0JHJpZ2h0OiBudGgoJGNvb3JkaW5hdGVzLCAyKTtcblx0JGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyk7XG5cdCRsZWZ0OiBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuXHRwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG5cdEBpZiAkdG9wID09IGF1dG8ge1xuXHRcdHRvcDogJHRvcDtcblx0fSBAZWxzZSBpZiBub3QodW5pdGxlc3MoJHRvcCkpIHtcblx0XHR0b3A6ICR0b3A7XG5cdH1cblxuXHRAaWYgJHJpZ2h0ID09IGF1dG8ge1xuXHRcdHJpZ2h0OiAkcmlnaHQ7XG5cdH0gQGVsc2UgaWYgbm90KHVuaXRsZXNzKCRyaWdodCkpIHtcblx0XHRyaWdodDogJHJpZ2h0O1xuXHR9XG5cblx0QGlmICRib3R0b20gPT0gYXV0byB7XG5cdFx0Ym90dG9tOiAkYm90dG9tO1xuXHR9IEBlbHNlIGlmIG5vdCh1bml0bGVzcygkYm90dG9tKSkge1xuXHRcdGJvdHRvbTogJGJvdHRvbTtcblx0fVxuXG5cdEBpZiAkbGVmdCA9PSBhdXRvIHtcblx0XHRsZWZ0OiAkbGVmdDtcblx0fSBAZWxzZSBpZiBub3QodW5pdGxlc3MoJGxlZnQpKSB7XG5cdFx0bGVmdDogJGxlZnQ7XG5cdH1cbn1cbiIsIi8qKlxuICogdmVydGljYWwtY2VudGVyXG4gKiBWZXJ0aWNhbGx5IGNlbnRlciBhbnkgZWxlbWVudC4gTmVlZHMgc3VwcG9ydCBmb3IgQ1NTIHRyYW5mb3Jtcy5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUga28tdmVydGljYWwtY2VudGVyO1xuICovXG5AbWl4aW4ga28tdmVydGljYWwtY2VudGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuIiwiLyoqXG4gKiBVdGlsaXR5IE1peGluc1xuICogLSBjbGVhcmZpeFxuICogLSBmb250LWZhY2VcbiAqIC1cbiAqIC0gc2l6aW5nIHNob3J0Y3V0c1xuICogICAtIHNpemVcbiAqICAgLSBzcXVhcmVcbiAqIC0gcmVzaXphYmxlXG4gKi9cblxuLy8gQ2xlYXJmaXhcbi8vIGh0dHA6Ly93d3cuY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLyBPdGhlciBrby1jbGVhcmZpeCBvcHRpb25zOiBodHRwczovL2dpdGh1Yi5jb20vc3R1YmJvcm5lbGxhL29vY3NzL2Jsb2IvbWFzdGVyL29vY3NzL3NyYy9jb21wb25lbnRzL3V0aWxzL19jbGVhcmZpeC1tZS5zY3NzXG5AbWl4aW4ga28tY2xlYXJmaXgge1xuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG5cblxuXG4vLyBAZm9udC1mYWNlXG4vLyBAaW5jbHVkZSBrby1mb250LWZhY2UocHJveGltYS1ub3ZhLCAvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YSwgbm9ybWFsLCBpdGFsaWMsIGZhbHNlKTtcbkBtaXhpbiBrby1mb250LWZhY2UoJGZhbWlseS1uYW1lLCAkZm9udC1wYXRoLCAkZm9udC13ZWlnaHQ6IG5vcm1hbCwgJGZvbnQtc3R5bGU6IG5vcm1hbCkge1xuXHRAZm9udC1mYWNlIHtcblx0XHRmb250LWZhbWlseTogJGZhbWlseS1uYW1lO1xuXHRcdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LmVvdCcpO1xuXHRcdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0XHR1cmwoJyN7JGZvbnQtcGF0aH0ud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdFx0dXJsKCcjeyRmb250LXBhdGh9LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHRcdHVybCgnI3skZm9udC1wYXRofS5zdmcjI3skZmFtaWx5LW5hbWV9JykgZm9ybWF0KCdzdmcnKTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuXHRcdGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xuXHR9XG59XG5cbi8vIENlbnRyZS1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcbi8vIEBpbmNsdWRlIGtvLWNlbnRlci1ibG9ja1xuQG1peGluIGtvLWNlbnRlci1ibG9jaygpIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4vLyBJbnB1dCBwbGFjZWhvbGRlciB0ZXh0XG5AbWl4aW4ga28tcGxhY2Vob2xkZXIoJGNvbG9yOiBsaWdodGVuKCMwMDAsIDcwJSkpIHtcblx0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0fVxuXG5cdDotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG5cblx0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG59XG5cbi8vIFRleHQgc2VsZWN0aW9uXG5AbWl4aW4ga28tdGV4dC1zZWxlY3Rpb24oJGNvbG9yLXNlbGVjdGlvbiwgJGNvbG9yLXNlbGVjdGlvbi1iZykge1xuXHQ6Oi1tb3otc2VsZWN0aW9uIHtcblx0XHRjb2xvcjogJGNvbG9yLXNlbGVjdGlvbjtcblx0XHRiYWNrZ3JvdW5kOiAkY29sb3Itc2VsZWN0aW9uLWJnO1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHR9XG5cblx0OjpzZWxlY3Rpb24ge1xuXHRcdGNvbG9yOiAkY29sb3Itc2VsZWN0aW9uO1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1zZWxlY3Rpb24tYmc7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cblxuLy8gVmVydGljYWwgYWxpZ25cbi8vIEBpbmNsdWRlIGtvLXZlcnRpY2FsLWFsaWduKDUwcHgpO1xuQG1peGluIGtvLXZlcnRpY2FsLWFsaWduKCRhcmd1bWVudCkge1xuXHRsaW5lLWhlaWdodDogJGFyZ3VtZW50O1xuXHRoZWlnaHQ6ICRhcmd1bWVudDtcbn1cblxuLy8gVGV4dCB0cnVuY2F0aW9uXG4vLyBAaW5jbHVkZSBrby10cnVuY2F0ZSgzMDBweCk7XG4vLyBAaW5jbHVkZSBrby10cnVuY2F0ZSgxMDAlKTtcbkBtaXhpbiBrby10cnVuY2F0ZSgkdHJ1bmNhdGlvbi1ib3VuZGFyeSkge1xuXHRtYXgtd2lkdGg6ICR0cnVuY2F0aW9uLWJvdW5kYXJ5O1xuXHRAaW5jbHVkZSBrby10ZXh0LW92ZXJmbG93KCk7XG59XG5cbi8vIFRleHQgb3ZlcmZsb3dcbi8vIEBpbmNsdWRlIGtvLXRleHQtb3ZlcmZsb3coKTtcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcbkBtaXhpbiBrby10ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuLyoqXG4gKiBTaXppbmcgc2hvcnRjdXRzXG4gKi9cblxuLy8gQGluY2x1ZGUga28tc2l6ZSgxMHB4LCAzMHB4KTtcbkBtaXhpbiBrby1zaXplKCR3aWR0aDogNXB4LCAkaGVpZ2h0OiA1cHgpIHtcblx0aGVpZ2h0OiAkaGVpZ2h0O1xuXHR3aWR0aDogJHdpZHRoO1xufVxuXG5cbi8vIEBpbmNsdWRlIGtvLXNxdWFyZSg1MHB4KTtcbkBtaXhpbiBrby1zcXVhcmUoJHNpemU6IDVweCkge1xuXHRAaW5jbHVkZSBrby1zaXplKCRzaXplLCAkc2l6ZSk7XG59XG5cblxuLy8gTWFrZSBhbnkgZWxlbWVudCByZXNpemFibGUgZm9yIHByb3RvdHlwaW5nXG4vLyBAaW5jbHVkZSBrby1yZXNpemFibGUoKTtcbkBtaXhpbiBrby1yZXNpemFibGUoJGRpcmVjdGlvbjogYm90aCkge1xuXHRyZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnMgYXJlIGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG5cdG92ZXJmbG93OiBhdXRvOyAvLyBTYWZhcmkgZml4XG59XG5cbiIsIi8qKlxuICogYmVtaWZ5IFttb2RpZmllZCBmb3IgS2lja29mZl1cbiAqIGh0dHBzOi8vZ3RpaHViLmNvbS9mcmFuemhlaWRsL2JlbWlmeVxuICogRnJhbnogSGVpZGwgMjAxNVxuICpcbiAqIFVzYWdlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS8wY2QyMDEwYmYyNjVkNzEyYmFmYlxuICovXG5cblxuXG4vLyBDT05GSUdcbi8vID09PT09PVxuXG4vLyBPdXRwdXQgY29tYmluZWQgc3RhdGUgc2VsZWN0b3JzIGxpa2U6XG4vLyAgICAuYmxvY2stZWxlbWVudC5pcy1hY3RpdmUge31cbi8vIFNldCB0byBmYWxzZSB0byBvdXRwdXQgc2luZ2xlLCBub24tY29tYmluZWQgc3RhdGUgbW9kaWZpZXJzOlxuLy8gICAgLmJsb2NrLWVsZW1lbnQtLWlzLWFjdGl2ZSB7fVxuJGNvbWJpbmVkLXN0YXRlLXNlbGVjdG9yczogdHJ1ZTtcblxuLy8gLmJsb2NrW3NlcGFyYXRvcl1lbGVtZW50OlxuJGVsZW1lbnQtc2VwYXJhdG9yOiBcIi1cIjtcblxuLy8gLmJsb2NrW3NlcGFyYXRvcl1tb2RpZmllcjpcbiRtb2RpZmllci1zZXBhcmF0b3I6IFwiLS1cIjtcblxuLy8gVGhlIGRlZmF1bHQgcHJlZml4IGZvciBzdGF0ZSBtb2RpZmllciBzZWxlY3RvcnMsIHdpbGwgYmUgY29tYmluZWQgd2l0aCAkbW9kaWZpZXItc2VwYXJhdG9yOlxuJHN0YXRlLXByZWZpeDogXCJpc1wiO1xuXG5cblxuXG4vLyBNaXhpbnNcbi8vIEBpbmNsdWRlIGtvLWJsb2NrKCdmb3JtJykge31cbkBtaXhpbiBrby1ibG9jaygkbmFtZSkge1xuXHQuI3skbmFtZX0ge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLWVsZW1lbnQoJ2l0ZW0nKSB7fVxuQG1peGluIGtvLWVsZW1lbnQoJG5hbWUpIHtcblx0QGF0LXJvb3Qge1xuXHRcdCYjeyRlbGVtZW50LXNlcGFyYXRvcn0jeyRuYW1lfSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuLy8gQGluY2x1ZGUga28tbW9kaWZpZXIoJ3N0YWNrZWQnKSB7fVxuQG1peGluIGtvLW1vZGlmaWVyKCRuYW1lKSB7XG5cdEBhdC1yb290IHtcblx0XHQmI3skbW9kaWZpZXItc2VwYXJhdG9yfSN7JG5hbWV9IHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4vLyBAaW5jbHVkZSBrby1zdGF0ZSgnYWN0aXZlJykge31cbi8vIEBpbmNsdWRlIGtvLXN0YXRlKCduYXYnLCAnaGFzJykge31cbkBtaXhpbiBrby1zdGF0ZSgkc3RhdGUsICRwcmVmaXg6ICRzdGF0ZS1wcmVmaXgpIHtcblx0QGlmICRjb21iaW5lZC1zdGF0ZS1zZWxlY3RvcnMgPT0gdHJ1ZSB7XG5cdFx0QGF0LXJvb3Qge1xuXHRcdFx0Ji4jeyRwcmVmaXh9LSN7JHN0YXRlfSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRAZWxzZSB7XG5cdFx0QGF0LXJvb3Qge1xuXHRcdFx0JiN7JG1vZGlmaWVyLXNlcGFyYXRvcn0jeyRwcmVmaXh9LSN7JHN0YXRlfSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuXG4vLyBBbGlhc2VzXG4vLyBAaW5jbHVkZSBrby1jb21wb25lbnQoJ2Zvcm0nKSB7fVxuQG1peGluIGtvLWNvbXBvbmVudCgkbmFtZSkge1xuXHRAaW5jbHVkZSBrby1ibG9jaygkbmFtZSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLWNoaWxkKCdpdGVtJykge31cbkBtaXhpbiBrby1jaGlsZCgkbmFtZSkge1xuXHRAaW5jbHVkZSBrby1lbGVtZW50KCRuYW1lKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8gQGluY2x1ZGUga28tc3ViY29tcG9uZW50KCdpdGVtJykge31cbkBtaXhpbiBrby1zdWJjb21wb25lbnQoJG5hbWUpIHtcblx0QGluY2x1ZGUga28tZWxlbWVudCgkbmFtZSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLXN1YignaXRlbScpIHt9XG5AbWl4aW4ga28tc3ViKCRuYW1lKSB7XG5cdEBpbmNsdWRlIGtvLWVsZW1lbnQoJG5hbWUpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuIiwiLyoqXG4gKiBHbG9iYWwgY29sb3IgcGFsZXR0ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEdlbmVyaWMgY29sb3JzXG4gKiAtIENvbG9yIHNjaGVtZVxuICogLSBDb21tb24gY29sb3JzXG4gKiAtIExpbmtzXG4gKiAtIFRleHQgc2VsZWN0aW9uXG4gKiAtIDxocj5cbiAqIC0gQW55IG90aGVycy4uXG4gKi9cblxuLy8gR2VuZXJpYyBjb2xvcnNcbiRibHVlICAgICAgICAgICAgICAgICAgICAgICAgIDogIzI4OGFkNjtcbiRncmVlbiAgICAgICAgICAgICAgICAgICAgICAgIDogIzE2Yzk4ZDtcbiRyZWQgICAgICAgICAgICAgICAgICAgICAgICAgIDogI2ZhNWU1YjtcbiR5ZWxsb3cgICAgICAgICAgICAgICAgICAgICAgIDogI2ZlZWY2ZDtcbiRvcmFuZ2UgICAgICAgICAgICAgICAgICAgICAgIDogI2ZlN2MwODtcbiRwaW5rICAgICAgICAgICAgICAgICAgICAgICAgIDogI2ZmNzA4ZTtcbiRwdXJwbGUgICAgICAgICAgICAgICAgICAgICAgIDogIzhlNDRhZDtcbiRncmF5ICAgICAgICAgICAgICAgICAgICAgICAgIDogIzk1YTVhNjtcblxuJGNvbG9yLWtpY2tvZmYtYmx1ZSAgICAgICAgICAgOiAjMTgxODMwO1xuJGNvbG9yLWtpY2tvZmYtb3JhbmdlICAgICAgICAgOiAjZmU3YzA4O1xuXG4vLyBDb2xvciBTY2hlbWVcbiRjb2xvci1wcmltYXJ5ICAgICAgICAgICAgICAgIDogIzE4MTgzMDtcbiRjb2xvci1zZWNvbmRhcnkgICAgICAgICAgICAgIDogJG9yYW5nZTtcbiRjb2xvci1oaWdobGlnaHQgICAgICAgICAgICAgIDogJGJsdWU7XG5cbi8vIENvbW1vbiBjb2xvcnNcbiRjb2xvci10ZXh0ICAgICAgICAgICAgICAgICAgIDogIzQ0NDtcbiRjb2xvci1iZyAgICAgICAgICAgICAgICAgICAgIDogI2YxZjFmMTtcbiRjb2xvci1ib3JkZXIgICAgICAgICAgICAgICAgIDogI2RkZDtcblxuXG4vLyBMaW5rc1xuJGNvbG9yLWxpbmstZGVmYXVsdCAgICAgICAgICAgOiAkY29sb3ItaGlnaGxpZ2h0O1xuJGNvbG9yLWxpbmstdmlzaXRlZCAgICAgICAgICAgOiAkY29sb3ItbGluay1kZWZhdWx0O1xuJGNvbG9yLWxpbmstaG92ZXIgICAgICAgICAgICAgOiBkYXJrZW4oJGNvbG9yLWxpbmstZGVmYXVsdCwgMjAlKTtcbiRjb2xvci1saW5rLWFjdGl2ZSAgICAgICAgICAgIDogZGFya2VuKCRjb2xvci1saW5rLWRlZmF1bHQsIDIwJSk7XG5cbi8vIFRleHQgU2VsZWN0aW9uXG4kY29sb3Itc2VsZWN0aW9uICAgICAgICAgICAgICA6ICNmZmY7XG4kY29sb3Itc2VsZWN0aW9uLWJnICAgICAgICAgICA6ICRjb2xvci1wcmltYXJ5O1xuXG5cbi8vIDxocj4gYm9yZGVyIGNvbG9yXG4kaHItY29sb3IgICAgICAgICAgICAgICAgICAgICA6IGxpZ2h0ZW4oIzAwMCwgNzAlKTtcblxuLy8gM3JkIHBhcnR5IGJyYW5kIGNvbG9ycyAtIGZpbmQgbW9yZSBhdCBicmFuZGNvbG9ycy5uZXRcbiRjb2xvci10d2l0dGVyICAgICAgICAgICAgICAgIDogIzU1YWNlZTtcbiRjb2xvci1mYWNlYm9vayAgICAgICAgICAgICAgIDogIzNiNTk5ODtcbiRjb2xvci15b3V0dWJlICAgICAgICAgICAgICAgIDogI2NkMjAxZjtcbiRjb2xvci1waW50ZXJlc3QgICAgICAgICAgICAgIDogI2JkMDgxYztcbiRjb2xvci1pbnN0YWdyYW0gICAgICAgICAgICAgIDogI2U0NDA1ZjtcbiRjb2xvci13aGF0c2FwcCAgICAgICAgICAgICAgIDogIzI1ZDM2NjtcbiIsIi8qKlxuICogVmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIC0gVHlwb2dyYXBoeVxuICogLSBCcmVha3BvaW50c1xuICogLSBQYXRoc1xuICogLSBMYXlvdXQgJiBHcmlkXG4gKiAtIEFwcC1zcGVjaWZpY1xuICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGluZGVudGF0aW9uICovXG5cbi8qKlxuICogVHlwb2dyYXBoeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogQmFzZSBzaXplczpcbiAqIFNldCB0aGlzIGluIHBpeGVscyAoYnV0IGRvIG5vdCBhZGQgcHgpLFxuICogdGhlIGZvbnQtc2l6ZSBtaXhpbiB3aWxsIGNvbnZlcnQgdG8gUkVNU1xuICovXG4kZm9udC1zaXplLWJhc2UgICAgICAgICAgIDogMjA7XG4kZm9udC1zaXplLWJhc2UtcHggICAgICAgIDogJGZvbnQtc2l6ZS1iYXNlICogMXB4O1xuJGZvbnQtc2l6ZS1iYXNlLW5hcnJvdyAgICA6ICRmb250LXNpemUtYmFzZSAtIDI7XG4kZm9udC1zaXplLWJhc2UtbmFycm93LXB4IDogJGZvbnQtc2l6ZS1iYXNlLW5hcnJvdyAqIDFweDtcblxuJGxlYWRpbmctYmFzZSAgICAgICAgICAgICA6IDEuNDtcbiRsaW5lLWhlaWdodC1iYXNlICAgICAgICAgOiByb3VuZCgkZm9udC1zaXplLWJhc2UgKiAkbGVhZGluZy1iYXNlKTsgLy8gMjAgKiAxLjRcbiRiYXNlbGluZSAgICAgICAgICAgICAgICAgOiAkbGluZS1oZWlnaHQtYmFzZSAqIDFweDtcblxuJHR5cGUtc2NhbGUgICAgICAgICAgICAgICA6IDEuMjU7IC8vIE1ham9yIHRoaXJkXG5cbiR0eXBlOiAoXG5cdG1pY3JvICAgICAgICAgICAgICAgICAgIDoga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIC0yLCAkdHlwZS1zY2FsZSksXG5cdHNtYWxsICAgICAgICAgICAgICAgICAgIDoga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIC0xLCAkdHlwZS1zY2FsZSksIC8vIGg1LCBoNlxuXHRiYXNlICAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAwLCAkdHlwZS1zY2FsZSksICAvLyBwLCBoNFxuXHRtaWQgICAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAxLCAkdHlwZS1zY2FsZSksICAvLyBoM1xuXHRsYXJnZSAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAyLCAkdHlwZS1zY2FsZSksICAvLyBoMlxuXHRqdW1ibyAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAzLCAkdHlwZS1zY2FsZSkgICAvLyBoMVxuKTtcblxuLy8gVXNlZnVsIHRvIHNldCBoZXJlIHdoZW4gYm9sZCB3ZWJmb250cyBjb21lIGFzIDQwMCBmb250LXdlaWdodC5cbiRmb250LXdlaWdodC1ib2xkICAgICAgICAgOiBib2xkO1xuXG4vLyBGb250IHN0YWNrc1xuJGZvbnQtZmFtaWx5LXN5c3RlbSAgICAgICA6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2FucyAgICAgICAgIDogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmICAgICAgICA6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbiRmb250LWZhbWlseS1tb25vICAgICAgICAgOiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcblxuJGZvbnQtZmFtaWx5LWJhc2UgICAgICAgICA6ICRmb250LWZhbWlseS1zeXN0ZW07XG4kZm9udC1mYW1pbHktYWx0ICAgICAgICAgIDogJGZvbnQtZmFtaWx5LXNlcmlmO1xuXG4kZm9udC1mYW1pbHktaGVhZGluZ3MgICAgIDogJGZvbnQtZmFtaWx5LWJhc2U7IC8vIHVzaW5nIGluaGVyaXQgd2lsbCB1c2UgJGZvbnQtZmFtaWx5LWJhc2UgZm9yIGFsbCBoZWFkaW5nc1xuJGZvbnQtd2VpZ2h0LWhlYWRpbmdzICAgICA6IGJvbGQ7ICAgIC8vIGluc3RlYWQgb2YgYnJvd3NlciBkZWZhdWx0LCBib2xkXG4kbGluZS1oZWlnaHQtaGVhZGluZ3MgICAgIDogMS4xO1xuXG5cbi8qKlxuICogQnJlYWtwb2ludHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlcmUgYXJlIG5vIGNvbW1vbiBicmVha3BvaW50cyBzbyB0aGVzZSBhcmUganVzdCBhIHN1Z2dlc3Rpb25zXG4gKiBZb3UnbGwgbmVlZCB0byBkZWZpbmUgeW91ciBvd24gYnJlYWtwb2ludHMgdG8gc3VpdCB5b3VyIGRlc2lnblxuICogQWRkIHlvdXIgYnJlYWtwb2ludHMgdG8gdGhpcyBTYXNzIG1hcFxuICogVXNlZCBpbiB0aGUgS2lja29mZiBncmlkXG4gKi9cbiRicmVha3BvaW50czogKFxuXHRuYXJyb3cgICAgICAgICAgICAgICAgICA6IDQwMHB4LFxuXHRtaWQgICAgICAgICAgICAgICAgICAgICA6IDc1MHB4LFxuXHR3aWRlICAgICAgICAgICAgICAgICAgICA6IDEwMDBweCxcblx0aHVnZSAgICAgICAgICAgICAgICAgICAgOiAxMjUwcHhcbik7XG5cblxuLy8gU2V0dXAgbGF5b3V0IG1heC13aWR0aFxuJGxheW91dC1tYXJnaW4gICAgICAgICAgICAgICAgOiAwOyAvLyBbaW4gcGl4ZWxzXSBTcGFjZSBvdXRzaWRlIHRoZSBncmlkXG4kbGF5b3V0LW1heC13aWR0aCAgICAgICAgICAgICA6IDEwMDA7IC8vIFtpbiBwaXhlbHNdXG4kbGF5b3V0LW1pbi13aWR0aCAgICAgICAgICAgICA6IDk2MDsgIC8vIFtpbiBwaXhlbHNdIE1pbmltdW0gd2lkdGggZm9yIGxheW91dCBpbiA8SUU5XG4kbGF5b3V0LW1heC13aWR0aC0taHVnZSAgICAgICA6IDExMDA7IC8vIFtpbiBwaXhlbHNdXG4kbGF5b3V0LW1pbi13aWR0aC0taHVnZSAgICAgICA6IDExMDA7IC8vIFtpbiBwaXhlbHNdIE1pbmltdW0gd2lkdGggZm9yIGxheW91dCBpbiA8SUU5XG5cblxuLyoqXG4gKiBHcmlkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGNvbnRyb2wgdGhlIGdyaWQgbW9kdWxlLlxuICpcbiAqIGlmIHlvdXIgcHJvamVjdCBkb2VzbnQgdXNlIEtpY2tvZmbigJlzIGRlZmF1bHQgZ3JpZCwgeW91IGNhbiBkZWxldGUgdGhlc2VcbiAqL1xuXG4kZ3JpZC1jb2x1bW4tY291bnQgICAgICAgIDogMTI7IC8vIFRvdGFsIGNvbHVtbiBjb3VudFxuJGdyaWQtZ3V0dGVyLXdpZHRoICAgICAgICA6IDIwOyAvLyBbaW4gcGl4ZWxzXVxuXG4vL1NldHRpbmdzIGhlcmUgb3ZlcnJpZGUgJiBhZmZlY3QgdGhlIGdyaWQgY2xhc3NlcyBvdXRwdXRcbiRyZXNwb25zaXZlLWdyaWQtc2l6ZXMgICAgOiB0cnVlOyAvLyBEaXNhYmxlIHRoaXMgaWYgeW91IGRvbid0IHdhbnQgZ3JpZCBzaXplcyBmb3IgZWFjaCBicmVha3BvaW50XG4kdXNlLWxlZ2FjeS1ncmlkICAgICAgICAgIDogdHJ1ZTsgLy8gRGlzYWJsZSB0aGlzIGlzIHlvdSBvbuKAmXQgd2FudCB0byBvdXRwdXQgLm5vLWZsZXhib3ggY2xhc3NlcyBmb3Igb2xkZXIgYnJvd3NlcnMgdG8gdXNlXG5cblxuLyoqXG4gKiBQYXRoIHZhcmlhYmxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbiRpbWctcGF0aCAgICAgICAgICAgICAgICAgOiBcIi9hc3NldHMvZGlzdC9pbWdcIjsgLy8gVXNhZ2U6IGJhY2tncm91bmQ6IHVybCgnI3skaW1nLXBhdGh9L2ltZy5qcGcnKSAwIDAgbm8tcmVwZWF0O1xuXG5cbi8qKlxuICogWi1pbmRleCB2YXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4kei1sb3cgICAgICAgICAgICAgICAgICAgICAgIDogMTA7XG4kei1taWQgICAgICAgICAgICAgICAgICAgICAgIDogMTAwO1xuJHotaGlnaCAgICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG5cblxuLyoqXG4gKiBBcHAtc3BlY2lmaWMgdmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuJGRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmcgICA6IGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4kZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uIDogMzAwbXM7XG4kZGVmYXVsdC10cmFuc2l0aW9uICAgICAgICAgIDogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmc7XG5cbi8vIEFkZCB5b3VyIG93biA6KVxuIiwiLyoqXG4gKiBLaWNrb2ZmIHJlc2V0XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFdlIHVzZSBub3JtYWxpemUuY3NzIGZvciB0aGUgYnVsayBvZiBvdXIgJ3Jlc2V0J1xuICovXG5cbkBpbXBvcnQgXCJub3JtYWxpemVcIjtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3Ncbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb2huQWxiaW4vbm9ybWFsaXplLXNjc3MgKFNhc3MgcG9ydCBvZiBub3JtYWxpemUuY3NzKVxuXG5odG1sIHtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuKixcbio6OmJlZm9yZSxcbio6OmFmdGVyIHtcblx0Ym94LXNpemluZzogaW5oZXJpdDtcbn1cblxuQGluY2x1ZGUgbm9ybWFsaXplKCk7XG4iLCIvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHRoZSBub3JtYWxpemUoKSBtaXhpbi5cbkBmdW5jdGlvbiBfbm9ybWFsaXplLWluY2x1ZGUoJHNlY3Rpb24sICRleGNsdWRlOiBudWxsKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGdsb2JhbCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRoaXMgZnVuY3Rpb24uXG4gIEBpZiBub3QgZ2xvYmFsX3ZhcmlhYmxlX2V4aXN0cyhfbm9ybWFsaXplLWluY2x1ZGUpIHtcbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiAoKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6ICgpICFnbG9iYWw7XG4gIH1cbiAgLy8gU2luY2Ugd2UgYXJlIGdpdmVuIDIgcGFyYW1ldGVycywgc2V0IHRoZSBnbG9iYWwgdmFyaWFibGVzLlxuICBAaWYgJGV4Y2x1ZGUgIT0gbnVsbCB7XG4gICAgJGluY2x1ZGU6ICRzZWN0aW9uO1xuICAgIC8vIFNhc3MgZG9lc24ndCBoYXZlIHN0YXRpYyB2YXJpYWJsZXMsIHNvIHRoZSB3b3JrLWFyb3VuZCBpcyB0byBzdHVmZiB0aGVzZVxuICAgIC8vIHZhbHVlcyBpbnRvIGdsb2JhbCB2YXJpYWJsZXMgc28gd2UgY2FuIGFjY2VzcyB0aGVtIGluIGZ1dHVyZSBjYWxscy5cbiAgICAkX25vcm1hbGl6ZS1pbmNsdWRlOiBpZih0eXBlLW9mKCRpbmNsdWRlKSA9PSAnbGlzdCcsICRpbmNsdWRlLCAoJGluY2x1ZGUpKSAhZ2xvYmFsO1xuICAgICRfbm9ybWFsaXplLWV4Y2x1ZGU6IGlmKHR5cGUtb2YoJGV4Y2x1ZGUpID09ICdsaXN0JywgJGV4Y2x1ZGUsICgkZXhjbHVkZSkpICFnbG9iYWw7XG4gICAgQHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gQ2hlY2sgaWYgJHNlY3Rpb24gaXMgaW4gdGhlICRpbmNsdWRlIGxpc3QuXG4gIEBpZiBpbmRleCgkX25vcm1hbGl6ZS1pbmNsdWRlLCAkc2VjdGlvbikge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICAvLyBJZiAkaW5jbHVkZSBpcyBzZXQgdG8gKGFsbCksIG1ha2Ugc3VyZSAkc2VjdGlvbiBpcyBub3QgaW4gJGV4Y2x1ZGUuXG4gIEBlbHNlIGlmIG5vdCBpbmRleCgkX25vcm1hbGl6ZS1leGNsdWRlLCAkc2VjdGlvbikgYW5kIGluZGV4KCRfbm9ybWFsaXplLWluY2x1ZGUsIGFsbCkge1xuICAgIEByZXR1cm4gdHJ1ZTtcbiAgfVxuICBAcmV0dXJuIGZhbHNlO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplKCRpbmNsdWRlOiAoYWxsKSwgJGV4Y2x1ZGU6ICgpKSB7XG4gIC8vIEluaXRpYWxpemUgdGhlIGhlbHBlciBmdW5jdGlvbiBieSBwYXNzaW5nIGl0IHRoaXMgbWl4aW4ncyBwYXJhbWV0ZXJzLlxuICAkaW5pdDogX25vcm1hbGl6ZS1pbmNsdWRlKCRpbmNsdWRlLCAkZXhjbHVkZSk7XG5cbiAgLy8gSWYgd2UndmUgY3VzdG9taXplZCBhbnkgZm9udCB2YXJpYWJsZXMsIHdlJ2xsIG5lZWQgZXh0cmEgcHJvcGVydGllcy5cbiAgQGlmICRiYXNlLWZvbnQtc2l6ZSAhPSAxNnB4XG4gICAgb3IgJGJhc2UtbGluZS1oZWlnaHQgIT0gMjRweFxuICAgIG9yICRiYXNlLXVuaXQgIT0gJ2VtJ1xuICAgIG9yICRoMS1mb250LXNpemUgIT0gMiAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMi1mb250LXNpemUgIT0gMS41ICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoMy1mb250LXNpemUgIT0gMS4xNyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNC1mb250LXNpemUgIT0gMSAgICAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNS1mb250LXNpemUgIT0gMC44MyAqICRiYXNlLWZvbnQtc2l6ZVxuICAgIG9yICRoNi1mb250LXNpemUgIT0gMC42NyAqICRiYXNlLWZvbnQtc2l6ZSB7XG4gICAgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8qISBub3JtYWxpemUtc2NzcyB8IE1JVC9HUEx2MiBMaWNlbnNlIHwgYml0Lmx5L25vcm1hbGl6ZS1zY3NzICovXG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShkb2N1bWVudCkge1xuICAgIC8qIERvY3VtZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIENoYW5nZSB0aGUgZGVmYXVsdCBmb250IGZhbWlseSBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICogMy4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICAgICAqICAgIElFIG9uIFdpbmRvd3MgUGhvbmUgYW5kIGluIGlPUy5cbiAgICAgKi9cblxuICAgIGh0bWwge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgICAvLyBDb3JyZWN0IG9sZCBicm93c2VyIGJ1ZyB0aGF0IHByZXZlbnRlZCBhY2Nlc3NpYmxlIHJlc2l6aW5nIG9mIHRleHRcbiAgICAgICAgLy8gd2hlbiByb290IGZvbnQtc2l6ZSBpcyBzZXQgd2l0aCBweCBvciBlbS5cbiAgICAgICAgZm9udC1zaXplOiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCkgKiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogKCRiYXNlLWxpbmUtaGVpZ2h0IC8gJGJhc2UtZm9udC1zaXplKSAqIDFlbTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xNTsgLyogMiAqL1xuICAgICAgfVxuICAgICAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDMgKi9cbiAgICAgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2VjdGlvbnMpIHtcbiAgICAvKiBTZWN0aW9uc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIG1hcmdpbiBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGJvZHkge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXJ0aWNsZSxcbiAgICBhc2lkZSxcbiAgICBmb290ZXIsXG4gICAgaGVhZGVyLFxuICAgIG5hdixcbiAgICBzZWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAgICAgKiBgYXJ0aWNsZWAgY29udGV4dHMgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgaDEge1xuICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLWZvbnQtc2l6ZSgkaDEtZm9udC1zaXplKTtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1saW5lLWhlaWdodCgkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgQGlmICRub3JtYWxpemUtdmVydGljYWwtcmh5dGhtIHtcbiAgICAgICAgLyogU2V0IDEgdW5pdCBvZiB2ZXJ0aWNhbCByaHl0aG0gb24gdGhlIHRvcCBhbmQgYm90dG9tIG1hcmdpbnMuICovXG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDEtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgbWFyZ2luOiAwLjY3ZW0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgaDIge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgyLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDItZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoMy1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGgzLWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDMtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDQge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNC1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg0LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDQtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNS1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg1LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDUtZm9udC1zaXplKTtcbiAgICAgIH1cblxuICAgICAgaDYge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtZm9udC1zaXplKCRoNi1mb250LXNpemUpO1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbGluZS1oZWlnaHQoJGg2LWZvbnQtc2l6ZSk7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAwLCAkaDYtZm9udC1zaXplKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGdyb3VwaW5nKSB7XG4gICAgLyogR3JvdXBpbmcgY29udGVudFxuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIGJsb2NrcXVvdGUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgJGluZGVudC1hbW91bnQpO1xuICAgICAgfVxuXG4gICAgICBkbCxcbiAgICAgIG9sLFxuICAgICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogVHVybiBvZmYgbWFyZ2lucyBvbiBuZXN0ZWQgbGlzdHMuXG4gICAgICAgKi9cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIG9sLFxuICAgICAgICB1bCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRkIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAkaW5kZW50LWFtb3VudDtcbiAgICAgIH1cblxuICAgICAgb2wsXG4gICAgICB1bCB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgZmlnY2FwdGlvbixcbiAgICBmaWd1cmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IG1hcmdpbiBpbiBJRSA4LlxuICAgICAqL1xuXG4gICAgZmlndXJlIHtcbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIEBpbmNsdWRlIG5vcm1hbGl6ZS1tYXJnaW4oMSAkaW5kZW50LWFtb3VudCk7XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIG1hcmdpbjogMWVtICRpbmRlbnQtYW1vdW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIEZpcmVmb3guXG4gICAgICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gICAgICovXG5cbiAgICBociB7XG4gICAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICAgICAgaGVpZ2h0OiAwOyAvKiAxICovXG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICAgICAqL1xuXG4gICAgbWFpbiB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaWYgJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG0ge1xuICAgICAgLyoqXG4gICAgICAgKiBTZXQgMSB1bml0IG9mIHZlcnRpY2FsIHJoeXRobSBvbiB0aGUgdG9wIGFuZCBib3R0b20gbWFyZ2luLlxuICAgICAgICovXG5cbiAgICAgIHAsXG4gICAgICBwcmUge1xuICAgICAgICBAaW5jbHVkZSBub3JtYWxpemUtbWFyZ2luKDEgMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBwcmUge1xuICAgICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUobGlua3MpIHtcbiAgICAvKiBMaW5rc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gICAgICogMi4gUmVtb3ZlIGdhcHMgaW4gbGlua3MgdW5kZXJsaW5lIGluIGlPUyA4KyBhbmQgU2FmYXJpIDgrLlxuICAgICAqL1xuXG4gICAgYSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogMSAqL1xuICAgICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb24tc2tpcDogb2JqZWN0czsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgb3V0bGluZSBvbiBmb2N1c2VkIGxpbmtzIHdoZW4gdGhleSBhcmUgYWxzbyBhY3RpdmUgb3IgaG92ZXJlZFxuICAgICAqIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqL1xuXG4gICAgYTphY3RpdmUsXG4gICAgYTpob3ZlciB7XG4gICAgICBvdXRsaW5lLXdpZHRoOiAwO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUodGV4dCkge1xuICAgIC8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBGaXJlZm94IDM5LS5cbiAgICAgKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICAgICAqL1xuXG4gICAgYWJiclt0aXRsZV0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IC8qIDIgKi9cbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICAgICAqL1xuXG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGIsXG4gICAgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgICAgKiAyLiBDb3JyZWN0IHRoZSBvZGQgYGVtYCBmb250IHNpemluZyBpbiBhbGwgYnJvd3NlcnMuXG4gICAgICovXG5cbiAgICBjb2RlLFxuICAgIGtiZCxcbiAgICBzYW1wIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICAgICAgZm9udC1zaXplOiAxZW07IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gICAgICovXG5cbiAgICBkZm4ge1xuICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBiYWNrZ3JvdW5kIGFuZCBjb2xvciBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1hcmsge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmMDtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc21hbGwge1xuICAgICAgZm9udC1zaXplOiA4MCU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gICAgICogYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3ViLFxuICAgIHN1cCB7XG4gICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIH1cblxuICAgIHN1YiB7XG4gICAgICBib3R0b206IC0wLjI1ZW07XG4gICAgfVxuXG4gICAgc3VwIHtcbiAgICAgIHRvcDogLTAuNWVtO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZW1iZWRkZWQpIHtcbiAgICAvKiBFbWJlZGRlZCBjb250ZW50XG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgYXVkaW8sXG4gICAgdmlkZW8ge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gICAgICovXG5cbiAgICBhdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGJvcmRlciBvbiBpbWFnZXMgaW5zaWRlIGxpbmtzIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIGltZyB7XG4gICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gICAgICovXG5cbiAgICBzdmc6bm90KDpyb290KSB7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoZm9ybXMpIHtcbiAgICAvKiBGb3Jtc1xuICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiAgICAvKipcbiAgICAgKiAxLiBDaGFuZ2UgdGhlIGZvbnQgc3R5bGVzIGluIGFsbCBicm93c2VycyAob3BpbmlvbmF0ZWQpLlxuICAgICAqIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbixcbiAgICBpbnB1dCxcbiAgICBvcHRncm91cCxcbiAgICBzZWxlY3QsXG4gICAgdGV4dGFyZWEge1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5OyAvKiAxICovXG4gICAgICBmb250LXNpemU6IDEwMCU7IC8qIDEgKi9cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAoJGJhc2UtbGluZS1oZWlnaHQgLyAkYmFzZS1mb250LXNpemUpICogMWVtOyAvKiAxICovXG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvKiAxICovXG4gICAgICB9XG4gICAgICBtYXJnaW46IDA7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG93IHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAgICAgKi9cblxuICAgIGJ1dHRvbiB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAgICAgKiAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgc2VsZWN0IHsgLyogMSAqL1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogMS4gUHJldmVudCBhIFdlYktpdCBidWcgd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gIGFuZCBgdmlkZW9gXG4gICAgICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICAgICAqIDIuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gICAgICovXG5cbiAgICBidXR0b24sXG4gICAgaHRtbCBbdHlwZT1cImJ1dHRvblwiXSwgLyogMSAqL1xuICAgIFt0eXBlPVwicmVzZXRcIl0sXG4gICAgW3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDIgKi9cbiAgICB9XG5cbiAgICBidXR0b24sXG4gICAgW3R5cGU9XCJidXR0b25cIl0sXG4gICAgW3R5cGU9XCJyZXNldFwiXSxcbiAgICBbdHlwZT1cInN1Ym1pdFwiXSB7XG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAgICAgICAqL1xuXG4gICAgICAmOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAgICAgICAqL1xuXG4gICAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgb3V0bGluZTogMXB4IGRvdHRlZCBCdXR0b25UZXh0O1xuICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG4gICAgICovXG5cbiAgICBpbnB1dCB7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gICAgICogMi4gUmVtb3ZlIHRoZSBwYWRkaW5nIGluIElFIDEwLS5cbiAgICAgKi9cblxuICAgIFt0eXBlPVwiY2hlY2tib3hcIl0sXG4gICAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG4gICAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICAgICAqL1xuXG4gICAgW3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8qIDEgKi9cbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG5cbiAgICAgIC8qKlxuICAgICAgICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAgICAgICAqL1xuXG4gICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAgICAqIDIuIENoYW5nZSBmb250IHByb3BlcnRpZXMgdG8gYGluaGVyaXRgIGluIFNhZmFyaS5cbiAgICAgKi9cblxuICAgIDo6LXdlYmtpdC1maWxlLXVwbG9hZC1idXR0b24ge1xuICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8qIDEgKi9cbiAgICAgIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGFuZ2UgdGhlIGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZyBpbiBhbGwgYnJvd3NlcnMgKG9waW5pb25hdGVkKS5cbiAgICAgKi9cblxuICAgIGZpZWxkc2V0IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNjMGMwYzA7XG4gICAgICBtYXJnaW46IDAgMnB4O1xuICAgICAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gICAgICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICAgICAqIDMuIFJlbW92ZSB0aGUgcGFkZGluZyBzbyBkZXZlbG9wZXJzIGFyZSBub3QgY2F1Z2h0IG91dCB3aGVuIHRoZXkgemVybyBvdXRcbiAgICAgKiAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cbiAgICAgKi9cblxuICAgIGxlZ2VuZCB7XG4gICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyAvKiAxICovXG4gICAgICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyAvKiAxICovXG4gICAgICBwYWRkaW5nOiAwOyAvKiAzICovXG4gICAgICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMSAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqIDIuIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG4gICAgICovXG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IC8qIDEgKi9cbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gICAgICovXG5cbiAgICB0ZXh0YXJlYSB7XG4gICAgICBvdmVyZmxvdzogYXV0bztcbiAgICB9XG4gIH1cblxuICBAaWYgX25vcm1hbGl6ZS1pbmNsdWRlKGludGVyYWN0aXZlKSB7XG4gICAgLyogSW50ZXJhY3RpdmVcbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBFZGdlLCBJRSwgYW5kIEZpcmVmb3guXG4gICAgICovXG5cbiAgICBkZXRhaWxzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC8qXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gYWxsIGJyb3dzZXJzLlxuICAgICAqL1xuXG4gICAgc3VtbWFyeSB7XG4gICAgICBkaXNwbGF5OiBsaXN0LWl0ZW07XG4gICAgfVxuXG4gICAgLypcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAgICAgKi9cblxuICAgIG1lbnUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIEBpZiAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB7XG4gICAgICAgIC8qXG4gICAgICAgICAqIDEuIFNldCAxIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtIG9uIHRoZSB0b3AgYW5kIGJvdHRvbSBtYXJnaW4uXG4gICAgICAgICAqIDIuIFNldCBjb25zaXN0ZW50IHNwYWNlIGZvciB0aGUgbGlzdCBzdHlsZSBpbWFnZS5cbiAgICAgICAgICovXG5cbiAgICAgICAgQGluY2x1ZGUgbm9ybWFsaXplLW1hcmdpbigxIDApOyAvKiAxICovXG4gICAgICAgIHBhZGRpbmc6IDAgMCAwICRpbmRlbnQtYW1vdW50OyAvKiAyICovXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFR1cm4gb2ZmIG1hcmdpbnMgb24gbmVzdGVkIGxpc3RzLlxuICAgICAgICAgKi9cblxuICAgICAgICBtZW51ICYsXG4gICAgICAgIG9sICYsXG4gICAgICAgIHVsICYge1xuICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiBfbm9ybWFsaXplLWluY2x1ZGUoc2NyaXB0aW5nKSB7XG4gICAgLyogU2NyaXB0aW5nXG4gICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICAgICAqL1xuXG4gICAgY2FudmFzIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAgICAgKi9cblxuICAgIHRlbXBsYXRlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgQGlmIF9ub3JtYWxpemUtaW5jbHVkZShoaWRkZW4pIHtcbiAgICAvKiBIaWRkZW5cbiAgICAgICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4gICAgLyoqXG4gICAgICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICAgICAqL1xuXG4gICAgW2hpZGRlbl0ge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vXG4vLyBWYXJpYWJsZXNcbi8vXG4vLyBZb3UgY2FuIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHZhbHVlcyBieSBzZXR0aW5nIHRoZSB2YXJpYWJsZXMgaW4geW91ciBTYXNzXG4vLyBiZWZvcmUgaW1wb3J0aW5nIHRoZSBub3JtYWxpemUtc2NzcyBsaWJyYXJ5LlxuXG4vLyBUaGUgZm9udCBzaXplIHNldCBvbiB0aGUgcm9vdCBodG1sIGVsZW1lbnQuXG4kYmFzZS1mb250LXNpemU6IDE2cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBiYXNlIGxpbmUgaGVpZ2h0IGRldGVybWluZXMgdGhlIGJhc2ljIHVuaXQgb2YgdmVydGljYWwgcmh5dGhtLlxuJGJhc2UtbGluZS1oZWlnaHQ6IDI0cHggIWRlZmF1bHQ7XG5cbi8vIFRoZSBsZW5ndGggdW5pdCBpbiB3aGljaCB0byBvdXRwdXQgdmVydGljYWwgcmh5dGhtIHZhbHVlcy5cbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHB4LCBlbSwgcmVtLlxuJGJhc2UtdW5pdDogJ2VtJyAhZGVmYXVsdDtcblxuLy8gVGhlIGRlZmF1bHQgZm9udCBmYW1pbHkuXG4kYmFzZS1mb250LWZhbWlseTogc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbnQgc2l6ZXMgZm9yIGgxLWg2LlxuJGgxLWZvbnQtc2l6ZTogMiAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoMi1mb250LXNpemU6IDEuNSAgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDMtZm9udC1zaXplOiAxLjE3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGg0LWZvbnQtc2l6ZTogMSAgICAqICRiYXNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6IDAuODMgKiAkYmFzZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAwLjY3ICogJGJhc2UtZm9udC1zaXplICFkZWZhdWx0O1xuXG4vLyBUaGUgYW1vdW50IGxpc3RzIGFuZCBibG9ja3F1b3RlcyBhcmUgaW5kZW50ZWQuXG4kaW5kZW50LWFtb3VudDogNDBweCAhZGVmYXVsdDtcblxuLy8gVGhlIGZvbGxvd2luZyB2YXJpYWJsZSBjb250cm9scyB3aGV0aGVyIG5vcm1hbGl6ZS1zY3NzIHdpbGwgb3V0cHV0XG4vLyBmb250LXNpemVzLCBsaW5lLWhlaWdodHMgYW5kIGJsb2NrLWxldmVsIHRvcC9ib3R0b20gbWFyZ2lucyB0aGF0IGZvcm0gYSBiYXNpY1xuLy8gdmVydGljYWwgcmh5dGhtIG9uIHRoZSBwYWdlLCB3aGljaCBkaWZmZXJzIGZyb20gdGhlIG9yaWdpbmFsIE5vcm1hbGl6ZS5jc3MuXG4vLyBIb3dldmVyLCBjaGFuZ2luZyBhbnkgb2YgdGhlIHZhcmlhYmxlcyBhYm92ZSB3aWxsIGNhdXNlXG4vLyAkbm9ybWFsaXplLXZlcnRpY2FsLXJoeXRobSB0byBiZSBhdXRvbWF0aWNhbGx5IHNldCB0byB0cnVlLlxuJG5vcm1hbGl6ZS12ZXJ0aWNhbC1yaHl0aG06IGZhbHNlICFkZWZhdWx0O1xuIiwiLy9cbi8vIFZlcnRpY2FsIFJoeXRobVxuLy9cbi8vIFRoaXMgaXMgdGhlIG1pbmltYWwgYW1vdW50IG9mIGNvZGUgbmVlZGVkIHRvIGNyZWF0ZSB2ZXJ0aWNhbCByaHl0aG0gaW4gb3VyXG4vLyBDU1MuIElmIHlvdSBhcmUgbG9va2luZyBmb3IgYSByb2J1c3Qgc29sdXRpb24sIGxvb2sgYXQgdGhlIGV4Y2VsbGVudCBUeXBleVxuLy8gbGlicmFyeS4gQHNlZSBodHRwczovL2dpdGh1Yi5jb20vanB0YXJhbnRvL3R5cGV5XG5cbkBmdW5jdGlvbiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvOiAkYmFzZS1mb250LXNpemUsICR1bml0OiAkYmFzZS11bml0KSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gcHgge1xuICAgIEBlcnJvciBcIlRoZSBub3JtYWxpemUgdmVydGljYWwtcmh5dGhtIG1vZHVsZSBvbmx5IHN1cHBvcnRzIHB4IGlucHV0cy4gVGhlIHR5cGV5IGxpYnJhcnkgaXMgYmV0dGVyLlwiO1xuICB9XG4gIEBpZiAkdW5pdCA9PSByZW0ge1xuICAgIEByZXR1cm4gKCR2YWx1ZSAvICRiYXNlLWZvbnQtc2l6ZSkgKiAxcmVtO1xuICB9XG4gIEBlbHNlIGlmICR1bml0ID09IGVtIHtcbiAgICBAcmV0dXJuICgkdmFsdWUgLyAkcmVsYXRpdmUtdG8pICogMWVtO1xuICB9XG4gIEBlbHNlIHsgLy8gJHVuaXQgPT0gcHhcbiAgICBAcmV0dXJuICR2YWx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbm9ybWFsaXplLWZvbnQtc2l6ZSgkdmFsdWUsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3B4JyB7XG4gICAgQGVycm9yIFwibm9ybWFsaXplLWZvbnQtc2l6ZSgpIG9ubHkgc3VwcG9ydHMgcHggaW5wdXRzLiBUaGUgdHlwZXkgbGlicmFyeSBpcyBiZXR0ZXIuXCI7XG4gIH1cbiAgZm9udC1zaXplOiBub3JtYWxpemUtcmh5dGhtKCR2YWx1ZSwgJHJlbGF0aXZlLXRvKTtcbn1cblxuQG1peGluIG5vcm1hbGl6ZS1yaHl0aG0oJHByb3BlcnR5LCAkdmFsdWVzLCAkcmVsYXRpdmUtdG86ICRiYXNlLWZvbnQtc2l6ZSkge1xuICAkdmFsdWUtbGlzdDogJHZhbHVlcztcbiAgJHNlcDogc3BhY2U7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZXMpID09ICdsaXN0JyB7XG4gICAgJHNlcDogbGlzdC1zZXBhcmF0b3IoJHZhbHVlcyk7XG4gIH1cbiAgQGVsc2Uge1xuICAgICR2YWx1ZS1saXN0OiBhcHBlbmQoKCksICR2YWx1ZXMpO1xuICB9XG5cbiAgJG5vcm1hbGl6ZWQtdmFsdWVzOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZS1saXN0IHtcbiAgICBAaWYgdW5pdGxlc3MoJHZhbHVlKSBhbmQgJHZhbHVlICE9IDAge1xuICAgICAgJHZhbHVlOiAkdmFsdWUgKiBub3JtYWxpemUtcmh5dGhtKCRiYXNlLWxpbmUtaGVpZ2h0LCAkcmVsYXRpdmUtdG8pO1xuICAgIH1cbiAgICAkbm9ybWFsaXplZC12YWx1ZXM6IGFwcGVuZCgkbm9ybWFsaXplZC12YWx1ZXMsICR2YWx1ZSwgJHNlcCk7XG4gIH1cbiAgI3skcHJvcGVydHl9OiAkbm9ybWFsaXplZC12YWx1ZXM7XG59XG5cbkBtaXhpbiBub3JtYWxpemUtbWFyZ2luKCR2YWx1ZXMsICRyZWxhdGl2ZS10bzogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obWFyZ2luLCAkdmFsdWVzLCAkcmVsYXRpdmUtdG8pO1xufVxuXG5AbWl4aW4gbm9ybWFsaXplLWxpbmUtaGVpZ2h0KCRmb250LXNpemUsICRtaW4tbGluZS1wYWRkaW5nOiAycHgpIHtcbiAgJGxpbmVzOiBjZWlsKCRmb250LXNpemUgLyAkYmFzZS1saW5lLWhlaWdodCk7XG4gIC8vIElmIGxpbmVzIGFyZSBjcmFtcGVkIGluY2x1ZGUgc29tZSBleHRyYSBsZWFkaW5nLlxuICBAaWYgKCRsaW5lcyAqICRiYXNlLWxpbmUtaGVpZ2h0IC0gJGZvbnQtc2l6ZSkgPCAoJG1pbi1saW5lLXBhZGRpbmcgKiAyKSB7XG4gICAgJGxpbmVzOiAkbGluZXMgKyAxO1xuICB9XG4gIEBpbmNsdWRlIG5vcm1hbGl6ZS1yaHl0aG0obGluZS1oZWlnaHQsICRsaW5lcywgJGZvbnQtc2l6ZSk7XG59XG4iLCIvKipcbiAqIFR5cG9ncmFwaHlcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogLSBCYXNlXG4gKiAtIFBhcmFncmFwaHNcbiAqIC0gSGVhZGluZ3NcbiAqIC0gVHlwZSBzaXplc1xuICogLSBNaXNjXG4gKiAtIFV0aWxpdGllc1xuICpcbiAqIEJvZHkgZm9udCBzaXplLCBsZWFkaW5ncyBldGMgaGF2ZSBiZWVuIHNldCBpbiBfdmFyaWFibGVzLnNjc3NcbiAqXG4gKiBTZWUgaHR0cDovL21vZHVsYXJzY2FsZS5jb20gZm9yXG4gKlxuICovXG5cbmh0bWwge1xuXHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZS1uYXJyb3ctcHg7XG5cdC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcblxuXHRAaW5jbHVkZSBtZWRpYSgnPm1pZCcpIHtcblx0XHRmb250LXNpemU6ICRmb250LXNpemUtYmFzZS1weDtcblx0fVxufVxuXG5ib2R5IHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoYmFzZSk7XG5cdGxpbmUtaGVpZ2h0OiAkbGVhZGluZy1iYXNlO1xuXHRjb2xvcjogJGNvbG9yLXRleHQ7XG5cblx0Ly8gQWRkIGxpZ2F0dXJlc1xuXHRmb250LWZlYXR1cmUtc2V0dGluZ3M6IFwibGlnYVwiLCBcImRsaWdcIiwgXCJoaXN0XCI7XG5cdGZvbnQtdmFyaWFudC1saWdhdHVyZXM6IGNvbW1vbi1saWdhdHVyZXMgZGlzY3JldGlvbmFyeS1saWdhdHVyZXMgaGlzdG9yaWNhbC1saWdhdHVyZXM7XG5cblx0Ly8gVHdvIHdheXMgdG8gc21vb3RoZW4gdHlwZSwgdGhleSBhcmUgZGlzYWJsZWQgYnkgZGVmYXVsdFxuXHQvLyBFbmFibGUgb25seSBvbmUgb2YgdGhlbSBpZiB5b3UgbmVlZCB0aGVtXG5cdC8vIDEuXG5cdC8vIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuXHQvLyAgICAtbW96LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcblx0Ly8gZm9udC1zbW9vdGg6YWx3YXlzO1xuXG5cdC8vIDIuXG5cdC8vIG9wYWNpdHk6IDAuOTk7XG59XG5cbi8qKlxuICogUGFyYWdyYXBoc1xuICovXG5wIHtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoYmFzZSk7XG5cdG1hcmdpbi10b3A6IDA7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlbGluZTtcblxuXHQvLyBNZWFzdXJlIC0gaWRlYWxseSBhYm91dCA2NSBjaGFycyBwZXIgbGluZVxuXHQvLyBtYXgtd2lkdGg6ICN7dHlwZShiYXNlKSAqIDMwfXB4O1xufVxuXG4vKipcbiAqIEhlYWRpbmdzXG4gKi9cbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNiB7XG5cdG1hcmdpbjogMDtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1oZWFkaW5ncztcblx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1oZWFkaW5ncztcblx0bGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1oZWFkaW5ncztcblx0dGV4dC1yZW5kZXJpbmc6IG9wdGltaXplbGVnaWJpbGl0eTsgLy8gRml4IHRoZSBjaGFyYWN0ZXIgc3BhY2luZyBmb3IgaGVhZGluZ3Ncblx0bWFyZ2luLXRvcDogMDtcblx0bWFyZ2luLWJvdHRvbTogJGJhc2VsaW5lO1xuXG5cdHNtYWxsIHtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG59XG5cbi8vIFVzZSB0aGUgaGVscGVyIGNsYXNzZXMgdG8gZW11bGF0ZSBzdHlsZXMgZm9yIGFub3RoZXIgZWxlbWVudFxuLy8gRm9yIGV4YW1wbGU6IGgzLmgxIG9yIGgzLmFscGhhXG5oMSxcbi5oMSxcbi5hbHBoYSB7XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShqdW1ibyk7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlbGluZSAqIDI7XG59XG5cbmgyLFxuLmgyLFxuLmJldGEge1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUobGFyZ2UpO1xufVxuXG5oMyxcbi5oMyxcbi5nYW1tYSB7XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShtaWQpO1xufVxuXG5oNCxcbi5oNCxcbi5kZWx0YSB7XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShiYXNlKTtcbn1cblxuaDUsXG4uaDUsXG4uZXBzaWxvbixcbmg2LFxuLmg2LFxuLnpldGEge1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoYmFzZSk7XG5cdG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi8vIE9ubHkgZ2l2ZSB0aGVzZSBoZWFkaW5ncyBhIG1hcmdpbi10b3AgaWYgdGhleSBhcmUgYWZ0ZXIgb3RoZXIgZWxlbWVudHNcbiogKyBoMSxcbiogKyAuaDEsXG4qICsgLmFscGhhLFxuKiArIGgyLFxuKiArIC5oMixcbiogKyAuYmV0YSxcbiogKyBoMyxcbiogKyAuaDMsXG4qICsgLmdhbW1hLFxuKiArIGg0LFxuKiArIC5oNCxcbiogKyAuZGVsdGEge1xuXHRtYXJnaW4tdG9wOiAkYmFzZWxpbmU7XG59XG5cbnNtYWxsIHtcblx0Zm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogTWlzY2VsbGFuZW91c1xuICovXG5cbi8vIEVtcGhhc2lzXG5zdHJvbmcsXG5iIHtcblx0Zm9udC13ZWlnaHQ6ICRmb250LXdlaWdodC1ib2xkO1xufVxuXG5lbSxcbmkge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vIEFiYnJldmlhdGlvbnMgYW5kIGFjcm9ueW1zXG5hYmJyW3RpdGxlXSB7XG5cdGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQgI2RkZDtcblx0Y3Vyc29yOiBoZWxwO1xufVxuXG4vKipcbiAqIEJsb2NrcXVvdGVzXG4gKi9cbmJsb2NrcXVvdGUge1xuXHRwYWRkaW5nLWxlZnQ6IDEwcHg7XG5cdG1hcmdpbjogJGJhc2VsaW5lO1xuXHRib3JkZXItbGVmdDogNHB4IHNvbGlkIGxpZ2h0ZW4oIzAwMCwgODAlKTtcblxuXHRwIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShiYXNlKTtcblx0XHRmb250LXdlaWdodDogMzAwO1xuXHR9XG5cblx0c21hbGwge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbG9yOiBsaWdodGVuKCMwMDAsIDcwJSk7XG5cblx0XHQmOjpiZWZvcmUge1xuXHRcdFx0Y29udGVudDogJ1xcMjAxNCBcXDAwQTAnO1xuXHRcdH1cblx0fVxufVxuXG4vLyBRdW90ZXNcbnEsXG5ibG9ja3F1b3RlIHtcblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0Y29udGVudDogXCJcIjtcblx0fVxufVxuXG5jaXRlIHtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4vLyBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTNSwgQ2hyb21lXG5kZm4ge1xuXHRmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFNi83LzgvOVxubWFyayB7XG5cdGJhY2tncm91bmQ6ICR5ZWxsb3c7XG5cdHBhZGRpbmc6IDJweCA0cHg7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcbn1cblxuLy8gUHJldmVudHMgc3ViIGFuZCBzdXAgYWZmZWN0aW5nIGxpbmUtaGVpZ2h0IGluIGFsbCBicm93c2Vyc1xuLy8gZ2lzdC5naXRodWIuY29tLzQxMzkzMFxuc3ViLFxuc3VwIHtcblx0Zm9udC1zaXplOiA3NSU7XG5cdGxpbmUtaGVpZ2h0OiAwO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHsgdG9wOiAtMC41ZW07IH1cbnN1YiB7IGJvdHRvbTogLTAuMjVlbTsgfVxuc2FtcCB7IGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ubzsgfVxuXG5cbi8qKlxuICogVXRpbGl0aWVzXG4gKi9cbi50ZXh0LWNlbnRyZSwgLy8gQnJpdGlzaCBvciBVUyBFbmdsaXNoIHNwZWxsaW5ncy4uXG4udGV4dC1jZW50ZXIge1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi50ZXh0LWxlZnQge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udGV4dC1yaWdodCB7XG5cdHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG5AaW5jbHVkZSBrby10ZXh0LXNlbGVjdGlvbigkY29sb3Itc2VsZWN0aW9uLCAkY29sb3Itc2VsZWN0aW9uLWJnKTtcblxuLy8gSG9yaXpvbnRhbCBydWxlc1xuaHIge1xuXHRtYXJnaW46ICgkYmFzZWxpbmUpIDA7XG5cdGJvcmRlcjogMDtcblx0aGVpZ2h0OiAxcHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICRoci1jb2xvcjtcbn1cblxuLy8gaHR0cHM6Ly9qdXN0bWFya3VwLmNvbS9sb2cvMjAxNS8wNy9kZWFsaW5nLXdpdGgtbG9uZy13b3Jkcy1pbi1jc3MvXG4uaHlwaGVuYXRlIHtcblx0b3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXHRoeXBoZW5zOiBhdXRvO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5mbHVpZFZpZGVvIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRoZWlnaHQ6IDA7XG5cdHBhZGRpbmctYm90dG9tOiA1Ni4yNSU7XG5cblx0Ly8gNDozIGFzcGVjdCByYXRpb1xuXHQmLS00LTMge1xuXHRcdHBhZGRpbmctYm90dG9tOiA3NSU7XG5cdH1cbn1cblxuLmZsdWlkVmlkZW8taXRlbSxcbi5mbHVpZFZpZGVvIGlmcmFtZSB7XG5wb3NpdGlvbjogYWJzb2x1dGU7XG50b3A6IDA7XG5sZWZ0OiAwO1xud2lkdGg6IDEwMCU7XG5oZWlnaHQ6IDEwMCU7XG59XG4iLCIvKipcbiAqIFRoZSBLaWNrb2ZmIEZsZXhib3ggR3JpZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBEZWZhdWx0IGdyaWQgY2xhc3Nlc1xuICogR3JpZCBndXR0ZXIgb3B0aW9uc1xuICogTW9kaWZpZXIgQ2xhc3NlcyAoY29sdW1uIGhlaWdodCBhbmQgY2VsbCBhbGlnbm1lbnQpXG4gKiBMZWdhY3kgZmFsbGJhY2tzIGZvciBmbGV4Ym94XG4gKiBHcmlkIHNwYW4gY2xhc3Nlc1xuICogQnJlYWtwb2ludCBzdGFja2luZ1xuICovXG5cbkBpbXBvcnQgXCJraWNrb2ZmLXV0aWxzXCI7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9UcnlLaWNrb2ZmL2tpY2tvZmYtdXRpbHMuc2Nzc1xuXG4vKiBJbXBvcnQgR3JpZCBoZWxwZXJzIGFuZCBtaXhpbnMgKi9cbkBpbXBvcnQgJ2dyaWQtdmFyaWFibGVzJztcbkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7IC8vIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuQGltcG9ydCAnZ3JpZC1oZWxwZXJzJztcblxuLyoqXG4gKiBCYXNpYyBVc2FnZTpcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHQ8ZGl2IGNsYXNzPVwiZ1wiPlxuXHRcdDxkaXYgY2xhc3M9XCJnLWNvbCBnLXNwYW40IGctc3BhbjYtLW1pZFwiPjwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJnLWNvbCBnLXNwYW44IGctc3BhbjYtLW1pZFwiPjwvZGl2PlxuXHQ8L2Rpdj5cbiAqL1xuLmcge1xuXHRkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7IC8vIGZvcmNlIGRpc3BsYXk6IGZsZXgsIGFzIG90aGVyd2lzZSBtYXkgY2xhc2ggd2l0aCBvdGhlciBjb21wb25lbnRzIGRpc3BsYXkgcHJvcGVydGllcyAoYW5kIHRoZSBncmlkIHdvbuKAmXQgd29yaylcblx0ZmxleC13cmFwOiB3cmFwO1xuXHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXG5cdC8vIGFueSBpbWFnZSBpbiB0aGUgZ3JpZCBzaG91bGQgaGF2ZSBhIG1heC13aWR0aCBvZiBpdOKAmXMgY29udGFpbmVyXG4gICAgJiBpbWcge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxufVxuXG5cdC5nLWNvbCB7XG5cdFx0ZGlzcGxheTogYmxvY2s7XG5cblx0XHQvLyBCeSBkZWZhdWx0LCBldmVubHkgZGlzdHJpYnV0ZSBjb2x1bW5zXG5cdFx0Ly8gbi5iLiB0byBzdXBwb3J0IG5vbi1mbGV4Ym94IGJyb3dzZXJzLCB5b3Ugc2hvdWxkIGFsd2F5cyBhZGQgLmctc3Bhbnhcblx0XHRmbGV4OiAxIDAgMDtcblx0XHRtaW4td2lkdGg6IDA7IC8vIHRoaXMgaXMgdG8gbWFrZSBzdXJlIHRoYXQgbG9uZyB3b3JkcyBkb27igJl0IGdldCBjdXQgb2ZmLCBidXQgd3JhcCBhcyBleHBlY3RlZFxuXHR9XG5cbi8qKlxuICogR3V0dGVyIGNhbGNzIOKAkyBhcHBsaWVkIHRvIGdyaWQgY29sdW1ucyBpbiBvdXIgZ3JpZCAoZGlyZWN0IGRlc2NlbmRhbnRzIG9ubHkpXG4gKiBEZWZhdWx0OiBwaXhlbHMgKGNhbiBsb29rIGF0IGNoYW5naW5nIHRvIHBlcmNlbnRhZ2UpXG4gKiBVc2FnZTogZ3V0dGVyQ2FsYygpIG9yIGd1dHRlckNhbGMoZmFsc2UpXG4gKi9cblxuLy8gVHdvIHR5cGVzIG9mIGd1dHRlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gLmctLWd1dHRlclxuLy8gVXNlcyBwYWRkaW5nIGFuZCBmaXhlZCBndXR0ZXIgcHggdmFsdWVzLlxuLy8gUHJvcyA9IE1hcmdpbnMgd2lsbCBiZSBlcXVhbCB0byB5b3VyICRncmlkLWd1dHRlci13aWR0aCAoZXZlbiBhdCBsYXJnZXIvc21hbGxlciBjb250YWluZXIgc2l6ZXMpLCBpZiB0aGF04oCZcyB3aGF0IHlvdSByZXF1aXJlXG4vLyBDb25zID0gQ2Fu4oCZdCBzZXQgYSBib3JkZXIgZGlyZWN0bHkgdG8gZ3JpZCBjb250YWluZXJzLCBhcyB1c2VzIG5lZ2F0aXZlIG1hcmdpbnMuICBOZWVkIGV4dHJhIGVsZW1lbnQgdG8gZ2V0IHRoZSBkZXNpcmVkIGVmZmVjdFxuXG4kZy1ndXR0ZXItaGFsZjogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpICsgcHg7XG5cbi5nLS1ndXR0ZXIge1xuXHRtYXJnaW4tbGVmdDogLSRnLWd1dHRlci1oYWxmO1xuXHRtYXJnaW4tcmlnaHQ6IC0kZy1ndXR0ZXItaGFsZjtcblxuXHQmID4gLmctY29sIHtcblx0XHRwYWRkaW5nLWxlZnQ6ICRnLWd1dHRlci1oYWxmO1xuXHRcdHBhZGRpbmctcmlnaHQ6ICRnLWd1dHRlci1oYWxmO1xuXHR9XG59XG5cbi8vIC5nLS1ndXR0ZXItLXNjYWxlZFxuLy8gVXNlcyBtYXJnaW4gYW5kIHBlcmNlbnRhZ2UgdmFsdWVzLiAgU2NhbGVzIHRoZSBtYXJnaW4gYXMgdGhlIHZpZXdwb3J0IGdldHMgc21hbGxlciAoZm9yIFJXRClcbi8vIFBybyA9IEdvb2QgZm9yIHdoZW4geW91ciBjb250YWluZXIgaXMgYWx3YXlzIHRoZSAkbGF5b3V0LW1heC13aWR0aC4gIE1lYW5zIGNhbiBhcHBseSBib3JkZXJzIHRvIGdyaWQgZWxlbWVudHMgd2l0aG91dCBtb3JlIG1hcmt1cFxuLy8gQ29ucyA9IElmIGNvbnRhaW5lciBpc27igJl0IHNhbWUgc2l6ZSBhcyAkbGF5b3V0LW1heC13aWR0aCwgdGhlIGd1dHRlcnMgd2lsbCBhbHNvIHNjYWxlIChzbyBsYXJnZXIgY29udGFpbmVyIHdpZHRoID09PSBsYXJnZXIgZ3V0dGVycyBhbmQgdmljZSB2ZXJzYSlcblxuLmctLWd1dHRlci0tc2NhbGVkIHtcblx0JiA+IC5nLWNvbCB7XG5cdFx0bWFyZ2luLWxlZnQ6IGtvLWd1dHRlckNhbGMoKTtcblx0XHRtYXJnaW4tcmlnaHQ6IDA7XG5cblx0XHQmOmZpcnN0LWNoaWxkIHtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwO1xuXHRcdH1cblx0fVxufVxuXG4uZy0tc3RhY2sge1xuXHQmID4gLmctY29sIHtcblx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdG1heC13aWR0aDogMTAwJTtcblx0fVxuICAgICYuZy0tZ3V0dGVyLS1zY2FsZWQgPiAuZy1jb2wge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG59XG5cblxuLyoqXG4gKiAuZy0tZXF1YWxIZWlnaHQg4oCTIEVxdWFsIEhlaWdodCBDaGlsZCBFbGVtZW50c1xuICovXG4uZy0tZXF1YWxIZWlnaHQge1xuXHQ+IC5nLWNvbCB7XG5cdFx0ZGlzcGxheTogZmxleDtcblxuXHRcdCYgPiAqIHtcblx0XHRcdGZsZXgtYmFzaXM6IDEwMCU7XG5cdFx0fVxuXHR9XG59XG5cblxuLyoqXG4gKiBBbGlnbm1lbnRcbiAqIE1vZGlmaWVyIGNsYXNzZXMgdG8gbW92ZSBvdXIgZ3JpZCBlbGVtZW50cyBhcm91bmRcbiAqL1xuLmctLWFsaWduVG9wICAgICAgICB7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4uZy0tYWxpZ25Cb3R0b20gICAgIHsgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4uZy0tYWxpZ25TZWxmQm90dG9tIHsgYWxpZ24tc2VsZjogZmxleC1lbmQ7IH1cbi5nLS1hbGlnblJpZ2h0ICAgICAgeyBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4uZy0tYWxpZ25DZW50ZXIgICAgIHsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbi5nLS1hbGlnbkNlbnRlci0tdiAgeyBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cblxuLyoqXG4gKiBDZW50ZXJpbmdcbiAqIENlbnRlcnMgYW4gaW5kaXZpZHVhbCBjb2x1bW4sIHJhdGhlciB0aGFuIHRoZSBlbnRpcmUgZ3JpZFxuICovXG4uZy1jb2wtLWNlbnRlcmVkIHtcblx0bWFyZ2luOiAwIGF1dG87XG59XG5cbi8qKlxuICogU2hyaW5raW5nIENvbnRlbnRcbiAqIFNocmluayBhIC5nLWNvbCBkb3duIHRvIG9ubHkgdGhlIHNwYWNlIGl0IG5lZWRzIChmbGV4Ym94IG9ubHkpXG4gKlxuICogRWZmZWN0aXZlbHkganVzdCBjaGFuZ2VzIGl04oCZcyB2YWx1ZXMgYmFjayB0byB0aGUgZGVmYXVsdCBmbGV4IHByb3BlcnRpZXNcbiAqL1xuLmctY29sLS1zaHJpbmsge1xuXHRmbGV4OiAwIDEgYXV0bztcbn1cblxuXG4vKipcbiAqIEFkZCBmYWxsYmFja3MgZm9yIG5vbi1mbGV4Ym94IHN1cHBvcnRpbmcgYnJvd3NlcnMgKGZvciBleGFtcGxlLCBJRTgvOSlcbiAqL1xuQGlmICR1c2UtbGVnYWN5LWdyaWQge1xuXHQubm8tZmxleGJveCB7XG5cdFx0Lmcge1xuXHRcdFx0ZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgLy8gbmVlZCB0aGlzIGZvciBvbGQgU2FmYXJpLCBhcyBpdCB0aGlua3MgaXQgdW5kZXJzdGFuZHMgZmxleGJveCBidXQgZG9lc27igJl0IHJlYWxseVxuXHRcdFx0QGluY2x1ZGUga28tY2xlYXJmaXg7XG5cdFx0fVxuXG5cdFx0LmctY29sIHtcblx0XHRcdGZsb2F0OiBsZWZ0O1xuXHRcdFx0bWluLWhlaWdodDogMXB4O1xuXHRcdFx0Y2xlYXI6IG5vbmU7XG5cdFx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdH1cblxuXHRcdC5nLS1zdGFjayAuZy1jb2wge1xuXHRcdFx0d2lkdGg6IDEwMCU7XG5cdFx0fVxuXG5cdFx0LmctLWVxdWFsSGVpZ2h0IHtcblx0XHRcdD4gLmctY29sIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7IC8vIGFnYWluIG5lZWQgdG8gb3ZlcmlkZSBvbGQgc2FmYXJpIHRoaW5raW5nIGl0IGtub3dzIGZsZXhib3gsIHdoZW4gaXQgZG9lc27igJl0IHJlYWxseVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHQvL2VuZCAubm8tZmxleGJveFxufVxuXG5cblxuLyoqXG4gKiBHcmlkIFNwYW4gY2xhc3NlcyAoZm9yIGRpZmZlcmVudCBicmVha3BvaW50cylcbiAqXG4gKiBBcHBsaWVkIGJ5IHVzaW5nIC5nLXNwYW54IHRvIC5nLWNvbCBlbGVtZW50cywgd2hlcmUgeCBpcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnNcbiAqL1xuXG5AaW5jbHVkZSBrby1ncmlkU3BhbkhlbHBlcjsgLy8gRGVmYXVsdCBzaXplc1xuXG4vLyBSZXNwb25zaXZlIHNpemVzIG9ubHkgZ2VuZXJhdGVkIGlmICRyZXNwb25zaXZlLWdyaWQtc2l6ZXMgPT0gdHJ1ZVxuQGlmICRyZXNwb25zaXZlLWdyaWQtc2l6ZXMge1xuXHQvL2xvb3AgdGhyb3VnaCBvdXIgYnJlYWtwb2ludHNcblx0QGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuXHRcdEBpbmNsdWRlIG1lZGlhKCc+PSN7JHZhbHVlfScpIHtcblx0XHRcdEBpbmNsdWRlIGtvLWdyaWRTcGFuSGVscGVyKCRuYW1lKTtcblx0XHR9XG5cdH1cbn1cblxuQGVhY2ggJG5hbWUsICR2YWx1ZSBpbiAkYnJlYWtwb2ludHMge1xuXHQuZy0tc3RhY2stLSN7JG5hbWV9IHtcblx0XHRAaW5jbHVkZSBrby1ncmlkLXN0YWNrKCRuYW1lKTtcblx0fVxufVxuIiwiLyoqXG4gKiBHcmlkIFZhcmlhYmxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBUaGVzZSBhcmUgZGVmaW5lZCBoZXJlIHNvIHRoYXQgdGhlIGdyaWQgY2FuIHJ1biBhcyBhIHN0YW5kYWxvbmUgbW9kdWxlIChvdXRzaWRlIG9mIEtpY2tvZmYpLFxuICogYXMgd2VsbCBhcyBhbGxvd2luZyB0aGVzZSBmaWxlcyB0byBiZSBnZW5lcmF0ZWQgaW50byBzdGFuZGFyZCBDU1MuXG4gKlxuICogV2hlbiBpbXBvcnRpbmcgdGhlIGdyaWQgaW50byB5b3VyIG93biBwcm9qZWN0LCBjb3B5IHRoZSB2YXJpYWJsZXMgZnJvbSB0aGlzIGZpbGUgaW50byB5b3VyIG93biB2YXJpYWJsZXMuc2Nzc1xuICogVGhleSB3aWxsIHRoZW4gb3ZlcnJpZGUgdGhlIHZhbHVlcyBzcGVjaWZpZWQgaGVyZSAoYXMgbG9uZyBhcyB0aGUgZ3JpZCBpcyBpbXBvcnRlZCBiZWxvdyB3aGVyZSB5b3VyIG93biB2YXJpYWJsZXMgYXJlIGRlZmluZWQpLlxuICovXG5cbiRicmVha3BvaW50czoga28tbWFwLXRvLWVtKChcblx0bmFycm93ICAgICAgICAgICAgICAgICAgOiA0MDBweCxcblx0bWlkICAgICAgICAgICAgICAgICAgICAgOiA3NTBweCxcblx0d2lkZSAgICAgICAgICAgICAgICAgICAgOiAxMDAwcHgsXG5cdGh1Z2UgICAgICAgICAgICAgICAgICAgIDogMTI1MHB4XG4pLCAxNikgIWRlZmF1bHQ7XG5cblxuLy8gU2V0dXAgbGF5b3V0IG1heC13aWR0aFxuJGxheW91dC1tYXgtd2lkdGggICAgICAgICAgICAgOiAxMDAwICFkZWZhdWx0OyAvLyBbaW4gcGl4ZWxzXVxuXG4vLyBHcmlkIHNwZWNpZmljIHZhcmlhYmxlc1xuJGdyaWQtY29sdW1uLWNvdW50ICAgICAgICA6IDEyICAgICFkZWZhdWx0OyAvLyBUb3RhbCBjb2x1bW4gY291bnRcbiRncmlkLWd1dHRlci13aWR0aCAgICAgICAgOiAyMCAgICAhZGVmYXVsdDsgLy8gW2luIHBpeGVsc11cblxuLy9TZXR0aW5ncyBoZXJlIG92ZXJyaWRlICYgYWZmZWN0IHRoZSBncmlkIGNsYXNzZXMgb3V0cHV0XG4kcmVzcG9uc2l2ZS1ncmlkLXNpemVzICAgIDogdHJ1ZSAgIWRlZmF1bHQ7IC8vIERpc2FibGUgdGhpcyBpZiB5b3UgZG9uJ3Qgd2FudCBncmlkIHNpemVzIGZvciBlYWNoIGJyZWFrcG9pbnRcbiR1c2UtbGVnYWN5LWdyaWQgICAgICAgICAgOiB0cnVlICAhZGVmYXVsdDsgLy8gRGlzYWJsZSB0aGlzIGlmIHlvdSBkb27igJl0IHdhbnQgdG8gb3V0cHV0IC5uby1mbGV4Ym94IGNsYXNzZXMgZm9yIG9sZGVyIGJyb3dzZXJzIHRvIHVzZVxuIiwiLyoqXG4gKiBLaWNrb2ZmIGdyaWQgaGVscGVyc1xuICovXG5cbkBtaXhpbiBrby1ncmlkU3BhbkhlbHBlcigkYnJlYWtwb2ludDogbnVsbCkge1xuXHQkc3VmZml4OiBudWxsO1xuXG5cdEBpZiAkYnJlYWtwb2ludCB7XG5cdFx0JHN1ZmZpeDogLS0jeyRicmVha3BvaW50fTtcblx0fVxuXG5cdEBmb3IgJGkgZnJvbSAxIHRvICRncmlkLWNvbHVtbi1jb3VudCArIDEge1xuXHRcdCRjb2wtd2lkdGg6IGtvLWdyaWRDb2x1bW5XaWR0aENhbGMoJGksIHRydWUpO1xuXHRcdCRjb2wtd2lkdGgtZ3V0dGVyZWQ6IGtvLWdyaWRDb2x1bW5XaWR0aENhbGMoJGksIHRydWUsIHRydWUpO1xuXG5cdFx0Lmctc3BhbiN7JGl9I3skc3VmZml4fSB7XG5cdFx0XHRmbGV4LWJhc2lzOiAkY29sLXdpZHRoICFpbXBvcnRhbnQ7XG5cdFx0XHRmbGV4LWdyb3c6IDA7XG5cdFx0XHQvLyBuZWVkIHRoaXMgbmV4dCBsaW5lIGZvciBhIHdlaXJkIElFOS8xMC8xMSBidWcsIHdoZXJlIGFkZGluZyBwYWRkaW5nIHRvIGEgZmxleC1pdGVtIGNhbiB0aHJvdyBvdXQgdGhlIGZsZXgtYmFzaXMgYW5kIHdyYXAgdGhlIGNvbHVtbnMgaW5jb3JyZWN0bHlcblx0XHRcdC8vIHNlZSB0aGlzIGZvciBtb3JlIGRldGFpbCDigJMgaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvM1xuXHRcdFx0bWF4LXdpZHRoOiAkY29sLXdpZHRoICFpbXBvcnRhbnQ7XG5cblx0XHRcdC8vIG1heWJlIGhhdmUgYW4gb3B0aW9uIHRvIGluY2x1ZGUgdGhpcyBpbiBhIHZhcmlhYmxlXG5cdFx0XHQmLmctaG9sZFdpZHRoI3skc3VmZml4fSB7XG5cdFx0XHRcdEBpbmNsdWRlIGtvLXBpeGVsTWluV2lkdGgoJGkpO1xuXG5cdFx0XHRcdC5nLS1ndXR0ZXItLXNjYWxlZCAmIHtcblx0XHRcdFx0XHRAaW5jbHVkZSBrby1waXhlbE1pbldpZHRoKCRpLCB0cnVlKTsgLy8gZ2V0IHRoZSBob2xkLXdpZHRoIG1pbnVzIHRoZSBndXR0ZXJcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQuZy0tZ3V0dGVyLS1zY2FsZWQgJiB7XG5cdFx0XHRcdGZsZXgtYmFzaXM6ICRjb2wtd2lkdGgtZ3V0dGVyZWQgIWltcG9ydGFudDtcblx0XHRcdFx0Ly8gbmVlZCB0aGlzIG5leHQgbGluZSBmb3IgYSB3ZWlyZCBJRTkvMTAvMTEgYnVnLCB3aGVyZSBhZGRpbmcgcGFkZGluZyB0byBhIGZsZXgtaXRlbSBjYW4gdGhyb3cgb3V0IHRoZSBmbGV4LWJhc2lzIGFuZCB3cmFwIHRoZSBjb2x1bW5zIGluY29ycmVjdGx5XG5cdFx0XHRcdC8vIHNlZSB0aGlzIGZvciBtb3JlIGRldGFpbCDigJMgaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncy9pc3N1ZXMvM1xuXHRcdFx0XHRtYXgtd2lkdGg6ICRjb2wtd2lkdGgtZ3V0dGVyZWQ7XG5cblx0XHRcdFx0QGlmICRpIDwgJGdyaWQtY29sdW1uLWNvdW50IHtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDoga28tZ3V0dGVyQ2FsYygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdEBlbHNlIHtcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRAaWYgJHVzZS1sZWdhY3ktZ3JpZCB7XG5cblx0XHRcdFx0Ly8gdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIG1vZGVybml6ciBvciBhbm90aGVyIGRldGVjdGlvbiBtZWNoYW5pc21cblx0XHRcdFx0Lm5vLWZsZXhib3ggJiB7XG5cdFx0XHRcdFx0d2lkdGg6IGtvLWdyaWRDb2x1bW5XaWR0aENhbGMoJGksIHRydWUpICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXHRcdFx0Ly8gQGlmICR1c2UtbGVnYWN5LWdyaWRcblxuXHRcdH1cblx0XHRAaWYgJGkgPCAxMiB7XG5cdFx0XHQuZy1vZmZzZXQjeyRpfSN7JHN1ZmZpeH0ge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogJGNvbC13aWR0aCAhaW1wb3J0YW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG4vKipcbiAqIEdyaWQgc3RhY2tpbmdcbiAqIFN0YWNrIGdyaWRzIGJhc2VkIG9uIGEgZ2l2ZW4gYnJlYWtwb2ludFxuICpcbiAqIFVzYWdlOlxuICogLmctLXN0YWNrLS1uYXJyb3dcbiAqIC5nLS1zdGFjay0td2lkZVxuICovXG5AbWl4aW4ga28tZ3JpZC1zdGFjaygkYnJlYWtwb2ludDogJ3dpZGUnKSB7XG5cdEBpbmNsdWRlIG1lZGlhKCc8I3skYnJlYWtwb2ludH0nKSB7XG5cdFx0ZmxleC1mbG93OiBjb2x1bW4gbm93cmFwO1xuXG5cdFx0JiA+IC5nLWNvbCB7XG5cdFx0XHRmbGV4LWJhc2lzOiBhdXRvICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0XHRcdG1hcmdpbi1sZWZ0OiAwOyAvLyBnZXQgcmlkIG9mIGFueSBncmlkIG1hcmdpbnMgaWYgdGhlcmUgYXJlIGFueVxuXG5cdFx0XHRAaWYgJHVzZS1sZWdhY3ktZ3JpZCB7XG5cdFx0XHRcdC5uby1mbGV4Ym94ICYge1xuXHRcdFx0XHRcdHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBHdXR0ZXIgQ2FsY3VsYXRpb25zXG4gKiBEZWZhdWx0OiBwZXJjZW50XG4gKiBVc2FnZToga28tZ3V0dGVyQ2FsYygpIG9yIGtvLWd1dHRlckNhbGMoZmFsc2UpXG4gKiBXaGVuIHNob3ctdW5pdCBpcyB0cnVlLCByZXR1cm5zIHRoZSBwZXJjZW50YWdlLCBvdGhlcndpc2UgcmV0dXJuIGEgZGVjaW1hbFxuICovXG5AZnVuY3Rpb24ga28tZ3V0dGVyQ2FsYygkc2hvdy11bml0OiB0cnVlKSB7XG5cdEBpZiAkc2hvdy11bml0ID09IHRydWUge1xuXHRcdEByZXR1cm4gcGVyY2VudGFnZShrby1zdHJpcC11bml0cygkZ3JpZC1ndXR0ZXItd2lkdGgpIC8ga28tc3RyaXAtdW5pdHMoJGxheW91dC1tYXgtd2lkdGgpKTtcblx0fSBAZWxzZSB7XG5cdFx0QHJldHVybiAkZ3JpZC1ndXR0ZXItd2lkdGggLyAkbGF5b3V0LW1heC13aWR0aDtcblx0fVxufVxuXG5cblxuLyoqXG4gKiBHcmlkIGNvbHVtbnMgd2lkdGggY2FsY3VsYXRpb25zXG4gKiBUaGlzIGlzIHdoZXJlIHRoZSBtYWdpYyBvZiB3b3JraW5nIG91dCB0aGUgY29sdW1uIHdpZHRocyBoYXBwZW5zXG4gKlxuICogJGNvbHVtbi1zcGFuOiBkZWZpbmUgdGhlIHdpZHRoIGZvciB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgcmVxdWlyZWRcbiAqICRzaG93LXVuaXQ6IFN3aXRjaCByZXR1cm4gdmFsdWUgYmV0d2VlbiBwZXJjZW50YWdlIChkZWZhdWx0KSBhbmQgZGVjaW1hbFxuICogJGluY2x1ZGUtZ3V0dGVyczogaWYgZ3V0dGVycyBzaG91bGQgYmUgaW5jbHVkZWQgaW4gdGhlIGNhbGN1bGF0aW9ucy4gRGVmYXVsdCA9IGZhbHNlXG4gKiAkbGVnYWN5LWNhbGM6IGlmIHdlIGFyZSB3b3JraW5nIG91dCBhIGxlZ2FjeSBjb2x1bW4gd2lkdGggY2FsY3VsYXRpb24sIG9yIG5vdC4gRGVmYXVsdCA9IGZhbHNlXG4gKi9cbkBmdW5jdGlvbiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRjb2x1bW4tc3BhbjogMSwgJHNob3ctdW5pdDogdHJ1ZSwgJGluY2x1ZGUtZ3V0dGVyczogZmFsc2UpIHtcblx0JG51bWJlci1vZi1ibG9ja3MtaW4tY29udGFpbmVyIDogJGdyaWQtY29sdW1uLWNvdW50IC8gJGNvbHVtbi1zcGFuO1xuXHQkdG90YWwtd2lkdGgtb2YtYWxsLWJsb2NrcyAgICAgOiAxO1xuXG5cdC8vIHdoZW4gaW5jbHVkaW5nIGd1dHRlcnMsIHdlIG5lZWQgdG8gYWRqdXN0IG91ciAlIHdpZHRoIG9yIGZsZXgtYmFzaXMgYXBwcm9wcmlhdGVseVxuXHRAaWYgJGluY2x1ZGUtZ3V0dGVycyB7XG5cdFx0JHRvdGFsLXdpZHRoLW9mLWFsbC1ndXR0ZXJzICAgIDoga28tZ3V0dGVyQ2FsYyhmYWxzZSkgKiAoJG51bWJlci1vZi1ibG9ja3MtaW4tY29udGFpbmVyIC0gMSk7XG5cdFx0JHRvdGFsLXdpZHRoLW9mLWFsbC1ibG9ja3MgICAgIDogMSAtICR0b3RhbC13aWR0aC1vZi1hbGwtZ3V0dGVycztcblx0fVxuXG5cdCR3aWR0aC1vZi1hLXNpbmdsZS1ibG9jayAgICAgICA6ICR0b3RhbC13aWR0aC1vZi1hbGwtYmxvY2tzIC8gJG51bWJlci1vZi1ibG9ja3MtaW4tY29udGFpbmVyO1xuXG5cdEBpZiAkc2hvdy11bml0ID09IHRydWUge1xuXHRcdEByZXR1cm4gcGVyY2VudGFnZShrby1zdHJpcC11bml0cygkd2lkdGgtb2YtYS1zaW5nbGUtYmxvY2spKTtcblx0fSBAZWxzZSB7XG5cdFx0QHJldHVybiAkd2lkdGgtb2YtYS1zaW5nbGUtYmxvY2s7XG5cdH1cbn1cblxuQG1peGluIGtvLXBpeGVsTWluV2lkdGgoJGNvbHVtbi1zcGFuOiAxLCAkbWludXNHdXR0ZXI6IGZhbHNlKSB7XG5cdEBpZiAkbWludXNHdXR0ZXIgPT0gdHJ1ZSB7XG5cdFx0bWluLXdpZHRoOiAoJGxheW91dC1tYXgtd2lkdGggKiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRjb2x1bW4tc3BhbiwgZmFsc2UpKSAtICgkbGF5b3V0LW1heC13aWR0aCAqIGtvLWd1dHRlckNhbGMoZmFsc2UpKSArIHB4O1xuXHR9XG5cdEBlbHNlIHtcblx0XHRtaW4td2lkdGg6ICgkbGF5b3V0LW1heC13aWR0aCAqIGtvLWdyaWRDb2x1bW5XaWR0aENhbGMoJGNvbHVtbi1zcGFuLCBmYWxzZSkpICsgcHg7XG5cdH1cbn1cblxuXG4vKipcbiAqIENvbHVtbiB3aWR0aCBtaXhpblxuICogVXNhZ2U6XG4gKiBAaW5jbHVkZSBjb2x1bW4oMik7XG4gKi9cbkBtaXhpbiBjb2x1bW4oJGNvbHVtbi1zcGFuOiAxKSB7XG5cdHdpZHRoOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRjb2x1bW4tc3BhbiwgdHJ1ZSk7XG59XG4iLCIvKipcbiAqIEZvcm1zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEtpY2tvZmYncyBmb3JtcyBoYXMgc3VwcG9ydCBmb3IgdGhlbWVzLiBTZWUgYmVsb3cgZm9yIGluZm8gYWJvdXQgdGhlbS5cbiAqXG4gKiBUaGUgc3R5bGVzIGhlcmUgYXJlIGJhc2Ugc3R5bGVzIHRoYXQgYXBwbHkgdG8gYm90aCB0aGVtZXMsXG4gKiB0aGV5IGFyZSBtb3JlIG9mIGEgcmVzZXQgYmVmb3JlIHlvdSBtYWtlIHN0eWxpc3RpYyBhbWVuZHMgdG8gZm9ybSBmaWVsZHNcbiAqXG4gKi9cblxuQGltcG9ydCBcImZvcm0taGVscGVyc1wiOyAvLyBIZWxwZXIgbWl4aW5zXG5cbi8qKlxuICogRm9ybSB0aGVtZXNcbiAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgYmFzZSBmb3JtIHN0eWxlcyBhbmQgZWFjaCB0aGVtZSBmaWxlIGNvbnRhaW5zXG4gKiBvdmVycmlkZXMgYW5kIGFkZGl0aW9ucy5cbiAqXG4gKiBDaG9vc2UgZnJvbTpcbiAqIC0gYHN0YW5kYXJkYDogdGhlIG9yaWdpbmFsIEtpY2tvZmYgZm9ybSB0aGVtZVxuICogLSBgbWF0ZXJpYWxgOiBiYXNpYyB2ZXJzaW9uIG9mIEdvb2dsZSdzIE1hdGVyaWFsIGRlc2lnbiBmb3Jtc1xuICpcbiAqIFVzYWdlOiAoY2hvb3NlIGZyb20pXG4gKiBAaW1wb3J0IFwiZm9ybS10aGVtZS1zdGFuZGFyZFwiO1xuICogQGltcG9ydCBcImZvcm0tdGhlbWUtbWF0ZXJpYWxcIjtcbiAqL1xuQGltcG9ydCBcImZvcm0tdGhlbWUtc3RhbmRhcmRcIjtcblxuLyoqXG4gKiBDdXN0b20gY29udHJvbHNcbiAqIC0gUmFkaW9zL2NoZWNrYm94ZXNcbiAqIC0gU2VsZWN0IGVsZW1lbnRcbiAqIC0gRmlsZSB1cGxvYWRcbiAqL1xuQGltcG9ydCBcImZvcm1zLWN1c3RvbS1yYWRpb3NjaGVja2JveGVzXCI7IC8vIFJhZGlvICYgY2hlY2tib3ggaW5wdXRzXG5AaW1wb3J0IFwiZm9ybXMtY3VzdG9tLXNlbGVjdFwiOyAvLyBTZWxlY3QgZWxlbWVudFxuQGltcG9ydCBcImZvcm1zLWN1c3RvbS1maWxlXCI7IC8vIEZpbGUgaW5wdXRcblxuXG4vKipcbiAqIEJhc2UgZm9ybSBzdHlsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRGVtbzogaHR0cDovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2Zvcm1zLmh0bWwjbGF5b3V0LWV4YW1wbGUtbGFiZWxzLWFib3ZlXG4gKiBDb2RlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS82NzEyNTc3I2ZpbGUtbGFiZWxzLWFib3ZlLWlucHV0cy1odG1sXG4gKiBVc2FnZTpcbiAgXHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXBcIj5cbiAgXHRcdDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+TmFtZTwvbGFiZWw+XG4gIFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyXCI+XG4gIFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiWmFuZGVyIE1hcnRpbmVhdVwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiLz5cbiAgXHRcdDwvZGl2PlxuICBcdDwvZGl2PlxuICovXG5cblxuLmZvcm0tbGVnZW5kIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xufVxuXG4vKipcbiAqIEZvcm0gaW5wdXRzIGFuZCBncm91cHNcbiAqL1xuLmZvcm0tY29udHJvbEdyb3VwIHt9XG5cbi8vIExlZ2VuZCBjb2xsYXBzZXMgbWFyZ2luLCBzbyBuZXh0IGVsZW1lbnQgaXMgcmVzcG9uc2libGUgZm9yIHNwYWNpbmdcbi5mb3JtLWxlZ2VuZCArIC5mb3JtLWNvbnRyb2xHcm91cCB7XG5cdC8vIG1hcmdpbi10b3A6ICRiYXNlbGluZTsgLy8gQWRkIHRoaXMgdG8gdGhlbWVcblx0LXdlYmtpdC1tYXJnaW4tdG9wLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbn1cblxuLy8gSWRlbnRpZnkgY29udHJvbHMgYnkgdGhlaXIgbGFiZWxzXG4uZm9ybS1sYWJlbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vLyBBbnkgZm9ybSBpbnB1dHNcbi5mb3JtLWlucHV0IHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cblx0Jjpmb2N1cyB7XG5cdFx0b3V0bGluZTogMDtcblx0XHRvdXRsaW5lOiB0aGluIGRvdHRlZCBcXDk7IC8vIElFNi05XG5cdH1cblxuXHQmW3R5cGU9XCJpbWFnZVwiXSxcblx0Jlt0eXBlPVwiY2hlY2tib3hcIl0sXG5cdCZbdHlwZT1cInJhZGlvXCJdLFxuXHQmW3R5cGU9XCJyYW5nZVwiXSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bGluZS1oZWlnaHQ6IG5vcm1hbDtcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0Ym9yZGVyLXJhZGl1czogMDtcblx0XHRib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXHRcdC8vIGJvcmRlcjogMCBcXDk7IC8vIElFOSBhbmQgZG93blxuXHR9XG5cblx0Jlt0eXBlPVwiaW1hZ2VcIl0ge1xuXHRcdGJvcmRlcjogMDtcblx0fVxuXG5cdC8vIFJlc2V0IHRoZSBmaWxlIGlucHV0IHRvIGJyb3dzZXIgZGVmYXVsdHNcblx0Jlt0eXBlPVwiZmlsZVwiXSB7XG5cdFx0d2lkdGg6IGF1dG87XG5cdFx0aGVpZ2h0OiAyOHB4O1xuXHRcdHBhZGRpbmc6IGluaXRpYWw7XG5cdFx0bGluZS1oZWlnaHQ6IGluaXRpYWw7XG5cdFx0Ym9yZGVyOiBpbml0aWFsO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGluaXRpYWw7XG5cdH1cblxuXHQvLyBIaWRkZW4gaW5wdXRzXG5cdCZbdHlwZT1cImhpZGRlblwiXSB7XG5cdFx0ZGlzcGxheTogbm9uZTtcblx0fVxuXG5cdC8vIFNlZSBodHRwOi8vbWFydGluZWF1LnR2LzIwMTMvMDUvaGlkZGVuLWNoYXJhY3RlcnMtaW4tcGFzc3dvcmQtaW5wdXRzL1xuXHQmW3R5cGU9XCJwYXNzd29yZFwiXSB7XG5cdFx0Zm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG5cdH1cblxuXHQmW3R5cGU9XCJyYW5nZVwiXSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblxuXHQ+IC5yYWRpbzpmaXJzdC1jaGlsZCxcblx0PiAuY2hlY2tib3g6Zmlyc3QtY2hpbGQge1xuXHRcdHBhZGRpbmctdG9wOiA1cHg7IC8vIGhhcyB0byBiZSBwYWRkaW5nIGJlY2F1c2UgbWFyZ2luIGNvbGxhcHNlc1xuXHR9XG5cblx0Ly8gRGlzYWJsZWQgU3RhdGVcblx0JltkaXNhYmxlZF0sXG5cdCZbcmVhZG9ubHldIHtcblx0XHRjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXHR9XG59XG5cbi5mb3JtLWlucHV0LS10ZXh0YXJlYSB7XG5cdGhlaWdodDogYXV0bztcblx0bWluLWhlaWdodDogNWVtO1xuXHRyZXNpemU6IHZlcnRpY2FsO1xufVxuXG4uZm9ybS1pbnB1dC0tdGV4dGFyZWEtLXVuZWRpdGFibGUge1xuXHR3aWR0aDogYXV0bztcblx0aGVpZ2h0OiBhdXRvO1xufVxuXG4uZm9ybS1pbnB1dC1maWxlIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogMTAwJTtcblx0bWFyZ2luOiAwO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRsaW5lLWhlaWdodDogMWVtO1xuXG5cdCY6Zm9jdXMge1xuXHRcdG91dGxpbmU6IG5vbmU7XG5cdH1cbn1cblxuLy8gSGVscCBvdXQgaW5wdXQgYnV0dG9uc1xuYnV0dG9uLFxuaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbmlucHV0W3R5cGU9XCJyZXNldFwiXSxcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuXHR3aWR0aDogYXV0bztcblx0Y3Vyc29yOiBwb2ludGVyO1xuXHQtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbn1cblxuXG4vKipcbiAqIENoZWNrYm94ZXM6XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0PGxhYmVsIGNsYXNzPVwiY29udHJvbFwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cImNoZWNrMVwiPlxuXHRcdFRoaXMgaXMgYSBjaGVja2JveFxuXHQ8L2xhYmVsPlxuXHQ8bGFiZWwgY2xhc3M9XCJjb250cm9sIGNvbnRyb2wtLWlubGluZVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiB2YWx1ZT1cImNoZWNrMVwiPlxuXHRcdFRoaXMgaXMgYSBjaGVja2JveFxuXHQ8L2xhYmVsPlxuXG4gKiBSYWRpb3M6XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0PGxhYmVsIGNsYXNzPVwiY29udHJvbFwiPlxuXHRcdDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwib3B0aW9uc1JhZGlvc1wiIGlkPVwib3B0aW9uc1JhZGlvczFcIiB2YWx1ZT1cIm9wdGlvbjFcIiBjaGVja2VkPlxuXHRcdFRoaXMgaXMgYSByYWRpb1xuXHQ8L2xhYmVsPlxuXHQ8bGFiZWwgY2xhc3M9XCJjb250cm9sIGNvbnRyb2wtLWlubGluZVwiPlxuXHRcdDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwib3B0aW9uc1JhZGlvc1wiIGlkPVwib3B0aW9uc1JhZGlvczFcIiB2YWx1ZT1cIm9wdGlvbjJcIiBjaGVja2VkPlxuXHRcdFRoaXMgaXMgYSByYWRpb1xuXHQ8L2xhYmVsPlxuICovXG4uY29udHJvbCB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRsaW5lLWhlaWdodDogMTtcblxuXHQmICsgJiB7XG5cdFx0bWFyZ2luLXRvcDoga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAwLjUpO1xuXHR9XG5cblx0aW5wdXQge1xuXHRcdHZlcnRpY2FsLWFsaWduOiB0b3A7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdGxpbmUtaGVpZ2h0OiAxO1xuXHRcdG1hcmdpbi1yaWdodDogMC41ZW07XG5cdH1cbn1cblxuLy8gUmFkaW9zIGFuZCBjaGVja2JveGVzIG9uIHNhbWUgbGluZVxuLmNvbnRyb2wtLWlubGluZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuXHQmICsgJiB7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHRtYXJnaW4tbGVmdDogMS41ZW07XG5cdH1cbn1cblxuXG4vKipcbiAqIEZvcm0gdmFsaWRhdGlvbiBtZXNzYWdlc1xuICovXG4uZm9ybS1jb250cm9sR3JvdXAgLmZvcm0tbWVzc2FnZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG4iLCIvKipcbiAqIEtpY2tvZmYgZm9ybXM6IFN0YW5kYXJkIHRoZW1lXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKlxuICogRGVtbzogaHR0cDovL3RyeWtpY2tvZmYuY29tL2RlbW9zL2Zvcm1zLmh0bWwjbGF5b3V0LWV4YW1wbGUtbGFiZWxzLWFib3ZlXG4gKiBDb2RlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS82NzEyNTc3I2ZpbGUtbGFiZWxzLWFib3ZlLWlucHV0cy1odG1sXG4gKiBVc2FnZTpcbiAgXHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXBcIj5cbiAgXHRcdDxsYWJlbCBmb3I9XCJuYW1lXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+TmFtZTwvbGFiZWw+XG4gIFx0XHQ8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyXCI+XG4gIFx0XHRcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGlkPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiWmFuZGVyIE1hcnRpbmVhdVwiIGNsYXNzPVwiZm9ybS1pbnB1dFwiLz5cbiAgXHRcdDwvZGl2PlxuICBcdDwvZGl2PlxuICpcbiAqIENvbnRlbnRzOlxuICogLSBUaGVtZSB2YXJpYWJsZXNcbiAqIC0gVGhlbWUgc3R5bGVzXG4gKi9cblxuLy8gRm9ybSB2YXJpYWJsZXNcbiRpbnB1dC1iZ0NvbG9yICAgICAgICAgICAgOiAjZmZmOyAgICAgICAgICAgICAgICAvLyBDb2xvdXIgb2YgaW5wdXQgYmFja2dyb3VuZFxuJGlucHV0LWJvcmRlckNvbG9yICAgICAgICA6ICNjY2M7ICAgICAgICAgICAgICAgIC8vIENvbG91ciBvZiBpbnB1dCBib3JkZXJzXG4kaW5wdXQtYm9yZGVyQ29sb3ItLWZvY3VzIDogJGNvbG9yLXByaW1hcnk7ICAgICAgLy8gQ29sb3VyIG9mIGlucHV0IGJvcmRlcnMgd2hlbiBmb2N1c2VkXG4kZm9ybS1hY3Rpb25zLWJnQ29sb3IgICAgIDogI2Y1ZjVmNTsgICAgICAgICAgICAgLy8gQmFja2dyb3VuZCBjb2xvdXIgb2YgZm9ybSBhY3Rpb25zIGNvbnRhaW5lciAoaS5lLiBzdWJtaXQpXG4kbGFiZWwtdGV4dENvbG9yICAgICAgICAgIDogJGNvbG9yLXRleHQ7ICAgICAgICAgLy8gVGV4dCBjb2xvdXIgb2YgZm9ybSBsYWJlbHMgYW5kIGxlZ2VuZHNcbiRpbnB1dC10ZXh0Q29sb3IgICAgICAgICAgOiAkY29sb3ItdGV4dDsgICAgICAgICAvLyBUZXh0IGNvbG91ciBvZiBmb3JtIGlucHV0c1xuJHBsYWNlaG9sZGVyLXRleHRDb2xvciAgICA6IGxpZ2h0ZW4oIzAwMCwgNzAlKTsgIC8vIFRleHQgY29sb3VyIG9mIGlucHV0IHBsYWNlaG9sZGVyXG4kZm9ybS1ib3JkZXJSYWRpdXMgICAgICAgIDogNXB4O1xuLy8gTWVzc2FnZXMgJiBmb3JtIHN0YXRlcyBhbmQgYWxlcnRzXG4kY29sb3Itd2FybmluZyAgICAgICAgICAgIDogI2Y0YWE0NzsgICAgICAgICAgICAgLy8gYmFzZSBjb2xvdXIgZm9yIHdhcm5pbmcgaW5wdXQgc3RhdGVcbiRjb2xvci1lcnJvciAgICAgICAgICAgICAgOiAjQjk0QTREOyAgICAgICAgICAgICAvLyBiYXNlIGNvbG91ciBmb3IgZXJyb3IgaW5wdXQgc3RhdGVcbiRjb2xvci1zdWNjZXNzICAgICAgICAgICAgOiAkZ3JlZW47ICAgICAgICAgICAgICAvLyBiYXNlIGNvbG91ciBmb3Igc3VjY2VzcyBpbnB1dCBzdGF0ZVxuJGNvbG9yLWluZm8gICAgICAgICAgICAgICA6ICRibHVlOyAgICAgICAgICAgICAgIC8vIGJhc2UgY29sb3VyIGZvciBpbmZvIGlucHV0IHN0YXRlXG5cbi8qKlxuICogR2VuZXJpYyBmb3JtIHN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBEZW1vOiBodHRwOi8vdHJ5a2lja29mZi5jb20vZGVtb3MvZm9ybXMuaHRtbCNsYXlvdXQtZXhhbXBsZS1sYWJlbHMtYWJvdmVcbiAqIENvZGU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL21ybWFydGluZWF1LzY3MTI1NzcjZmlsZS1sYWJlbHMtYWJvdmUtaW5wdXRzLWh0bWxcbiAqIFVzYWdlOlxuICBcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cFwiPlxuICBcdFx0PGxhYmVsIGZvcj1cIm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5OYW1lPC9sYWJlbD5cbiAgXHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXJcIj5cbiAgXHRcdFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgaWQ9XCJuYW1lXCIgcGxhY2Vob2xkZXI9XCJaYW5kZXIgTWFydGluZWF1XCIgY2xhc3M9XCJmb3JtLWlucHV0XCIvPlxuICBcdFx0PC9kaXY+XG4gIFx0PC9kaXY+XG4gKi9cblxuLmZvcm0ge1xuXHRtYXJnaW46IDAgMCAkYmFzZWxpbmU7XG59XG5cbi5mb3JtLWZpZWxkc2V0IHtcblx0cGFkZGluZzogMDtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IDA7XG59XG5cbi5mb3JtLWxlZ2VuZCB7XG5cdHBhZGRpbmc6IDA7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlbGluZTtcblx0QGluY2x1ZGUga28tZm9udC1zaXplKG1pZCk7XG5cdGxpbmUtaGVpZ2h0OiAkbGVhZGluZy1iYXNlO1xuXHRjb2xvcjogJGxhYmVsLXRleHRDb2xvcjtcblx0Ym9yZGVyOiAwO1xuXHRib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcblx0d2hpdGUtc3BhY2U6IG5vcm1hbDtcblxuXHQvLyBTbWFsbFxuXHRzbWFsbCB7XG5cdFx0QGluY2x1ZGUga28tZm9udC1zaXplKHNtYWxsKTtcblx0XHRjb2xvcjogbGlnaHRlbigjMDAwLCA3MCUpO1xuXHR9XG59XG5cbi8qKlxuICogRm9ybSBpbnB1dHMgYW5kIGdyb3Vwc1xuICovXG4uZm9ybS1jb250cm9sR3JvdXAge1xuXHRtYXJnaW4tdG9wOiBrby1tdWx0aXBseSgkYmFzZWxpbmUsIDEuNSk7XG5cdG1hcmdpbi1ib3R0b206IGtvLW11bHRpcGx5KCRiYXNlbGluZSwgMS41KTtcbn1cblxuLy8gTGVnZW5kIGNvbGxhcHNlcyBtYXJnaW4sIHNvIG5leHQgZWxlbWVudCBpcyByZXNwb25zaWJsZSBmb3Igc3BhY2luZ1xuLmZvcm0tbGVnZW5kICsgLmZvcm0tY29udHJvbEdyb3VwIHtcblx0bWFyZ2luLXRvcDogJGJhc2VsaW5lO1xufVxuXG4vLyBJZGVudGlmeSBjb250cm9scyBieSB0aGVpciBsYWJlbHNcbi5mb3JtLWxhYmVsIHtcblx0Ly8gbWFyZ2luLWJvdHRvbToga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAwLjUpO1xuXHRjb2xvcjogJGxhYmVsLXRleHRDb2xvcjtcblxuXHRzbWFsbCB7XG5cdFx0Zm9udC13ZWlnaHQ6IG5vcm1hbDtcblx0XHRjb2xvcjogbGlnaHRlbigkbGFiZWwtdGV4dENvbG9yLCAzMCUpO1xuXHR9XG59XG5cblxuLy8gQW55IGZvcm0gaW5wdXRzXG4uZm9ybS1pbnB1dCB7XG5cdGhlaWdodDogMi41ZW07XG5cdHBhZGRpbmc6IC41ZW07XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShiYXNlKTtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuXHRsaW5lLWhlaWdodDogJGxlYWRpbmctYmFzZTtcblx0Y29sb3I6ICRpbnB1dC10ZXh0Q29sb3I7XG5cdGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cdGJhY2tncm91bmQtY29sb3I6ICRpbnB1dC1iZ0NvbG9yO1xuXHRib3JkZXI6IDJweCBzb2xpZCAkaW5wdXQtYm9yZGVyQ29sb3I7XG5cdGJvcmRlci1yYWRpdXM6ICRmb3JtLWJvcmRlclJhZGl1cztcblx0YmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblx0dHJhbnNpdGlvbjogYm9yZGVyIDIwMG1zIGVhc2UtaW4tb3V0O1xuXG5cdCY6Zm9jdXMge1xuXHRcdGJvcmRlci1jb2xvcjogJGlucHV0LWJvcmRlckNvbG9yLS1mb2N1cztcblx0fVxuXG5cdCZbdHlwZT1cImltYWdlXCJdLFxuXHQmW3R5cGU9XCJjaGVja2JveFwiXSxcblx0Jlt0eXBlPVwicmFkaW9cIl0sXG5cdCZbdHlwZT1cInJhbmdlXCJdIHtcblx0XHRtYXJnaW46IDNweCAwO1xuXHR9XG5cblx0Ly8gUmVzZXQgdGhlIGZpbGUgaW5wdXQgdG8gYnJvd3NlciBkZWZhdWx0c1xuXHQmW3R5cGU9XCJmaWxlXCJdIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkaW5wdXQtYmdDb2xvcjtcblx0fVxuXG5cdCZbdHlwZT1cImNvbG9yXCJdIHtcblx0XHR3aWR0aDogNDBweDtcblx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0XHRwYWRkaW5nOiAycHg7XG5cdH1cblxuXHQvLyBEaXNhYmxlZCBTdGF0ZVxuXHQmW2Rpc2FibGVkXSxcblx0JltyZWFkb25seV0ge1xuXHRcdGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cdH1cblxuXHQvLyBIVE1MNSBpbnZhbGlkIHN0YXRlc1xuXHQvLyBVbmNvbW1lbnQgdGhpcyBpZiB5b3UgbmVlZCBpdFxuXHQvLyAmOmZvY3VzOnJlcXVpcmVkOmludmFsaWQge1xuXHQvLyBcdGNvbG9yOiAjYjk0YTQ4O1xuXHQvLyBcdGJvcmRlci1jb2xvcjogI2VlNWY1YjtcblxuXHQvLyBcdCY6Zm9jdXMge1xuXHQvLyBcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oI2VlNWY1YiwgMTAlKTtcblx0Ly8gXHR9XG5cdC8vIH1cbn1cblxuLmZvcm0taW5wdXQtLXRleHRhcmVhIHt9XG5cbi8vIFNldCB0aGUgaGVpZ2h0IG9mIHNlbGVjdCBhbmQgZmlsZSBjb250cm9scyB0byBtYXRjaCB0ZXh0IGlucHV0c1xuLmZvcm0taW5wdXQtLXNlbGVjdCB7XG5cdC8vIENocm9tZSBvbiBMaW51eCBhbmQgTW9iaWxlIFNhZmFyaSBuZWVkIGJhY2tncm91bmQtY29sb3Jcblx0YmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWJnQ29sb3I7XG59XG5cbi5mb3JtLWlucHV0LWZpbGUge1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoYmFzZSk7XG59XG5cblxuLyoqXG4gKiBGb3JtIGFjdGlvbnNcbiAqL1xuLmZvcm0tYWN0aW9ucyB7XG5cdHBhZGRpbmc6ICRiYXNlbGluZSAyMHB4O1xuXHRtYXJnaW4tdG9wOiAkYmFzZWxpbmU7XG5cdG1hcmdpbi1ib3R0b206ICRiYXNlbGluZTtcblx0YmFja2dyb3VuZC1jb2xvcjogJGZvcm0tYWN0aW9ucy1iZ0NvbG9yO1xuXHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcblxuXHQuYnRuIHtcblx0XHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cblx0XHQmOmxhc3QtY2hpbGQge1xuXHRcdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKlxuICogRm9ybSB2YWxpZGF0aW9uIG1lc3NhZ2VzXG4gKi9cbi5mb3JtLW1lc3NhZ2Uge1xuXG5cdC5mb3JtLWNvbnRyb2xHcm91cCAmIHtcblx0XHRwYWRkaW5nLXRvcDogMC41ZW07XG5cdFx0cGFkZGluZy1sZWZ0OiAwLjVlbTtcblx0fVxuXG5cdC5mb3JtLWFjdGlvbnMgJiB7XG5cdFx0cGFkZGluZzogMC41ZW07XG5cdH1cbn1cblxuXG4vKipcbiAqIEZvcm0gZmllbGQgZmVlZGJhY2sgc3RhdGVzXG4gKi9cblxuLy8gV2FybmluZ1xuLmhhcy13YXJuaW5nIHtcblx0Y29sb3I6ICRjb2xvci13YXJuaW5nO1xufVxuXG4uZm9ybS1jb250cm9sR3JvdXAuaGFzLXdhcm5pbmcge1xuXHRAaW5jbHVkZSBrby1mb3JtRmllbGRTdGF0ZSgkY29sb3Itd2FybmluZyk7XG59XG5cbi8vIEVycm9yXG4uaGFzLWVycm9yIHtcblx0Y29sb3I6ICRjb2xvci1lcnJvcjtcbn1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy1lcnJvciB7XG5cdEBpbmNsdWRlIGtvLWZvcm1GaWVsZFN0YXRlKCRjb2xvci1lcnJvcik7XG59XG5cbi8vIFN1Y2Nlc3Ncbi5oYXMtc3VjY2VzcyB7XG5cdGNvbG9yOiAkY29sb3Itc3VjY2Vzcztcbn1cblxuLmZvcm0tY29udHJvbEdyb3VwLmhhcy1zdWNjZXNzIHtcblx0QGluY2x1ZGUga28tZm9ybUZpZWxkU3RhdGUoJGNvbG9yLXN1Y2Nlc3MpO1xufVxuXG4vLyBJbmZvXG4uaGFzLWluZm8ge1xuXHRjb2xvcjogJGNvbG9yLWluZm87XG59XG5cbi5mb3JtLWNvbnRyb2xHcm91cC5oYXMtaW5mbyB7XG5cdEBpbmNsdWRlIGtvLWZvcm1GaWVsZFN0YXRlKCRjb2xvci1pbmZvKTtcbn1cblxuXG4vKipcbiAqIFBsYWNlaG9sZGVyIHRleHRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogR2V0cyBzcGVjaWFsIHN0eWxlczsgY2FuJ3QgYmUgYnVuZGxlZCB0b2dldGhlciB0aG91Z2ggZm9yIHNvbWUgcmVhc29uXG4gKi9cbkBpbmNsdWRlIGtvLXBsYWNlaG9sZGVyKCRwbGFjZWhvbGRlci10ZXh0Q29sb3IpO1xuXG5cbi8vID09PSA8bWlkID09PVxuQGluY2x1ZGUgbWVkaWEoJz5taWQnKSB7XG5cdC8qKlxuXHQgKiBIb3Jpem9udGFsLXNwZWNpZmljIHN0eWxlc1xuXHQgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0ICogYWRkIC5mb3JtLS1ob3Jpem9udGFsIHRvIHRoZSA8Zm9ybT4gZWxlbWVudFxuXHQgKiBEZW1vOiBodHRwOi8vdHJ5a2lja29mZi5jb20vZGVtb3MvZm9ybXMuaHRtbCNsYXlvdXQtZXhhbXBsZS1sYWJlbHMtaW5saW5lXG5cdCAqIENvZGU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL21ybWFydGluZWF1LzY3MTI1NzcjZmlsZS1sYWJlbHMtaW5saW5lLWh0bWxcblx0ICovXG5cdC5mb3JtLS1ob3Jpem9udGFsIHtcblx0XHQvLyBJbmNyZWFzZSBzcGFjaW5nIGJldHdlZW4gZ3JvdXBzXG5cdFx0LmZvcm0tY29udHJvbEdyb3VwIHtcblx0XHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHRcdD4gLmZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlciB7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZsb2F0IHRoZSBsYWJlbHMgbGVmdFxuXHRcdC5mb3JtLWxhYmVsIHtcblx0XHRcdHdpZHRoOiAxNDBweDtcblx0XHRcdG1hcmdpbi1yaWdodDogJGJhc2VsaW5lO1xuXHRcdFx0cGFkZGluZy10b3A6IDAuNmVtO1xuXHRcdH1cblxuXHRcdC8vIE1vdmUgb3ZlciBidXR0b25zIGluIC5mb3JtLWFjdGlvbnMgdG8gYWxpZ24gd2l0aCAuZm9ybS1jb250cm9sR3JvdXAtaW5wdXRXcmFwcGVyXG5cdFx0LmZvcm0tYWN0aW9ucyB7XG5cdFx0XHRwYWRkaW5nLWxlZnQ6IDE0MHB4ICsgJGJhc2VsaW5lO1xuXHRcdH1cblx0fVxufVxuXG4vLyA9PT0gZW5kIDxtaWQgPT09XG4iLCIvLyBNaXhpbiBmb3IgZm9ybSBmaWVsZCBzdGF0ZXNcbkBtaXhpbiBrby1mb3JtRmllbGRTdGF0ZSgkY29sb3IpIHtcblx0LmZvcm0tbGFiZWwge1xuXHRcdGNvbG9yOiAkY29sb3I7XG5cdH1cblxuXHQuZm9ybS1pbnB1dCB7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0XHRib3JkZXItY29sb3I6ICRjb2xvcjtcblxuXHRcdCY6Zm9jdXMge1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuXHRcdH1cblx0fVxuXG5cdC5mb3JtLW1lc3NhZ2Uge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGNvbG9yOiAkY29sb3I7XG5cdH1cbn1cblxuXG4vLyBNaXhpbiBmb3IgZm9ybSBmaWVsZCBzdGF0ZXNcbkBtaXhpbiBrby1mb3JtRmllbGRTdGF0ZU1hdGVyaWFsKCRjb2xvcikge1xuXHQuZm9ybS1pbnB1dEJhciB7XG5cdFx0Ym9yZGVyLWNvbG9yOiAkY29sb3I7XG5cdH1cblxuXHQuZm9ybS1tZXNzYWdlIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG59XG4iLCIvKipcbiAqIEN1c3RvbSBDaGVja2JveGVzIGFuZCByYWRpb3NcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogSUU5K1xuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICogQ2hlY2tib3ggYnV0dG9uIGV4YW1wbGUgSFRNTFxuICpcbiAqXHQ8bGFiZWwgY2xhc3M9XCJjb250cm9sIGNvbnRyb2wtLWN1c3RvbVwiIGZvcj1cImNoZWNrYm94MVwiPlxuXHRcdDxpbnB1dCBjbGFzcz1cImNvbnRyb2wtLWN1c3RvbS1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIGlkPVwiY2hlY2tib3gxXCIgbmFtZT1cIm15Q2hlY2tib3hcIiB2YWx1ZT1cIkEgdmFsdWVcIi8+XG5cdFx0XHQ8c3BhbiBjbGFzcz1cImNvbnRyb2wtaW5kaWNhdG9yIGNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveFwiPjwvc3Bhbj5cblx0XHRcdE15IENoZWNrYm94IExhYmVsIFRleHRcblx0XHQ8L2xhYmVsPlxuICpcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqXG4gKiBSYWRpbyBidXR0b24gZXhhbXBsZSBIVE1MXG4gKlxuICpcdDxsYWJlbCBjbGFzcz1cImNvbnRyb2wgY29udHJvbC0tY3VzdG9tXCIgZm9yPVwicmFkaW8xXCI+XG4gKlx0XHQ8aW5wdXQgY2xhc3M9XCJjb250cm9sLS1jdXN0b20taW5wdXRcIiB0eXBlPVwicmFkaW9cIiBpZD1cInJhZGlvMVwiIG5hbWU9XCJteVJhZGlvQnRuXCIgdmFsdWU9XCJBIHZhbHVlXCIvPlxuICpcdFx0PHNwYW4gY2xhc3M9XCJjb250cm9sLWluZGljYXRvciBjb250cm9sLWluZGljYXRvci0tcmFkaW9cIj48L3NwYW4+XG4gKlx0XHRNeSBSYWRpbyBCdXR0b24gTGFiZWwgVGV4dFxuICogXHQ8L2xhYmVsPlxuICpcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gJGN1c3RvbS1pbnB1dC1jb2xvcjogJGNvbG9yLXByaW1hcnk7XG4kY3VzdG9tLWlucHV0LWNvbG9yOiAkY29sb3ItcHJpbWFyeTtcbiRjdXN0b20taW5wdXQtc2VsZWN0ZWQtY29sb3I6ICRjb2xvci1iZztcbiRjdXN0b20taW5wdXQtbGVuZ3RoOiAxLjNlbTtcbiRjdXN0b20taW5wdXQtYm9yZGVyLXdpZHRoOiAxcHg7XG4kY3VzdG9tLWlucHV0LWJvcmRlckNvbG9yOiAjY2NjICFkZWZhdWx0O1xuJGN1c3RvbS1pbnB1dC1ib3JkZXJDb2xvci0tZm9jdXM6ICRjb2xvci1wcmltYXJ5ICFkZWZhdWx0O1xuJGNoZWNrYm94LWluZGljYXRvci13aWR0aDogMC4xZW07XG5cbi5jb250cm9sLS1jdXN0b20ge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXHRwYWRkaW5nLWxlZnQ6ICRjdXN0b20taW5wdXQtbGVuZ3RoICsgMWVtO1xuXHRoZWlnaHQ6ICRjdXN0b20taW5wdXQtbGVuZ3RoO1xuXHRsaW5lLWhlaWdodDogJGN1c3RvbS1pbnB1dC1sZW5ndGggIWltcG9ydGFudDtcbn1cblxuLy8gR2l2ZSBpbmxpbmUgZWxlbWVudHMgc29tZSBzcGFjZSB0byB0aGUgcmlnaHRcbi5jb250cm9sLS1jdXN0b20tLWlubGluZSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cGFkZGluZy1yaWdodDogMmVtO1xufVxuXG4vLyBUaGUgaGlkZGVuIGlucHV0XG4uY29udHJvbC0tY3VzdG9tLWlucHV0IHtcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHRvcGFjaXR5OiAwO1xuXHR6LWluZGV4OiAtMTsgLy8gUHV0IHRoZSBpbnB1dCBiZWhpbmQgdGhlIGxhYmVsIHNvIGl0IGRvZXNuJ3Qgb3ZlcmxheSB0ZXh0XG59XG5cbi8vIFRoZSBuZXcgY2hlY2tib3gvcmFkaW9cbi5jb250cm9sLWluZGljYXRvciB7XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0bGVmdDogMDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogJGN1c3RvbS1pbnB1dC1sZW5ndGg7XG5cdGhlaWdodDogJGN1c3RvbS1pbnB1dC1sZW5ndGg7XG5cdHRyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb247XG5cdGJvcmRlcjogJGN1c3RvbS1pbnB1dC1ib3JkZXItd2lkdGggc29saWQgJGN1c3RvbS1pbnB1dC1ib3JkZXJDb2xvcjtcblx0YmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1pbnB1dC1ib3JkZXJDb2xvcjtcblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0bWFyZ2luLXRvcDogMDtcblx0Ym94LXNoYWRvdzogMCAwIDAgMnB4IHRyYW5zcGFyZW50LCAwIDAgMCAwIHRyYW5zcGFyZW50OyAvLyBVc2VkIHRvIGFuaW1hdGUgZnJvbSB3aGVuIGVsZW1lbnQgaXMgaW4gOmZvY3VzXG59XG5cbi8vIDpmb2N1cyBzdHlsZXNcbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Zm9jdXMgfiAuY29udHJvbC1pbmRpY2F0b3Ige1xuXHRib3gtc2hhZG93OiAwIDAgMCAycHggJGNvbG9yLWJnLCAwIDAgMCAzcHggJGN1c3RvbS1pbnB1dC1ib3JkZXJDb2xvci0tZm9jdXM7XG59XG5cbi8vIENoZWNrYm94IG1vZGlmaWVyc1xuLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveCxcbi5jb250cm9sLWluZGljYXRvci0tdGlja2JveCB7XG5cdGJvcmRlci1yYWRpdXM6IC4yZW07IC8vIENoYW5nZSB0byA1MCUgdG8gbWFrZSB0aGVtIGNpcmN1bGFyXG5cblx0JjpiZWZvcmUsXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDUwJTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0d2lkdGg6IDkwJTtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRvcGFjaXR5OiAwOyAvLyBpbmRpY2F0b3Igd2lsbCBiZSBmYWRlZCBvdXQgd2hlbiBkZXNlbGVjdGVkXG5cdFx0dHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2UtaW4tb3V0O1xuXHR9XG59XG5cbi5jb250cm9sLWluZGljYXRvci0tY2hlY2tib3gge1xuXG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHR0b3A6IDUwJTtcblx0XHR3aWR0aDogOTAlO1xuXHRcdGhlaWdodDogMC4xZW07XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGN1c3RvbS1pbnB1dC1zZWxlY3RlZC1jb2xvcjtcblx0fVxuXG5cdCY6YmVmb3JlIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoNDVkZWcpIHNjYWxlKDApO1xuXHR9XG5cblx0JjphZnRlciB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSkgcm90YXRlKC00NWRlZykgc2NhbGUoMCk7XG5cdH1cbn1cblxuLmNvbnRyb2wtaW5kaWNhdG9yLS10aWNrYm94IHtcblxuXHQmOmJlZm9yZSB7XG5cdFx0dG9wOiAwO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSByb3RhdGUoNDVkZWcpIHNjYWxlKDApO1xuXHRcdGJvcmRlcjogJGNoZWNrYm94LWluZGljYXRvci13aWR0aCBzb2xpZCAkY3VzdG9tLWlucHV0LXNlbGVjdGVkLWNvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRcdHdpZHRoOiA0MCU7XG5cdFx0aGVpZ2h0OiA4MCU7XG5cdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRib3JkZXItbGVmdDogMDtcblx0fVxuXG5cdCY6YWZ0ZXIge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuLmNvbnRyb2wtLWN1c3RvbS1pbnB1dDpjaGVja2VkIH4gLmNvbnRyb2wtaW5kaWNhdG9yLS1jaGVja2JveCxcbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Y2hlY2tlZCB+IC5jb250cm9sLWluZGljYXRvci0tdGlja2JveCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20taW5wdXQtY29sb3I7XG5cdGJvcmRlcjogJGNoZWNrYm94LWluZGljYXRvci13aWR0aCBzb2xpZCAkY3VzdG9tLWlucHV0LWNvbG9yO1xuXG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHRvcGFjaXR5OiAxO1xuXHR9XG59XG5cbi5jb250cm9sLS1jdXN0b20taW5wdXQ6Y2hlY2tlZCB+IC5jb250cm9sLWluZGljYXRvci0tdGlja2JveCB7XG5cdCY6YmVmb3JlLFxuXHQmOmFmdGVyIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKSBzY2FsZSgxKTtcblx0fVxufVxuXG4uY29udHJvbC0tY3VzdG9tLWlucHV0OmNoZWNrZWQgfiAuY29udHJvbC1pbmRpY2F0b3ItLWNoZWNrYm94IHtcblx0JjpiZWZvcmUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSg0NWRlZykgc2NhbGUoMSk7XG5cdH1cblxuXHQmOmFmdGVyIHtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoLTQ1ZGVnKSBzY2FsZSgxKTtcblx0fVxufVxuXG5cbi8vIFJhZGlvIG1vZGlmaWVyc1xuLmNvbnRyb2wtaW5kaWNhdG9yLS1yYWRpbyB7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcbn1cblxuLmNvbnRyb2wtLWN1c3RvbS1pbnB1dDpjaGVja2VkIH4gLmNvbnRyb2wtaW5kaWNhdG9yLS1yYWRpbyB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjdXN0b20taW5wdXQtc2VsZWN0ZWQtY29sb3I7XG5cdGJvcmRlcjogLjNlbSBzb2xpZCAkY3VzdG9tLWlucHV0LWNvbG9yO1xufVxuIiwiLyoqXG4gKiBDdXN0b20gc2VsZWN0IGVsZW1lbnRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRmlyZWZveCAzOSssIElFMTArXG4gKlxuICpcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cFwiPlxuXHRcdFx0PGxhYmVsIGZvcj1cImNzLWNob2ljZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkN1c3RvbSBzZWxlY3Q8L2xhYmVsPlxuXHRcdFx0PGRpdiBjbGFzcz1cImZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlciBmb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXItLXNlbGVjdFwiPlxuXHRcdFx0XHQ8c2VsZWN0IGlkPVwiY3MtY2hvaWNlXCIgbmFtZT1cImNzLWNob2ljZVwiIGNsYXNzPVwiZm9ybS1pbnB1dCBmb3JtLWlucHV0LS1zZWxlY3RcIj5cblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiLS1cIj5TZWxlY3QgdGl0bGU8L29wdGlvbj5cblx0XHRcdFx0XHQ8b3B0aW9uIHZhbHVlPVwiTXJcIj5Ncjwvb3B0aW9uPlxuXHRcdFx0XHRcdDxvcHRpb24gdmFsdWU9XCJNcnNcIj5NcnM8L29wdGlvbj5cblx0XHRcdFx0PC9zZWxlY3Q+XG5cdFx0XHQ8L2Rpdj5cblx0PC9kaXY+XG4gKi9cblxuLmZvcm0tY29udHJvbEdyb3VwLWlucHV0V3JhcHBlci0tc2VsZWN0IHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRkaXNwbGF5OiBibG9jaztcblx0cGFkZGluZzogMDtcblxuXHQvKiBDdXN0b20gYXJyb3cgc2l0cyBvbiB0b3Agb2YgdGhlIHNlbGVjdCAtIGNvdWxkIGJlIGFuIGltYWdlLCBTVkcsIGljb24gZm9udCwgZXRjLiBvciB0aGUgYXJyb3cgY291bGQganVzdCBiYWtlZCBpbnRvIHRoZSBiZyBpbWFnZSBvbiB0aGUgc2VsZWN0ICovXG5cdCY6YWZ0ZXIge1xuXHRcdGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcblx0XHRjb250ZW50OiBcIlxcMjVCQ1wiO1xuXHRcdGZvbnQtc2l6ZTogLjdlbTtcblx0XHRwYWRkaW5nOiAwO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogMS4yZW07XG5cdFx0dG9wOiAxLjJlbTtcblx0XHR6LWluZGV4OiAyO1xuXG5cdFx0LyogVGhlc2UgaGFja3MgbWFrZSB0aGUgc2VsZWN0IGJlaGluZCB0aGUgYXJyb3cgY2xpY2thYmxlIGluIHNvbWUgYnJvd3NlcnMgKi9cblx0XHQtbXMtcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0cG9pbnRlci1ldmVudHM6IG5vbmU7XG5cdFx0YmFja2dyb3VuZDogdXJsKCMpO1xuXHR9XG5cblx0Ly8gSGlkZSBjdXN0b20gYXJyb3cgb24gSUUgPD0xMVxuXHRAbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cblxuXHQuZm9ybS1pbnB1dC0tc2VsZWN0IHtcblx0XHRhcHBlYXJhbmNlOiBub25lO1xuXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHtcblx0XHRcdC8vIFJlbW92ZXMgdGhlIG9kZCBibHVlIGJnIGNvbG9yIGJlaGluZCB0aGUgdGV4dCBpbiBJRSAxMC8xMSBhbmQgc2V0cyB0aGUgdGV4dCB0byBtYXRjaCB0aGUgZm9jdXMgc3R5bGUgdGV4dFxuXHRcdFx0Jjpmb2N1czo6LW1zLXZhbHVlIHtcblx0XHRcdFx0YmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cdFx0XHRcdGNvbG9yOiAjMjIyO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5vcHRpb24ge1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xufVxuIiwiLyoqXG4gKiBDdXN0b20gZmlsZSBpbnB1dFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiA8ZGl2IGNsYXNzPVwiZm9ybS1jb250cm9sR3JvdXBcIj5cblx0XHQ8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiZmlsZVwiPkZpbGUgdXBsb2FkPC9sYWJlbD5cblxuXHRcdDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xHcm91cC1pbnB1dFdyYXBwZXJcIj5cblx0XHRcdDxsYWJlbCBjbGFzcz1cImZvcm0taW5wdXQgZm9ybS1pbnB1dC0tZmlsZVwiPlxuXHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZvcm0taW5wdXQtLWZpbGUtdGV4dFwiPkNob29zZSBmaWxlLi48L3NwYW4+XG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiZm9ybS1pbnB1dC0tZmlsZS1idXR0b25cIj5Ccm93c2U8L3NwYW4+XG5cdFx0XHRcdDxpbnB1dCBjbGFzcz1cImZvcm0taW5wdXQtLWZpbGUtaW5wdXRcIiB0eXBlPVwiZmlsZVwiIGlkPVwiZmlsZVwiIGFjY2VwdD1cImltYWdlLypcIiBzaXplPVwiMTRcIiAvPlxuXHRcdFx0PC9sYWJlbD5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG4gKi9cbiRjdXN0b20taW5wdXQtYm9yZGVyQ29sb3I6ICNjY2MgIWRlZmF1bHQ7XG5cbi8qKlxuICogQ3VzdG9tIGZpbGUgaW5wdXRcbiAqL1xuLmZvcm0taW5wdXQtLWZpbGUge1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmctcmlnaHQ6IDEyMHB4O1xuXHR0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcblx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLmZvcm0taW5wdXQtLWZpbGUtaW5wdXQge1xuXHRvcGFjaXR5OiAwO1xuXHR2aXNpYmlsaXR5OiBoaWRkZW47XG5cdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0dG9wOiAwO1xuXHRsZWZ0OiAwO1xufVxuXG4uZm9ybS1pbnB1dC0tZmlsZS1idXR0b24ge1xuXHRjdXJzb3I6IHBvaW50ZXI7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0cG9zaXRpb246IGFic29sdXRlO1xuXHR0b3A6IDA7XG5cdHJpZ2h0OiAtMXB4O1xuXHRib3R0b206IDA7XG5cdHBhZGRpbmc6IC40NGVtIDFlbSAwO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjdXN0b20taW5wdXQtYm9yZGVyQ29sb3IsIDUlKTtcblxuXHQmOmhvdmVyIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY3VzdG9tLWlucHV0LWJvcmRlckNvbG9yO1xuXHR9XG59XG4iLCIvKipcbiAqIExpbmtzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuXG5hIHtcblx0dHJhbnNpdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbjtcblxuXHQmLCAmOmxpbmsge1xuXHRcdGNvbG9yOiAkY29sb3ItbGluay1kZWZhdWx0O1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6dmlzaXRlZCB7XG5cdFx0Y29sb3I6ICRjb2xvci1saW5rLXZpc2l0ZWQ7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHR9XG5cblx0Jjpob3ZlciwgJjpmb2N1cyB7XG5cdFx0Y29sb3I6ICRjb2xvci1saW5rLWhvdmVyO1xuXHRcdC8vdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cdH1cblxuXHQmOmFjdGl2ZSB7XG5cdFx0Y29sb3I6ICRjb2xvci1saW5rLWFjdGl2ZTtcblx0XHQvL3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHR9XG59XG4iLCIvKipcbiAqIEJ1dHRvbnNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogLSBBc3NvY2lhdGVkIEJ1dHRvbiBWYXJpYWJsZXNcbiAqIC0gQmFzZSBidXR0b24gc3R5bGluZ1xuICog4oCTIEJ1dHRvbiBNb2RpZmllcnNcbiAqIFx0IOKAkyBidG4tLXByaW1hcnlcbiAqICAg4oCTIGJ0bi0tYmxvY2tcbiAqL1xuXG5cbi8qKlxuICogRGVmaW5lIGFzc29jaWF0ZWQgQnV0dG9uIHZhcmlhYmxlc1xuICovXG4kYnRuLWJvcmRlclJhZGl1cyAgICAgICAgICAgICAgICA6IDVweDtcbiRidG4tZGVmYXVsdC1iZ0NvbG9yICAgICAgICAgICAgIDogJGdyYXk7XG4kYnRuLWRlZmF1bHQtYmdDb2xvci0taGlnaGxpZ2h0ICA6IGRhcmtlbigkYnRuLWRlZmF1bHQtYmdDb2xvciwgMTAlKTtcblxuJGJ0bi1wcmltYXJ5LWJnQ29sb3IgICAgICAgICAgICAgOiAkY29sb3ItbGluay1kZWZhdWx0O1xuJGJ0bi1wcmltYXJ5LWJnQ29sb3ItLWhpZ2hsaWdodCAgOiBkYXJrZW4oJGJ0bi1wcmltYXJ5LWJnQ29sb3IsIDEwJSk7XG5cblxuLyoqXG4gKiBCYXNlIGJ1dHRvbiBzdHlsZXMg4oCTIEJhc2VkIG9uIGNzc3dpemFyZHJ5LmNvbS9iZWF1dG9uc1xuICpcbiAqIDEuIEFsbG93IHVzIHRvIGJldHRlciBzdHlsZSBib3ggbW9kZWwgcHJvcGVydGllcy5cbiAqIDIuIExpbmUgZGlmZmVyZW50IHNpemVkIGJ1dHRvbnMgdXAgYSBsaXR0bGUgbmljZXIuXG4gKiAzLiBTdG9wIGJ1dHRvbnMgd3JhcHBpbmcgYW5kIGxvb2tpbmcgYnJva2VuLlxuICogNC4gTWFrZSBidXR0b25zIGluaGVyaXQgZm9udCBzdHlsZXMuXG4gKiA1LiBGb3JjZSBhbGwgZWxlbWVudHMgdXNpbmcgYmVhdXRvbnMgdG8gYXBwZWFyIGNsaWNrYWJsZS5cbiAqIDYuIE5vcm1hbGlzZSBib3ggbW9kZWwgc3R5bGVzLlxuICogNy4gSWYgdGhlIGJ1dHRvbuKAmXMgdGV4dCBpcyAxZW0sIGFuZCB0aGUgYnV0dG9uIGlzICgzICogZm9udC1zaXplKSB0YWxsLCB0aGVuXG4gKiAgICB0aGVyZSBpcyAxZW0gb2Ygc3BhY2UgYWJvdmUgYW5kIGJlbG93IHRoYXQgdGV4dC4gV2UgdGhlcmVmb3JlIGFwcGx5IDFlbVxuICogICAgb2Ygc3BhY2UgdG8gdGhlIGxlZnQgYW5kIHJpZ2h0LCBhcyBwYWRkaW5nLCB0byBrZWVwIGNvbnNpc3RlbnQgc3BhY2luZy5cbiAqIDguIEZpeGVzIG9kZCBpbm5lciBzcGFjaW5nIGluIElFNy5cbiAqIDkuIERvbuKAmXQgYWxsb3cgYnV0dG9ucyB0byBoYXZlIHVuZGVybGluZXM7IGl0IGtpbmRhIHJ1aW5zIHRoZSBpbGx1c2lvbi5cbiAqMTAuIFByZXZlbnRzIGZyb20gaW5oZXJpdGluZyBkZWZhdWx0IGFuY2hvciBzdHlsZXMuXG4gKi9cblxuLmJ0biB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jazsgICAgICAvKiBbMV0gKi9cblx0dmVydGljYWwtYWxpZ246IG1pZGRsZTsgICAgIC8qIFsyXSAqL1xuXHR3aGl0ZS1zcGFjZTogbm93cmFwOyAgICAgICAgLyogWzNdICovXG5cdGZvbnQtZmFtaWx5OiBpbmhlcml0OyAgICAgICAvKiBbNF0gKi9cblx0Zm9udC1zaXplOiAxMDAlOyAgICAgICAgICAgIC8qIFs0XSAqL1xuXHRjdXJzb3I6IHBvaW50ZXI7ICAgICAgICAgICAgLyogWzVdICovXG5cdGJvcmRlcjogbm9uZTsgICAgICAgICAgICAgICAvKiBbNl0gKi9cblx0bWFyZ2luOiAwOyAgICAgICAgICAgICAgICAgIC8qIFs2XSAqL1xuXHRwYWRkaW5nLXRvcDogICAgMDsgICAgICAgICAgLyogWzZdICovXG5cdHBhZGRpbmctYm90dG9tOiAwOyAgICAgICAgICAvKiBbNl0gKi9cblx0bGluZS1oZWlnaHQ6IDIuNTsgICAgICAgICAgIC8qIFs3XSAqL1xuXHRoZWlnaHQ6ICAgICAgMi41ZW07ICAgICAgICAgLyogWzddICovXG5cdHBhZGRpbmctcmlnaHQ6IDEuNWVtOyAgICAgICAvKiBbN10gKi9cblx0cGFkZGluZy1sZWZ0OiAxLjVlbTsgICAgICAgIC8qIFs3XSAqL1xuXHRvdmVyZmxvdzogdmlzaWJsZTsgICAgICAgICAgLyogWzhdICovXG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Ym9yZGVyLXJhZGl1czogJGJ0bi1ib3JkZXJSYWRpdXM7XG5cdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdC8vIFlvdSBtYXkgd2FudCB0byBjaGFuZ2UgdGhpc1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLWRlZmF1bHQtYmdDb2xvcjtcblxuXHQmLFxuXHQmOmxpbmssXG5cdCY6dmlzaXRlZCB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSxcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJ0bi1kZWZhdWx0LWJnQ29sb3ItLWhpZ2hsaWdodDtcblx0fVxuXG5cdCYsXG5cdCY6aG92ZXIsXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzLFxuXHQmOnZpc2l0ZWQge1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6YWN0aXZlLFxuXHQmOmZvY3VzIHtcblx0XHRvdXRsaW5lOiBub25lO1xuXHR9XG5cblx0Ly8gRGlzYWJsZWQgc3RhdGVcblx0Ji5kaXNhYmxlZCxcblx0JltkaXNhYmxlZF0ge1xuXHRcdGN1cnNvcjogZGVmYXVsdDtcblx0XHRiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuXHRcdG9wYWNpdHk6IC41O1xuXHR9XG59XG5cbi8vIFNldCB0aGUgYmFja2dyb3VuZHNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5idG4tLXByaW1hcnkge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkYnRuLXByaW1hcnktYmdDb2xvcjtcblxuXHQmLFxuXHQmOmxpbmssXG5cdCY6dmlzaXRlZCB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cblxuXHQmOmhvdmVyLFxuXHQmOmFjdGl2ZSxcblx0Jjpmb2N1cyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogJGJ0bi1wcmltYXJ5LWJnQ29sb3ItLWhpZ2hsaWdodDtcblx0fVxufVxuXG4vLyBCbG9jayBidXR0b25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi5idG4tLWJsb2NrIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdHdpZHRoOiAxMDAlO1xuXHRwYWRkaW5nLWxlZnQ6IDA7XG5cdHBhZGRpbmctcmlnaHQ6IDA7XG5cblx0Ly8gVmVydGljYWxseSBzcGFjZSBvdXQgbXVsdGlwbGUgYmxvY2sgYnV0dG9uc1xuXHQvLyBzYW1lIGFkIC5idG4tLWJsb2NrICsgLmJ0bi0tYmxvY2tcblx0JiArICYge1xuXHRcdG1hcmdpbi10b3A6IDEwcHg7XG5cdH1cbn1cblxuXG4vLyBTcGVjaWZpY2l0eSBvdmVycmlkZXNcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwiYnV0dG9uXCJdIHtcblx0Ji5idG4tLWJsb2NrIHtcblx0XHR3aWR0aDogMTAwJTtcblx0fVxufVxuIiwiLyoqXG4gKiBMaXN0c1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIChVbilvcmRlcmVkIGxpc3RzXG4gKiAtIFVuc3R5bGVkIGxpc3RzXG4gKiAtIERlZmluaXRpb24gbGlzdHNcbiAqIC0gQ2VudHJlZCBsaXN0c1xuICogLSBGbG9hdGVkIGxpc3RzXG4gKi9cblxudWwge1xuXHRsaXN0LXN0eWxlLXR5cGU6IGRpc2M7XG59XG5cbm9sIHtcblx0bGlzdC1zdHlsZS10eXBlOiBkZWNpbWFsO1xufVxuXG4vLyBVbm9yZGVyZWQgYW5kIE9yZGVyZWQgbGlzdHNcbi8vIEFkZCBhIC51bnN0eWxlZCBjbGFzcyB0byB1bm9yZGVyZWQvb3JkZXJlZCBsaXN0cyBpZiB5b3Ugd2FudCB0aGVtIHRvIGhhdmUgYnVsbGV0cy9udW1iZXJzXG51bCwgb2wge1xuXHRwYWRkaW5nOiAwO1xuXHRtYXJnaW46IDAgMCAkYmFzZWxpbmUgJGJhc2VsaW5lO1xuXG5cdHVsLFxuXHRvbCB7XG5cdFx0bWFyZ2luLWxlZnQ6ICRiYXNlbGluZSAqIDI7XG5cdH1cblxuXHR1bCB7XG5cdFx0bGlzdC1zdHlsZS10eXBlOiBjaXJjbGU7XG5cblx0XHR1bCB7XG5cdFx0XHRsaXN0LXN0eWxlLXR5cGU6IHNxdWFyZTtcblx0XHR9XG5cdH1cblxuXHRvbCB7XG5cdFx0bGlzdC1zdHlsZS10eXBlOiB1cHBlci1yb21hbjtcblxuXHRcdG9sIHtcblx0XHRcdGxpc3Qtc3R5bGUtdHlwZTogbG93ZXItcm9tYW47XG5cdFx0fVxuXHR9XG5cblx0dWwsIG9sIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHR9XG59XG5cbi8qKlxuICogVW5zdHlsZWQgbGlzdHNcbiAqL1xuLnVuc3R5bGVkIHtcblx0bWFyZ2luOiAwO1xuXHRwYWRkaW5nOiAwO1xuXHRsaXN0LXN0eWxlOiBub25lO1xuXHRsaXN0LXN0eWxlLWltYWdlOiBub25lO1xufVxuXG5cbi8qKlxuICogRGVmaW5pdGlvbiBsaXN0c1xuICovXG5kbCB7IG1hcmdpbi1ib3R0b206ICRiYXNlbGluZTsgfVxuZHQgeyBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7IH1cbmRkIHsgbWFyZ2luLWxlZnQ6ICRiYXNlbGluZTsgfVxuXG5cbi8qKlxuICogQ2VudHJlZCBsaXN0c1xuICpcbiAqIFVzYWdlOlxuXHQ8dWwgY2xhc3M9XCJsLWxpc3QtLWNlbnRyZWRcIj5cblx0XHQ8bGk+PC9saT5cblx0PC91bD5cbiAqL1xuXG4ubC1saXN0LS1jZW50cmVkLCAubC1saXN0LS1jZW50ZXJlZCB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblxuXHRsaSB7XG5cdFx0ZGlzcGxheTogaW5saW5lO1xuXHR9XG59XG5cblxuLyoqXG4gKiBGbG9hdGVkIGxpc3RzXG4gKiBVc2FnZTpcblx0PHVsIGNsYXNzPVwibC1saXN0LS1mbG9hdGVkXCI+XG5cdFx0PGxpPjwvbGk+XG5cdDwvdWw+XG4gKi9cblxuLmwtbGlzdC0tZmxvYXRlZCB7XG5cdEBpbmNsdWRlIGtvLWNsZWFyZml4O1xuXG5cdGxpIHtcblx0XHRmbG9hdDogbGVmdDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdH1cbn1cbiIsIi8qKlxuICogRW1iZWRkZWQgY29udGVudFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cblxuaW1nIHtcblx0Zm9udC1zdHlsZTogaXRhbGljO1xuXHRjb2xvcjogI2MwMDtcblx0Ym9yZGVyOiAwO1xuXHQtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljO1xufVxuXG4vLyBJbWFnZXMsIEZsYXNoICYgdmlkZW9cbmltZyxcbm9iamVjdCxcbmVtYmVkLFxudmlkZW8ge1xuXHRtYXgtd2lkdGg6IDEwMCU7XG59XG4iLCIvKipcbiAqIEljb25zXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEZvciBhbiBleGFtcGxlIG9mIGhvdyB0byB1c2UgdGhlc2UsIHNlZVxuICogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbXJtYXJ0aW5lYXUvMzE0YjAxYjMwMGZhMjBhNWE4MjBhNGQ2ODg5ZmZkNDJcbiAqIGh0dHA6Ly9jb2RlcGVuLmlvL21ybWFydGluZWF1L3Blbi9hbWtaQmI/ZWRpdG9ycz0xMTAwXG4gKlxuICogU1ZHIGljb24gdXNhZ2U6XG4gICA8c3ZnIHRpdGxlPVwiV2hhdHNhcHBcIiBjbGFzcz1cImljb24gaWNvbi0td2hhdHNhcHBcIj5cbiAgICAgPHVzZSB4bGluazpocmVmPVwiL2Fzc2V0cy9kaXN0L2ltZy9pY29ucy5zdmcjbG9nby13aGF0c2FwcFwiLz5cbiAgIDwvc3ZnPlxuICovXG5bY2xhc3MqPVwiaWNvblwiXSB7XG5cdHNwZWFrOiBub25lO1xufVxuXG4uaWNvbi0tbGFyZ2Uge1xuXHRkaXNwbGF5OiBibG9jaztcblx0d2lkdGg6IDEyMHB4O1xuXHRoZWlnaHQ6IDEyMHB4O1xufVxuXG4uaWNvbi0tc21hbGwge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHdpZHRoOiAyNXB4O1xuXHRoZWlnaHQ6IDI1cHg7XG59XG5cbi8qKlxuICogSW5jbHVkZWQgU29jaWFsIE1lZGlhIGFuZCBvdGhlciBpY29uc1xuICovXG4uaWNvbi0tdHdpdHRlciB7IGNvbG9yOiAkY29sb3ItdHdpdHRlcjsgfVxuLmljb24tLWZhY2Vib29rIHsgY29sb3I6ICRjb2xvci1mYWNlYm9vazsgfVxuLmljb24tLWluc3RhZ3JhbSB7IGNvbG9yOiAkY29sb3ItaW5zdGFncmFtOyB9XG4uaWNvbi0tcGludGVyZXN0IHsgY29sb3I6ICRjb2xvci1waW50ZXJlc3Q7IH1cbi5pY29uLS15b3V0dWJlIHsgY29sb3I6ICRjb2xvci15b3V0dWJlOyB9XG4uaWNvbi0td2hhdHNhcHAgeyBjb2xvcjogJGNvbG9yLXdoYXRzYXBwOyB9XG4uaWNvbi0tZW1haWwgeyBjb2xvcjogJGJsdWU7IH1cbi5pY29uLS1raWNrb2ZmIHsgY29sb3I6ICNmZmY7IH1cbiIsIi8qKlxuICogU2tpcCB0byBtYWluIGNvbnRlbnQgbGlua1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiA8ZGl2IGNsYXNzPVwic2tpcFRvQ29udGVudFwiPlxuXHQgXHQ8YSBocmVmPVwiI21haW5Db250ZW50XCIgY2xhc3M9XCJidG4gYnRuLS1wcmltYXJ5XCI+U2tpcCB0byBtYWluIGNvbnRlbnQ8L2E+XG5cdCA8L2Rpdj5cbiAqL1xuXG4uc2tpcFRvQ29udGVudCB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRoZWlnaHQ6IDA7XG5cblx0YSB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHRvcDogLTEwMHB4O1xuXHRcdHotaW5kZXg6IDEwMDtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRcdHRyYW5zaXRpb246ICRkZWZhdWx0LXRyYW5zaXRpb247XG5cblx0XHQmOmZvY3VzIHtcblx0XHRcdHRvcDogNXB4O1xuXHRcdH1cblx0fVxufVxuIiwiLyoqXG4gKiBQcmVmb3JtYXR0ZWQgY29kZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBDb2RlIHR5cG9ncmFwaHkgc3R5bGVzIGZvciB0aGUgPGNvZGU+IGFuZCA8cHJlPiBlbGVtZW50c1xuICovXG5cbi8qKlxuICogRGVmaW5lIGFzc29jaWF0ZWQgQ29kZSB2YXJpYWJsZXNcbiAqL1xuJGNvZGUtdGV4dENvbG9yICAgICAgICAgICAgICAgOiAjNDQ0O1xuJGNvZGUtYmdDb2xvciAgICAgICAgICAgICAgICAgOiAjZGRkO1xuJHByZS10ZXh0Q29sb3IgICAgICAgICAgICAgICAgOiAjNDQ0O1xuJHByZS1iZ0NvbG9yICAgICAgICAgICAgICAgICAgOiAjZGRkO1xuXG4vLyBJbmxpbmUgYW5kIGJsb2NrIGNvZGUgc3R5bGVzXG5jb2RlLFxucHJlIHtcblx0cGFkZGluZzogMCAzcHggMnB4O1xuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm87XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShzbWFsbCk7XG5cdGNvbG9yOiAkY29kZS10ZXh0Q29sb3I7XG5cdGJvcmRlci1yYWRpdXM6IDNweDtcblx0dGFiLXNpemU6IDM7XG59XG5cbi8vIElubGluZSBjb2RlXG5jb2RlIHtcblx0cGFkZGluZzogMnB4IDRweDtcblx0Y29sb3I6ICRjb2RlLXRleHRDb2xvcjtcblx0YmFja2dyb3VuZC1jb2xvcjogJGNvZGUtYmdDb2xvcjtcbn1cblxuLy8gQmxvY2tzIG9mIGNvZGVcbnByZSB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRwYWRkaW5nOiAkYmFzZWxpbmUgLyAyO1xuXHRtYXJnaW46IDAgMCAkYmFzZWxpbmU7XG5cdC8vIGxpbmUtaGVpZ2h0OiAkbGVhZGluZy1iYXNlO1xuXHRjb2xvcjogJHByZS10ZXh0Q29sb3I7XG5cdGJhY2tncm91bmQtY29sb3I6ICRwcmUtYmdDb2xvcjtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHR3aGl0ZS1zcGFjZTogcHJlO1xuXHQvLyB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG5cdC8vIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcblx0Ly8gd29yZC13cmFwOiBicmVhay13b3JkO1xuXG5cdC8vIEFjY291bnQgZm9yIHNvbWUgY29kZSBvdXRwdXRzIHRoYXQgcGxhY2UgY29kZSB0YWdzIGluIHByZSB0YWdzXG5cdGNvZGUge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Y29sb3I6ICRwcmUtdGV4dENvbG9yO1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRwcmUtYmdDb2xvcjtcblx0XHRib3JkZXI6IDA7XG5cdH1cbn1cblxuLy8gRW5hYmxlIHNjcm9sbGFibGUgYmxvY2tzIG9mIGNvZGVcbi5wcmUtLXNjcm9sbGFibGUge1xuXHRtYXgtaGVpZ2h0OiAzNDBweDtcblx0b3ZlcmZsb3cteTogc2Nyb2xsO1xufVxuIiwiLyoqXG4gKiBUYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogLSBBc3NvY2lhdGVkIFRhYmxlIFZhcmlhYmxlc1xuICogLSBEZWZhdWx0IHRhYmxlIFN0eWxlc1xuICog4oCTIFRhYmxlIG1vZGlmaWVyczpcbiAqICAgLSAudGFibGUtLXN0cmlwZWRcbiAqIOKAkyAucmVzcG9uc2l2ZVRhYmxlXG4gKi9cblxuLyoqXG4gKiBEZWZpbmUgYXNzb2NpYXRlZCBUYWJsZSB2YXJpYWJsZXNcbiAqL1xuJHRhYmxlLWJnQ29sb3IgICAgICAgICAgICAgICAgOiAkY29sb3ItYmcgIWRlZmF1bHQ7IC8vIERlZmF1bHQgYmFja2dyb3VuZCBjb2xvciB1c2VkIGZvciBhbGwgdGFibGVzLlxuJHRhYmxlLWJnQ29sb3ItLWFjY2VudCAgICAgICAgOiAjZjlmOWY5ICFkZWZhdWx0OyAvLyBCYWNrZ3JvdW5kIGNvbG9yIHVzZWQgZm9yIGAudGFibGUtc3RyaXBlZGAuXG4kdGFibGUtYmdDb2xvci0taG92ZXIgICAgICAgICA6IGluaGVyaXQgIWRlZmF1bHQ7IC8vIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgYC50YWJsZS1ob3ZlcmAg4oCTIHNldCB0byAnaW5oZXJpdCcgYnkgZGVmYXVsdCAoc28gbm8gaG92ZXIgZWZmZWN0KVxuJHRhYmxlLWJvcmRlckNvbG9yICAgICAgICAgICAgOiAjY2NjICFkZWZhdWx0OyAvLyBCb3JkZXIgY29sb3IgZm9yIHRhYmxlIGFuZCBjZWxsIGJvcmRlcnMuXG5cbi8qKlxuICogQ3VzdG9taXplcyB0aGUgYC50YWJsZWAgY29tcG9uZW50IHdpdGggYmFzaWMgdmFsdWVzLCBlYWNoIHVzZWQgYWNyb3NzIGFsbCB0YWJsZSB2YXJpYXRpb25zLlxuICovXG4kdGFibGUtY2VsbC1wYWRkaW5nICAgICAgICAgICA6IDhweCAhZGVmYXVsdDsgLy8gUGFkZGluZyBmb3IgYDx0aD5gcyBhbmQgYDx0ZD5gcy5cblxuXG4vLyBCYXNlbGluZSBzdHlsZXNcbnRhYmxlIHtcblx0d2lkdGg6IDEwMCU7XG5cdG1heC13aWR0aDogMTAwJTtcblx0bWFyZ2luLWJvdHRvbTogJGJhc2VsaW5lO1xuXHRib3JkZXItc3BhY2luZzogMDtcblx0Ym9yZGVyOiAycHggc29saWQgJHRhYmxlLWJvcmRlckNvbG9yO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmdDb2xvcjtcblx0dGFibGUtbGF5b3V0OiBmaXhlZDsgLy8gaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9maXhpbmctdGFibGVzLWxvbmctc3RyaW5ncy9cblxuXHQvLyBDZWxsc1xuXHR0aCxcblx0dGQge1xuXHRcdHBhZGRpbmc6ICR0YWJsZS1jZWxsLXBhZGRpbmc7XG5cdFx0bGluZS1oZWlnaHQ6ICRiYXNlbGluZTtcblx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXJDb2xvcjtcblxuXHRcdCY6Zmlyc3QtY2hpbGQge1x0Ym9yZGVyLWxlZnQ6IDA7XHR9XG5cdFx0JjpsYXN0LWNoaWxkIHtcdGJvcmRlci1yaWdodDogMDtcdH1cblx0fVxuXG5cdC8vIEJvdHRvbSBhbGlnbiBmb3IgY29sdW1uIGhlYWRpbmdzXG5cdD4gdGhlYWQge1xuXHRcdHRoLFxuXHRcdHRkIHtcblx0XHRcdHZlcnRpY2FsLWFsaWduOiBib3R0b207XG5cdFx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgJHRhYmxlLWJvcmRlckNvbG9yO1xuXHRcdH1cblx0fVxuXG5cdD4gdGZvb3QgdGQge1xuXHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCAkdGFibGUtYm9yZGVyQ29sb3I7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMDtcblx0fVxuXG5cdC8vIFJlbW92ZSB0b3AgYm9yZGVyIGZyb20gdGhlYWQgYnkgZGVmYXVsdFxuXHQ+IHRoZWFkOmZpcnN0LWNoaWxkIHtcblx0XHQ+IHRyOmZpcnN0LWNoaWxkIHtcblx0XHRcdD4gdGgsXG5cdFx0XHQ+IHRkIHtcblx0XHRcdFx0Ym9yZGVyLXRvcDogMDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBpZiBhIGhvdmVyIGNvbG9yIGhhcyBiZWVuIHNldCBpbiB0aGUgdmFyaWFibGVzXG5cdHRyOmhvdmVyIHtcblx0XHR0ZCwgdGgge1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJnQ29sb3ItLWhvdmVyO1xuXHRcdH1cblx0fVxuXG5cdC8vIEFjY291bnQgZm9yIG11bHRpcGxlIHRib2R5IGluc3RhbmNlc1xuXHQ+IHRib2R5ICsgdGJvZHkge1xuXHRcdGJvcmRlci10b3A6IDJweCBzb2xpZCAkdGFibGUtYm9yZGVyQ29sb3I7XG5cdH1cblxuXHQvLyBOZXN0aW5nXG5cdCYgdGFibGUsXG5cdCYgLnRhYmxlIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItYmc7XG5cdH1cbn1cblxudGgge1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG5cbi8qKlxuICogWmVicmEtc3RyaXBpbmdcbiAqIERlZmF1bHQgemVicmEtc3RyaXBlIHN0eWxlcyAoYWx0ZXJuYXRpbmcgZ3JheSBhbmQgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMpXG4gKi9cbi50YWJsZS0tc3RyaXBlZCB7XG5cdHRib2R5IDpudGgtY2hpbGQob2RkKSB0aCxcblx0dGJvZHkgOm50aC1jaGlsZChvZGQpIHRkIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAkdGFibGUtYmdDb2xvci0tYWNjZW50ICFpbXBvcnRhbnQ7XG5cdH1cbn1cblxuXG4vKipcbiAqIFJlc3BvbnNpdmUgdGFibGVzXG4gKiBXcmFwIHlvdXIgdGFibGVzIGluIGAucmVzcG9uc2l2ZVRhYmxlYCBhbmQgd2UnbGwgbWFrZSB0aGVtIG1vYmlsZSBmcmllbmRseSBieSBlbmFibGluZyBob3Jpem9udGFsIHNjcm9sbGluZy4gT25seSBhcHBsaWVzIDw3NjhweC4gRXZlcnl0aGluZyBhYm92ZSB0aGF0IHdpbGwgZGlzcGxheSBub3JtYWxseS5cbiAqXG4gKiBJZiB5b3UgbmVlZCBtb3JlIHJlc3BvbnNpdmUgdGFibGVzLCBjb25zaWRlciBUYWJsZXNhdyBieSB0aGUgRmlsYW1lbnQgR3JvdXA6XG4gKiBodHRwczovL2dpdGh1Yi5jb20vZmlsYW1lbnRncm91cC90YWJsZXNhd1xuICovXG4ucmVzcG9uc2l2ZVRhYmxlIHtcblx0QGluY2x1ZGUgbWVkaWEoJzxtaWQnKSB7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0bWFyZ2luLWJvdHRvbTogKCRsaW5lLWhlaWdodC1iYXNlICogLjc1KSArIHB4O1xuXHRcdG92ZXJmbG93LXk6IGhpZGRlbjtcblx0XHRvdmVyZmxvdy14OiBhdXRvO1xuXHRcdC1tcy1vdmVyZmxvdy1zdHlsZTogLW1zLWF1dG9oaWRpbmctc2Nyb2xsYmFyO1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXJDb2xvcjtcblx0XHQtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG5cblx0XHQvLyBUaWdodGVuIHVwIHNwYWNpbmdcblx0XHQ+IHRhYmxlIHtcblx0XHRcdG1hcmdpbi1ib3R0b206IDA7XG5cdFx0XHRib3JkZXI6IDA7XG5cblx0XHRcdC8vIEVuc3VyZSB0aGUgY29udGVudCBkb2Vzbid0IHdyYXBcblx0XHRcdD4gdGhlYWQsXG5cdFx0XHQ+IHRib2R5LFxuXHRcdFx0PiB0Zm9vdCB7XG5cdFx0XHRcdHRoLFxuXHRcdFx0XHR0ZCB7XG5cdFx0XHRcdFx0d2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuXHRcdFx0XHRcdC8vIE51a2UgdGhlIGFwcHJvcHJpYXRlIGJvcmRlcnMgc28gdGhhdCB0aGUgcGFyZW50IGNhbiBoYW5kbGUgdGhlbVxuXHRcdFx0XHRcdCY6Zmlyc3QtY2hpbGQge1x0Ym9yZGVyLWxlZnQ6IDA7IH1cblx0XHRcdFx0XHQmOmxhc3QtY2hpbGQge1x0Ym9yZGVyLXJpZ2h0OiAwOyB9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gT25seSBudWtlIHRoZSBsYXN0IHJvdydzIGJvdHRvbS1ib3JkZXIgaW4gYHRib2R5YCBhbmQgYHRmb290YCBzaW5jZVxuXHRcdFx0Ly8gY2hhbmNlcyBhcmUgdGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBgdHJgIGluIGEgYHRoZWFkYCBhbmQgdGhhdCB3b3VsZFxuXHRcdFx0Ly8gcmVtb3ZlIHRoZSBib3JkZXIgYWx0b2dldGhlci5cblx0XHRcdD4gdGJvZHksXG5cdFx0XHQ+IHRmb290IHRyOmxhc3QtY2hpbGQge1xuXHRcdFx0XHQ+IHRoLFxuXHRcdFx0XHQ+IHRkIHtcblx0XHRcdFx0XHRib3JkZXItYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbiIsIi8qKlxuICogTWFzdGhlYWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4ubWFzdGhlYWQge31cbiIsIi8qKlxuICogRm9vdGVyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLmZvb3RlciB7fVxuIiwiLyoqXG4gKiBCcm93c2VyIHVwZ3JhZGUgbWVzc2FnZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbi5icm93c2VydXBncmFkZSB7XG5cdG1hcmdpbjogLjJlbSAwO1xuXHRiYWNrZ3JvdW5kOiAjY2NjO1xuXHRjb2xvcjogIzAwMDtcblx0cGFkZGluZzogLjJlbSAwO1xufVxuIiwiLyoqXG4gKiBHbG9iYWwgYXBwL3NpdGUgc3R5bGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1iZztcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGxheW91dCBjb250YWluZXJcbiAqL1xuLmwtY29udGFpbmVyIHtcblx0d2lkdGg6IDkwJTtcblx0bWF4LXdpZHRoOiAjeyRsYXlvdXQtbWF4LXdpZHRofXB4O1xuXHRtYXJnaW46IDAgYXV0bztcbn1cbiIsIi8qKlxuICogSGVscGVyIGNsYXNzZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogTm9uLXNlbWFudGljIGhlbHBlciBjbGFzc2VzXG4gKi9cblxuLyoqXG4gKiBDbGVhcmZpeFxuICogaHR0cDovL3d3dy5jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbiAqIFNlZSBtaXhpbnMvX3V0aWxpdHkuc2NzcyBmb3IgYSBtaXhpbiB2ZXJzaW9uIG9mIHRoaXNcbiAqL1xuLmNsZWFyZml4OjphZnRlciB7XG5cdGNvbnRlbnQ6IFwiXCI7XG5cdGRpc3BsYXk6IHRhYmxlO1xuXHRjbGVhcjogYm90aDtcbn1cblxuXG4vLyBGb3IgYmFja2dyb3VuZCBpbWFnZSByZXBsYWNlbWVudFxuLmlyIHtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdGJvcmRlcjogMDtcblx0ZGlyZWN0aW9uOiBsdHI7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHR0ZXh0LWluZGVudDogLTk5OWVtO1xuXG5cdGJyIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cblxuLy8gSGlkZSBmcm9tIGJvdGggc2NyZWVucmVhZGVycyBhbmQgYnJvd3NlcnM6IGg1YnAuY29tL3Vcbi5pcy1oaWRkZW4ge1xuXHRkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG5cdHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4uaXMtc2hvd24geyBkaXNwbGF5OiBibG9jazsgfVxuXG4vLyBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVucmVhZGVyczogaDVicC5jb20vdlxuLmlzLXZpc3VhbGx5SGlkZGVuIHtcblx0Ym9yZGVyOiAwO1xuXHRjbGlwOiByZWN0KDAgMCAwIDApO1xuXHRoZWlnaHQ6IDFweDtcblx0bWFyZ2luOiAtMXB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwYWRkaW5nOiAwO1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHdpZHRoOiAxcHg7XG5cblx0Ly8gRXh0ZW5kcyB0aGUgLnZpc3VhbGx5aGlkZGVuIGNsYXNzIHRvIGFsbG93IHRoZSBlbGVtZW50IHRvIGJlIGZvY3VzYWJsZSB3aGVuIG5hdmlnYXRlZCB0byB2aWEgdGhlIGtleWJvYXJkOiBoNWJwLmNvbS9wXG5cdCYuZm9jdXNhYmxlOmFjdGl2ZSxcblx0Ji5mb2N1c2FibGU6Zm9jdXMge1xuXHRcdGNsaXA6IGF1dG87XG5cdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdG1hcmdpbjogMDtcblx0XHRvdmVyZmxvdzogdmlzaWJsZTtcblx0XHRwb3NpdGlvbjogc3RhdGljO1xuXHRcdHdpZHRoOiBhdXRvO1xuXHR9XG59XG5cbi8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVucmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuLmlzLWludmlzaWJsZSB7IHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4ubC1mbG9hdExlZnQge1xuXHRmbG9hdDogbGVmdDtcbn1cblxuLmwtZmxvYXRSaWdodCB7XG5cdGZsb2F0OiByaWdodDtcbn1cblxuLmwtY2xlYXIge1xuXHRjbGVhcjogYm90aDtcblx0ZmxvYXQ6IG5vbmU7XG59XG5cbi5sLW1iMCB7IG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDsgfVxuLmwtbXQwIHsgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50OyB9XG5cblxuKiB7XG5cdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbn1cblxuLyogQSBoYWNrIGZvciBIVE1MNSBjb250ZW50ZWRpdGFibGUgYXR0cmlidXRlIG9uIG1vYmlsZSAqL1xudGV4dGFyZWFbY29udGVudGVkaXRhYmxlXSB7XG5cdC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLnByb21vdGUtbGF5ZXIge1xuXHQvKlxuXHRUaGlzIG1heSBwcm9tb3RlIHRoZSBsYXllciB0byBhIGNvbXBvc2l0ZWRcblx0bGF5ZXIuXG5cblx0UmVwbGFjZSB3aXRoIHdpbGwtY2hhbmdlIHdoZW4gYXZhaWxhYmxlXG5cblx0I3BlcmZtYXR0ZXJzXG5cdCovXG5cdGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblxuLy8gQWRkIHRoZSBkZWZhdWx0IHRyYW5zaXRpb24gdG8gYW55IGVsZW1lbnRcbi50cmFuc2l0aW9uIHtcblx0dHJhbnNpdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbjtcbn1cblxuLy8gRmFzdGVyIHRhcHMgb24gbW9iaWxlIGRldmljZXNcbi8vIFNlZSBodHRwczovL2FkYWN0aW8uY29tL2pvdXJuYWwvMTAwMTkgZm9yIG1vcmUgaW5mb1xuYSxcbmFyZWEsXG5idXR0b24sXG5pbnB1dCxcbmxhYmVsLFxuc2VsZWN0LFxudGV4dGFyZWEsXG5bdGFiaW5kZXhdIHtcblx0dG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG59XG4iLCIvKipcbiAqIFByaW50IHN0eWxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cblxuQG1lZGlhIHByaW50IHtcblx0Kixcblx0KjpiZWZvcmUsXG5cdCo6YWZ0ZXIsXG5cdCo6Zmlyc3QtbGV0dGVyIHtcblx0XHRiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuXHRcdGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7IC8qIEJsYWNrIHByaW50cyBmYXN0ZXI6IGh0dHA6Ly93d3cuc2FuYmVpamkuY29tL2FyY2hpdmVzLzk1MyAqL1xuXHRcdGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcblx0XHR0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuXHR9XG5cblx0YSB7XG5cdFx0Jjp2aXNpdGVkIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdH1cblxuXHRcdCZbaHJlZl06YWZ0ZXIge1xuXHRcdFx0Y29udGVudDogXCIgKFwiIGF0dHIoaHJlZikgXCIpXCI7XG5cdFx0fVxuXHR9XG5cblx0YWJiclt0aXRsZV06YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjtcblx0fVxuXG5cdC8qXG5cdCAqIERvbid0IHNob3cgbGlua3MgZm9yIGltYWdlcywgb3IgamF2YXNjcmlwdC9pbnRlcm5hbCBsaW5rc1xuXHQgKi9cblx0LmlyIGE6YWZ0ZXIsXG5cdGFbaHJlZl49XCJqYXZhc2NyaXB0OlwiXTphZnRlcixcblx0YVtocmVmXj1cIiNcIl06YWZ0ZXIge1xuXHRcdGNvbnRlbnQ6IFwiXCI7XG5cdH1cblxuXHRwcmUsXG5cdGJsb2NrcXVvdGUge1xuXHRcdGJvcmRlcjogMXB4IHNvbGlkICM5OTk7XG5cdFx0cGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuXHR9XG5cblx0dGhlYWQge1xuXHRcdGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgLyogaDVicC5jb20vdCAqL1xuXHR9XG5cblx0dHIsXG5cdGltZyB7XG5cdFx0cGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuXHR9XG5cblx0aW1nIHtcblx0XHRtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcblx0fVxuXG5cdEBwYWdlIHtcblx0XHRtYXJnaW46IC41Y207XG5cdH1cblxuXHRwLCBoMiwgaDMge1xuXHRcdG9ycGhhbnM6IDM7XG5cdFx0d2lkb3dzOiAzO1xuXHR9XG5cblx0aDIsIGgzIHtcblx0XHRwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcblx0fVxufVxuIl19 */
diff --git a/assets/dist/css/styleguide.css b/assets/dist/css/styleguide.css
index e0bcbfe5..1608429b 100644
--- a/assets/dist/css/styleguide.css
+++ b/assets/dist/css/styleguide.css
@@ -1,33 +1,34 @@
@charset "UTF-8";
/**
- * Setup styleguide imports
+ * Kickoff Styleguide
+ * =================================
*/
/**
* Usage:
*
- * getVal(100, $map) - uses an integer
- * getVal(mid, $map) - uses a Sass map
- * getVal($foo, $map) - uses a Sass variable
+ * ko-getVal(100, $map) - uses an integer
+ * ko-getVal(mid, $map) - uses a Sass map
+ * ko-getVal($foo, $map) - uses a Sass variable
*/
/**
* Get breakpoints
*
- * bp()
+ * ko-bp()
*
* Usage:
- * bp(100) - uses an integer
- * bp(mid) - uses the $breakpoints Sass map
- * bp($foo) - uses a Sass variable
+ * ko-bp(100) - uses an integer
+ * ko-bp(mid) - uses the $breakpoints Sass map
+ * ko-bp($foo) - uses a Sass variable
*/
/**
* Get type size
*
- * type()
+ * ko-type()
*
* Usage:
- * type(100) - uses an integer
- * type(mid) - uses the $type Sass map
- * type($foo) - uses a Sass variable
+ * ko-type(100) - uses an integer
+ * ko-type(mid) - uses the $type Sass map
+ * ko-type($foo) - uses a Sass variable
*/
/**
* Usage:
@@ -42,10 +43,32 @@
);
div {
- font-size: map-deep-get($grid-configuration, 'columns');
- width: map-deep-get($grid-configuration, 'layouts', 'medium');
+ font-size: ko-map-deep-get($grid-configuration, 'columns');
+ width: ko-map-deep-get($grid-configuration, 'layouts', 'medium');
}
*/
+/**
+ * Modular scale
+ * =================================
+ * Usage: ko-modular-scale($font-size-base, 3, $type-scale)
+ * or with the shorthand version: ko-ms(3)
+ */
+/**
+ * Shorthand modular scale
+ * Uses the $font-size-base and $type-scale framework variables so that you
+ * only need to provide the scale increment
+ *
+ * e.g. ko-ms(5)
+ */
+/**
+ * Multiply
+ * =================
+ * Multiply any value
+ *
+ * Usage:
+ * ko-multiply(15, 2)
+ * ko-multiply($baseline, 1.5)
+ */
/**
* Sass Mixins
* - Responsive
@@ -66,30 +89,30 @@
/**
* Min-width media query:
* - Equivalent to: @media screen and (min-width: 20em) { ... }
- * - Usage: @include respond-min(mid) { ... };
+ * - Usage: @include ko-respond-min(mid) { ... };
*/
/**
* Max-width media query:
* - Equivalent to: @media screen and (max-width: 20em) { ... }
- * - Usage: @include respond-max(mid) { ... };
+ * - Usage: @include ko-respond-max(mid) { ... };
*/
/**
* Min-max-width media query:
* - Equivalent to: @media screen and (min-width: 10em) and (max-width: 20em) { ... }
- * - Usage: @include respond-min-max(narrow, 600) { ... };
+ * - Usage: @include ko-respond-min-max(narrow, 600) { ... };
*/
/**
* HiDPI mixin.
- * @include hidpi { ... };
+ * @include ko-hidpi { ... };
* Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
*/
/**
* Hidpi with a minimum width media query
- * @include hidpi-min(bp(mid), 1.5) { ... };
+ * @include ko-hidpi-min(bp(mid), 1.5) { ... };
*/
/**
* Hidpi with a max width media query
- * @include hidpi-max(bp(mid), 1.3) { ... };
+ * @include ko-hidpi-max(bp(mid), 1.3) { ... };
*/
/**
* Dimensions-based mixins
@@ -103,15 +126,15 @@
* Typography mixins
*/
/**
- * position
+ * ko-position
* Usage:
- * @include position(absolute, 10px 20px 30px 10px);
+ * @include ko-position(absolute, 10px 20px 30px 10px);
*/
/**
* vertical-center
* Vertically center any element. Needs support for CSS tranforms.
* Usage:
- * @include vertical-center;
+ * @include ko-vertical-center;
*/
/**
* Utility Mixins
@@ -134,7 +157,8 @@
* Usage: https://gist.github.com/mrmartineau/0cd2010bf265d712bafb
*/
/**
- * Global Color palette
+ * Global color palette
+ * =================================
* - Generic colors
* - Color scheme
* - Common colors
@@ -145,14 +169,17 @@
*/
/**
* Variables
+ * =================================
* - Typography
* - Breakpoints
* - Paths
* - Layout & Grid
* - App-specific
*/
+/* stylelint-disable indentation */
/**
* Typography
+ * =================================
*
* Base sizes:
* Set this in pixels (but do not add px),
@@ -160,16 +187,30 @@
*/
/**
* Breakpoints
+ * =================================
* There are no common breakpoints so these are just a suggestions
* You'll need to define your own breakpoints to suit your design
* Add your breakpoints to this Sass map
* Used in the Kickoff grid
*/
/**
- * Path vars
+ * Grid
+ * =================================
+ * These variables will control the grid module.
+ *
+ * if your project doesnt use Kickoff’s default grid, you can delete these
+ */
+/**
+ * Path variables
+ * =================================
+ */
+/**
+ * Z-index variables
+ * =================================
*/
/**
* App-specific variables
+ * =================================
*/
/**
* The Kickoff Flexbox Grid
@@ -182,6 +223,15 @@
* Breakpoint stacking
*/
/* Import Grid helpers and mixins */
+/**
+ * Grid Variables
+ * =================================
+ * These are defined here so that the grid can run as a standalone module (outside of Kickoff),
+ * as well as allowing these files to be generated into standard CSS.
+ *
+ * When importing the grid into your own project, copy the variables from this file into your own variables.scss
+ * They will then override the values specified here (as long as the grid is imported below where your own variables are defined).
+ */
/**
* Kickoff grid helpers
*/
@@ -196,7 +246,7 @@
/**
* Gutter Calculations
* Default: percent
- * Usage: gutterCalc() or gutterCalc(false)
+ * Usage: ko-gutterCalc() or ko-gutterCalc(false)
* When show-unit is true, returns the percentage, otherwise return a decimal
*/
/**
@@ -231,12 +281,14 @@
-webkit-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row; }
+ .g img {
+ max-width: 100%; }
.g-col {
display: block;
-webkit-box-flex: 1;
- -ms-flex: 1 0 0;
- flex: 1 0 0;
+ -ms-flex: 1 0 0%;
+ flex: 1 0 0%;
min-width: 0; }
/**
@@ -260,7 +312,9 @@
.g--stack > .g-col {
-ms-flex-preferred-size: 100%;
flex-basis: 100%;
- max-width: 100%;
+ max-width: 100%; }
+
+.g--stack.g--gutter--scaled > .g-col {
margin-left: 0; }
/**
@@ -281,15 +335,17 @@
.g--alignTop {
-webkit-box-align: start;
-ms-flex-align: start;
- -ms-grid-row-align: flex-start;
align-items: flex-start; }
.g--alignBottom {
-webkit-box-align: end;
-ms-flex-align: end;
- -ms-grid-row-align: flex-end;
align-items: flex-end; }
+.g--alignSelfBottom {
+ -ms-flex-item-align: end;
+ align-self: flex-end; }
+
.g--alignRight {
-webkit-box-pack: end;
-ms-flex-pack: end;
@@ -303,7 +359,6 @@
.g--alignCenter--v {
-webkit-box-align: center;
-ms-flex-align: center;
- -ms-grid-row-align: center;
align-items: center; }
/**
@@ -316,11 +371,13 @@
/**
* Shrinking Content
* Shrink a .g-col down to only the space it needs (flexbox only)
+ *
+ * Effectively just changes it’s values back to the default flex properties
*/
.g-col--shrink {
-webkit-box-flex: 0;
- -ms-flex-positive: 0;
- flex-grow: 0; }
+ -ms-flex: 0 1 auto;
+ flex: 0 1 auto; }
/**
* Add fallbacks for non-flexbox supporting browsers (for example, IE8/9)
@@ -335,7 +392,6 @@
.no-flexbox .g-col {
float: left;
min-height: 1px;
- position: relative;
clear: none;
box-sizing: border-box; }
@@ -351,42 +407,48 @@
* Applied by using .g-spanx to .g-col elements, where x is the number of columns
*/
.g-span1 {
- -ms-flex-preferred-size: 8.3333333333% !important;
- flex-basis: 8.3333333333% !important;
+ -ms-flex-preferred-size: 8.33333% !important;
+ flex-basis: 8.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 8.3333333333% !important; }
+ max-width: 8.33333% !important; }
.g-span1.g-holdWidth {
- min-width: 83.3333333333pxpx; }
+ min-width: 83.33333px; }
.g--gutter--scaled .g-span1.g-holdWidth {
- min-width: 63.3333333333pxpx; }
+ min-width: 63.33333px; }
.g--gutter--scaled .g-span1 {
-ms-flex-preferred-size: 6.5% !important;
flex-basis: 6.5% !important;
max-width: 6.5%;
margin-left: 2%; }
.no-flexbox .g-span1 {
- width: 8.3333333333% !important; }
+ width: 8.33333% !important; }
+
+.g-offset1 {
+ margin-left: 8.33333% !important; }
.g-span2 {
- -ms-flex-preferred-size: 16.6666666667% !important;
- flex-basis: 16.6666666667% !important;
+ -ms-flex-preferred-size: 16.66667% !important;
+ flex-basis: 16.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 16.6666666667% !important; }
+ max-width: 16.66667% !important; }
.g-span2.g-holdWidth {
- min-width: 166.666666667pxpx; }
+ min-width: 166.66667px; }
.g--gutter--scaled .g-span2.g-holdWidth {
- min-width: 146.666666667pxpx; }
+ min-width: 146.66667px; }
.g--gutter--scaled .g-span2 {
-ms-flex-preferred-size: 15% !important;
flex-basis: 15% !important;
max-width: 15%;
margin-left: 2%; }
.no-flexbox .g-span2 {
- width: 16.6666666667% !important; }
+ width: 16.66667% !important; }
+
+.g-offset2 {
+ margin-left: 16.66667% !important; }
.g-span3 {
-ms-flex-preferred-size: 25% !important;
@@ -396,9 +458,9 @@
flex-grow: 0;
max-width: 25% !important; }
.g-span3.g-holdWidth {
- min-width: 250pxpx; }
+ min-width: 250px; }
.g--gutter--scaled .g-span3.g-holdWidth {
- min-width: 230pxpx; }
+ min-width: 230px; }
.g--gutter--scaled .g-span3 {
-ms-flex-preferred-size: 23.5% !important;
flex-basis: 23.5% !important;
@@ -407,43 +469,52 @@
.no-flexbox .g-span3 {
width: 25% !important; }
+.g-offset3 {
+ margin-left: 25% !important; }
+
.g-span4 {
- -ms-flex-preferred-size: 33.3333333333% !important;
- flex-basis: 33.3333333333% !important;
+ -ms-flex-preferred-size: 33.33333% !important;
+ flex-basis: 33.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 33.3333333333% !important; }
+ max-width: 33.33333% !important; }
.g-span4.g-holdWidth {
- min-width: 333.333333333pxpx; }
+ min-width: 333.33333px; }
.g--gutter--scaled .g-span4.g-holdWidth {
- min-width: 313.333333333pxpx; }
+ min-width: 313.33333px; }
.g--gutter--scaled .g-span4 {
-ms-flex-preferred-size: 32% !important;
flex-basis: 32% !important;
max-width: 32%;
margin-left: 2%; }
.no-flexbox .g-span4 {
- width: 33.3333333333% !important; }
+ width: 33.33333% !important; }
+
+.g-offset4 {
+ margin-left: 33.33333% !important; }
.g-span5 {
- -ms-flex-preferred-size: 41.6666666667% !important;
- flex-basis: 41.6666666667% !important;
+ -ms-flex-preferred-size: 41.66667% !important;
+ flex-basis: 41.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 41.6666666667% !important; }
+ max-width: 41.66667% !important; }
.g-span5.g-holdWidth {
- min-width: 416.666666667pxpx; }
+ min-width: 416.66667px; }
.g--gutter--scaled .g-span5.g-holdWidth {
- min-width: 396.666666667pxpx; }
+ min-width: 396.66667px; }
.g--gutter--scaled .g-span5 {
-ms-flex-preferred-size: 40.5% !important;
flex-basis: 40.5% !important;
max-width: 40.5%;
margin-left: 2%; }
.no-flexbox .g-span5 {
- width: 41.6666666667% !important; }
+ width: 41.66667% !important; }
+
+.g-offset5 {
+ margin-left: 41.66667% !important; }
.g-span6 {
-ms-flex-preferred-size: 50% !important;
@@ -453,9 +524,9 @@
flex-grow: 0;
max-width: 50% !important; }
.g-span6.g-holdWidth {
- min-width: 500pxpx; }
+ min-width: 500px; }
.g--gutter--scaled .g-span6.g-holdWidth {
- min-width: 480pxpx; }
+ min-width: 480px; }
.g--gutter--scaled .g-span6 {
-ms-flex-preferred-size: 49% !important;
flex-basis: 49% !important;
@@ -464,43 +535,52 @@
.no-flexbox .g-span6 {
width: 50% !important; }
+.g-offset6 {
+ margin-left: 50% !important; }
+
.g-span7 {
- -ms-flex-preferred-size: 58.3333333333% !important;
- flex-basis: 58.3333333333% !important;
+ -ms-flex-preferred-size: 58.33333% !important;
+ flex-basis: 58.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 58.3333333333% !important; }
+ max-width: 58.33333% !important; }
.g-span7.g-holdWidth {
- min-width: 583.333333333pxpx; }
+ min-width: 583.33333px; }
.g--gutter--scaled .g-span7.g-holdWidth {
- min-width: 563.333333333pxpx; }
+ min-width: 563.33333px; }
.g--gutter--scaled .g-span7 {
-ms-flex-preferred-size: 57.5% !important;
flex-basis: 57.5% !important;
max-width: 57.5%;
margin-left: 2%; }
.no-flexbox .g-span7 {
- width: 58.3333333333% !important; }
+ width: 58.33333% !important; }
+
+.g-offset7 {
+ margin-left: 58.33333% !important; }
.g-span8 {
- -ms-flex-preferred-size: 66.6666666667% !important;
- flex-basis: 66.6666666667% !important;
+ -ms-flex-preferred-size: 66.66667% !important;
+ flex-basis: 66.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 66.6666666667% !important; }
+ max-width: 66.66667% !important; }
.g-span8.g-holdWidth {
- min-width: 666.666666667pxpx; }
+ min-width: 666.66667px; }
.g--gutter--scaled .g-span8.g-holdWidth {
- min-width: 646.666666667pxpx; }
+ min-width: 646.66667px; }
.g--gutter--scaled .g-span8 {
-ms-flex-preferred-size: 66% !important;
flex-basis: 66% !important;
max-width: 66%;
margin-left: 2%; }
.no-flexbox .g-span8 {
- width: 66.6666666667% !important; }
+ width: 66.66667% !important; }
+
+.g-offset8 {
+ margin-left: 66.66667% !important; }
.g-span9 {
-ms-flex-preferred-size: 75% !important;
@@ -510,9 +590,9 @@
flex-grow: 0;
max-width: 75% !important; }
.g-span9.g-holdWidth {
- min-width: 750pxpx; }
+ min-width: 750px; }
.g--gutter--scaled .g-span9.g-holdWidth {
- min-width: 730pxpx; }
+ min-width: 730px; }
.g--gutter--scaled .g-span9 {
-ms-flex-preferred-size: 74.5% !important;
flex-basis: 74.5% !important;
@@ -521,43 +601,52 @@
.no-flexbox .g-span9 {
width: 75% !important; }
+.g-offset9 {
+ margin-left: 75% !important; }
+
.g-span10 {
- -ms-flex-preferred-size: 83.3333333333% !important;
- flex-basis: 83.3333333333% !important;
+ -ms-flex-preferred-size: 83.33333% !important;
+ flex-basis: 83.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 83.3333333333% !important; }
+ max-width: 83.33333% !important; }
.g-span10.g-holdWidth {
- min-width: 833.333333333pxpx; }
+ min-width: 833.33333px; }
.g--gutter--scaled .g-span10.g-holdWidth {
- min-width: 813.333333333pxpx; }
+ min-width: 813.33333px; }
.g--gutter--scaled .g-span10 {
-ms-flex-preferred-size: 83% !important;
flex-basis: 83% !important;
max-width: 83%;
margin-left: 2%; }
.no-flexbox .g-span10 {
- width: 83.3333333333% !important; }
+ width: 83.33333% !important; }
+
+.g-offset10 {
+ margin-left: 83.33333% !important; }
.g-span11 {
- -ms-flex-preferred-size: 91.6666666667% !important;
- flex-basis: 91.6666666667% !important;
+ -ms-flex-preferred-size: 91.66667% !important;
+ flex-basis: 91.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 91.6666666667% !important; }
+ max-width: 91.66667% !important; }
.g-span11.g-holdWidth {
- min-width: 916.666666667pxpx; }
+ min-width: 916.66667px; }
.g--gutter--scaled .g-span11.g-holdWidth {
- min-width: 896.666666667pxpx; }
+ min-width: 896.66667px; }
.g--gutter--scaled .g-span11 {
-ms-flex-preferred-size: 91.5% !important;
flex-basis: 91.5% !important;
max-width: 91.5%;
margin-left: 2%; }
.no-flexbox .g-span11 {
- width: 91.6666666667% !important; }
+ width: 91.66667% !important; }
+
+.g-offset11 {
+ margin-left: 91.66667% !important; }
.g-span12 {
-ms-flex-preferred-size: 100% !important;
@@ -567,9 +656,9 @@
flex-grow: 0;
max-width: 100% !important; }
.g-span12.g-holdWidth {
- min-width: 1000pxpx; }
+ min-width: 1000px; }
.g--gutter--scaled .g-span12.g-holdWidth {
- min-width: 980pxpx; }
+ min-width: 980px; }
.g--gutter--scaled .g-span12 {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -578,43 +667,47 @@
.no-flexbox .g-span12 {
width: 100% !important; }
-@media screen and (min-width: 25em) {
+@media (min-width: 400px) {
.g-span1--narrow {
- -ms-flex-preferred-size: 8.3333333333% !important;
- flex-basis: 8.3333333333% !important;
+ -ms-flex-preferred-size: 8.33333% !important;
+ flex-basis: 8.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 8.3333333333% !important; }
+ max-width: 8.33333% !important; }
.g-span1--narrow.g-holdWidth--narrow {
- min-width: 83.3333333333pxpx; }
+ min-width: 83.33333px; }
.g--gutter--scaled .g-span1--narrow.g-holdWidth--narrow {
- min-width: 63.3333333333pxpx; }
+ min-width: 63.33333px; }
.g--gutter--scaled .g-span1--narrow {
-ms-flex-preferred-size: 6.5% !important;
flex-basis: 6.5% !important;
max-width: 6.5%;
margin-left: 2%; }
.no-flexbox .g-span1--narrow {
- width: 8.3333333333% !important; }
+ width: 8.33333% !important; }
+ .g-offset1--narrow {
+ margin-left: 8.33333% !important; }
.g-span2--narrow {
- -ms-flex-preferred-size: 16.6666666667% !important;
- flex-basis: 16.6666666667% !important;
+ -ms-flex-preferred-size: 16.66667% !important;
+ flex-basis: 16.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 16.6666666667% !important; }
+ max-width: 16.66667% !important; }
.g-span2--narrow.g-holdWidth--narrow {
- min-width: 166.666666667pxpx; }
+ min-width: 166.66667px; }
.g--gutter--scaled .g-span2--narrow.g-holdWidth--narrow {
- min-width: 146.666666667pxpx; }
+ min-width: 146.66667px; }
.g--gutter--scaled .g-span2--narrow {
-ms-flex-preferred-size: 15% !important;
flex-basis: 15% !important;
max-width: 15%;
margin-left: 2%; }
.no-flexbox .g-span2--narrow {
- width: 16.6666666667% !important; }
+ width: 16.66667% !important; }
+ .g-offset2--narrow {
+ margin-left: 16.66667% !important; }
.g-span3--narrow {
-ms-flex-preferred-size: 25% !important;
flex-basis: 25% !important;
@@ -623,9 +716,9 @@
flex-grow: 0;
max-width: 25% !important; }
.g-span3--narrow.g-holdWidth--narrow {
- min-width: 250pxpx; }
+ min-width: 250px; }
.g--gutter--scaled .g-span3--narrow.g-holdWidth--narrow {
- min-width: 230pxpx; }
+ min-width: 230px; }
.g--gutter--scaled .g-span3--narrow {
-ms-flex-preferred-size: 23.5% !important;
flex-basis: 23.5% !important;
@@ -633,42 +726,48 @@
margin-left: 2%; }
.no-flexbox .g-span3--narrow {
width: 25% !important; }
+ .g-offset3--narrow {
+ margin-left: 25% !important; }
.g-span4--narrow {
- -ms-flex-preferred-size: 33.3333333333% !important;
- flex-basis: 33.3333333333% !important;
+ -ms-flex-preferred-size: 33.33333% !important;
+ flex-basis: 33.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 33.3333333333% !important; }
+ max-width: 33.33333% !important; }
.g-span4--narrow.g-holdWidth--narrow {
- min-width: 333.333333333pxpx; }
+ min-width: 333.33333px; }
.g--gutter--scaled .g-span4--narrow.g-holdWidth--narrow {
- min-width: 313.333333333pxpx; }
+ min-width: 313.33333px; }
.g--gutter--scaled .g-span4--narrow {
-ms-flex-preferred-size: 32% !important;
flex-basis: 32% !important;
max-width: 32%;
margin-left: 2%; }
.no-flexbox .g-span4--narrow {
- width: 33.3333333333% !important; }
+ width: 33.33333% !important; }
+ .g-offset4--narrow {
+ margin-left: 33.33333% !important; }
.g-span5--narrow {
- -ms-flex-preferred-size: 41.6666666667% !important;
- flex-basis: 41.6666666667% !important;
+ -ms-flex-preferred-size: 41.66667% !important;
+ flex-basis: 41.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 41.6666666667% !important; }
+ max-width: 41.66667% !important; }
.g-span5--narrow.g-holdWidth--narrow {
- min-width: 416.666666667pxpx; }
+ min-width: 416.66667px; }
.g--gutter--scaled .g-span5--narrow.g-holdWidth--narrow {
- min-width: 396.666666667pxpx; }
+ min-width: 396.66667px; }
.g--gutter--scaled .g-span5--narrow {
-ms-flex-preferred-size: 40.5% !important;
flex-basis: 40.5% !important;
max-width: 40.5%;
margin-left: 2%; }
.no-flexbox .g-span5--narrow {
- width: 41.6666666667% !important; }
+ width: 41.66667% !important; }
+ .g-offset5--narrow {
+ margin-left: 41.66667% !important; }
.g-span6--narrow {
-ms-flex-preferred-size: 50% !important;
flex-basis: 50% !important;
@@ -677,9 +776,9 @@
flex-grow: 0;
max-width: 50% !important; }
.g-span6--narrow.g-holdWidth--narrow {
- min-width: 500pxpx; }
+ min-width: 500px; }
.g--gutter--scaled .g-span6--narrow.g-holdWidth--narrow {
- min-width: 480pxpx; }
+ min-width: 480px; }
.g--gutter--scaled .g-span6--narrow {
-ms-flex-preferred-size: 49% !important;
flex-basis: 49% !important;
@@ -687,42 +786,48 @@
margin-left: 2%; }
.no-flexbox .g-span6--narrow {
width: 50% !important; }
+ .g-offset6--narrow {
+ margin-left: 50% !important; }
.g-span7--narrow {
- -ms-flex-preferred-size: 58.3333333333% !important;
- flex-basis: 58.3333333333% !important;
+ -ms-flex-preferred-size: 58.33333% !important;
+ flex-basis: 58.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 58.3333333333% !important; }
+ max-width: 58.33333% !important; }
.g-span7--narrow.g-holdWidth--narrow {
- min-width: 583.333333333pxpx; }
+ min-width: 583.33333px; }
.g--gutter--scaled .g-span7--narrow.g-holdWidth--narrow {
- min-width: 563.333333333pxpx; }
+ min-width: 563.33333px; }
.g--gutter--scaled .g-span7--narrow {
-ms-flex-preferred-size: 57.5% !important;
flex-basis: 57.5% !important;
max-width: 57.5%;
margin-left: 2%; }
.no-flexbox .g-span7--narrow {
- width: 58.3333333333% !important; }
+ width: 58.33333% !important; }
+ .g-offset7--narrow {
+ margin-left: 58.33333% !important; }
.g-span8--narrow {
- -ms-flex-preferred-size: 66.6666666667% !important;
- flex-basis: 66.6666666667% !important;
+ -ms-flex-preferred-size: 66.66667% !important;
+ flex-basis: 66.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 66.6666666667% !important; }
+ max-width: 66.66667% !important; }
.g-span8--narrow.g-holdWidth--narrow {
- min-width: 666.666666667pxpx; }
+ min-width: 666.66667px; }
.g--gutter--scaled .g-span8--narrow.g-holdWidth--narrow {
- min-width: 646.666666667pxpx; }
+ min-width: 646.66667px; }
.g--gutter--scaled .g-span8--narrow {
-ms-flex-preferred-size: 66% !important;
flex-basis: 66% !important;
max-width: 66%;
margin-left: 2%; }
.no-flexbox .g-span8--narrow {
- width: 66.6666666667% !important; }
+ width: 66.66667% !important; }
+ .g-offset8--narrow {
+ margin-left: 66.66667% !important; }
.g-span9--narrow {
-ms-flex-preferred-size: 75% !important;
flex-basis: 75% !important;
@@ -731,9 +836,9 @@
flex-grow: 0;
max-width: 75% !important; }
.g-span9--narrow.g-holdWidth--narrow {
- min-width: 750pxpx; }
+ min-width: 750px; }
.g--gutter--scaled .g-span9--narrow.g-holdWidth--narrow {
- min-width: 730pxpx; }
+ min-width: 730px; }
.g--gutter--scaled .g-span9--narrow {
-ms-flex-preferred-size: 74.5% !important;
flex-basis: 74.5% !important;
@@ -741,42 +846,48 @@
margin-left: 2%; }
.no-flexbox .g-span9--narrow {
width: 75% !important; }
+ .g-offset9--narrow {
+ margin-left: 75% !important; }
.g-span10--narrow {
- -ms-flex-preferred-size: 83.3333333333% !important;
- flex-basis: 83.3333333333% !important;
+ -ms-flex-preferred-size: 83.33333% !important;
+ flex-basis: 83.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 83.3333333333% !important; }
+ max-width: 83.33333% !important; }
.g-span10--narrow.g-holdWidth--narrow {
- min-width: 833.333333333pxpx; }
+ min-width: 833.33333px; }
.g--gutter--scaled .g-span10--narrow.g-holdWidth--narrow {
- min-width: 813.333333333pxpx; }
+ min-width: 813.33333px; }
.g--gutter--scaled .g-span10--narrow {
-ms-flex-preferred-size: 83% !important;
flex-basis: 83% !important;
max-width: 83%;
margin-left: 2%; }
.no-flexbox .g-span10--narrow {
- width: 83.3333333333% !important; }
+ width: 83.33333% !important; }
+ .g-offset10--narrow {
+ margin-left: 83.33333% !important; }
.g-span11--narrow {
- -ms-flex-preferred-size: 91.6666666667% !important;
- flex-basis: 91.6666666667% !important;
+ -ms-flex-preferred-size: 91.66667% !important;
+ flex-basis: 91.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 91.6666666667% !important; }
+ max-width: 91.66667% !important; }
.g-span11--narrow.g-holdWidth--narrow {
- min-width: 916.666666667pxpx; }
+ min-width: 916.66667px; }
.g--gutter--scaled .g-span11--narrow.g-holdWidth--narrow {
- min-width: 896.666666667pxpx; }
+ min-width: 896.66667px; }
.g--gutter--scaled .g-span11--narrow {
-ms-flex-preferred-size: 91.5% !important;
flex-basis: 91.5% !important;
max-width: 91.5%;
margin-left: 2%; }
.no-flexbox .g-span11--narrow {
- width: 91.6666666667% !important; }
+ width: 91.66667% !important; }
+ .g-offset11--narrow {
+ margin-left: 91.66667% !important; }
.g-span12--narrow {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -785,9 +896,9 @@
flex-grow: 0;
max-width: 100% !important; }
.g-span12--narrow.g-holdWidth--narrow {
- min-width: 1000pxpx; }
+ min-width: 1000px; }
.g--gutter--scaled .g-span12--narrow.g-holdWidth--narrow {
- min-width: 980pxpx; }
+ min-width: 980px; }
.g--gutter--scaled .g-span12--narrow {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -796,43 +907,47 @@
.no-flexbox .g-span12--narrow {
width: 100% !important; } }
-@media screen and (min-width: 46.875em) {
+@media (min-width: 750px) {
.g-span1--mid {
- -ms-flex-preferred-size: 8.3333333333% !important;
- flex-basis: 8.3333333333% !important;
+ -ms-flex-preferred-size: 8.33333% !important;
+ flex-basis: 8.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 8.3333333333% !important; }
+ max-width: 8.33333% !important; }
.g-span1--mid.g-holdWidth--mid {
- min-width: 83.3333333333pxpx; }
+ min-width: 83.33333px; }
.g--gutter--scaled .g-span1--mid.g-holdWidth--mid {
- min-width: 63.3333333333pxpx; }
+ min-width: 63.33333px; }
.g--gutter--scaled .g-span1--mid {
-ms-flex-preferred-size: 6.5% !important;
flex-basis: 6.5% !important;
max-width: 6.5%;
margin-left: 2%; }
.no-flexbox .g-span1--mid {
- width: 8.3333333333% !important; }
+ width: 8.33333% !important; }
+ .g-offset1--mid {
+ margin-left: 8.33333% !important; }
.g-span2--mid {
- -ms-flex-preferred-size: 16.6666666667% !important;
- flex-basis: 16.6666666667% !important;
+ -ms-flex-preferred-size: 16.66667% !important;
+ flex-basis: 16.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 16.6666666667% !important; }
+ max-width: 16.66667% !important; }
.g-span2--mid.g-holdWidth--mid {
- min-width: 166.666666667pxpx; }
+ min-width: 166.66667px; }
.g--gutter--scaled .g-span2--mid.g-holdWidth--mid {
- min-width: 146.666666667pxpx; }
+ min-width: 146.66667px; }
.g--gutter--scaled .g-span2--mid {
-ms-flex-preferred-size: 15% !important;
flex-basis: 15% !important;
max-width: 15%;
margin-left: 2%; }
.no-flexbox .g-span2--mid {
- width: 16.6666666667% !important; }
+ width: 16.66667% !important; }
+ .g-offset2--mid {
+ margin-left: 16.66667% !important; }
.g-span3--mid {
-ms-flex-preferred-size: 25% !important;
flex-basis: 25% !important;
@@ -841,9 +956,9 @@
flex-grow: 0;
max-width: 25% !important; }
.g-span3--mid.g-holdWidth--mid {
- min-width: 250pxpx; }
+ min-width: 250px; }
.g--gutter--scaled .g-span3--mid.g-holdWidth--mid {
- min-width: 230pxpx; }
+ min-width: 230px; }
.g--gutter--scaled .g-span3--mid {
-ms-flex-preferred-size: 23.5% !important;
flex-basis: 23.5% !important;
@@ -851,42 +966,48 @@
margin-left: 2%; }
.no-flexbox .g-span3--mid {
width: 25% !important; }
+ .g-offset3--mid {
+ margin-left: 25% !important; }
.g-span4--mid {
- -ms-flex-preferred-size: 33.3333333333% !important;
- flex-basis: 33.3333333333% !important;
+ -ms-flex-preferred-size: 33.33333% !important;
+ flex-basis: 33.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 33.3333333333% !important; }
+ max-width: 33.33333% !important; }
.g-span4--mid.g-holdWidth--mid {
- min-width: 333.333333333pxpx; }
+ min-width: 333.33333px; }
.g--gutter--scaled .g-span4--mid.g-holdWidth--mid {
- min-width: 313.333333333pxpx; }
+ min-width: 313.33333px; }
.g--gutter--scaled .g-span4--mid {
-ms-flex-preferred-size: 32% !important;
flex-basis: 32% !important;
max-width: 32%;
margin-left: 2%; }
.no-flexbox .g-span4--mid {
- width: 33.3333333333% !important; }
+ width: 33.33333% !important; }
+ .g-offset4--mid {
+ margin-left: 33.33333% !important; }
.g-span5--mid {
- -ms-flex-preferred-size: 41.6666666667% !important;
- flex-basis: 41.6666666667% !important;
+ -ms-flex-preferred-size: 41.66667% !important;
+ flex-basis: 41.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 41.6666666667% !important; }
+ max-width: 41.66667% !important; }
.g-span5--mid.g-holdWidth--mid {
- min-width: 416.666666667pxpx; }
+ min-width: 416.66667px; }
.g--gutter--scaled .g-span5--mid.g-holdWidth--mid {
- min-width: 396.666666667pxpx; }
+ min-width: 396.66667px; }
.g--gutter--scaled .g-span5--mid {
-ms-flex-preferred-size: 40.5% !important;
flex-basis: 40.5% !important;
max-width: 40.5%;
margin-left: 2%; }
.no-flexbox .g-span5--mid {
- width: 41.6666666667% !important; }
+ width: 41.66667% !important; }
+ .g-offset5--mid {
+ margin-left: 41.66667% !important; }
.g-span6--mid {
-ms-flex-preferred-size: 50% !important;
flex-basis: 50% !important;
@@ -895,9 +1016,9 @@
flex-grow: 0;
max-width: 50% !important; }
.g-span6--mid.g-holdWidth--mid {
- min-width: 500pxpx; }
+ min-width: 500px; }
.g--gutter--scaled .g-span6--mid.g-holdWidth--mid {
- min-width: 480pxpx; }
+ min-width: 480px; }
.g--gutter--scaled .g-span6--mid {
-ms-flex-preferred-size: 49% !important;
flex-basis: 49% !important;
@@ -905,42 +1026,48 @@
margin-left: 2%; }
.no-flexbox .g-span6--mid {
width: 50% !important; }
+ .g-offset6--mid {
+ margin-left: 50% !important; }
.g-span7--mid {
- -ms-flex-preferred-size: 58.3333333333% !important;
- flex-basis: 58.3333333333% !important;
+ -ms-flex-preferred-size: 58.33333% !important;
+ flex-basis: 58.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 58.3333333333% !important; }
+ max-width: 58.33333% !important; }
.g-span7--mid.g-holdWidth--mid {
- min-width: 583.333333333pxpx; }
+ min-width: 583.33333px; }
.g--gutter--scaled .g-span7--mid.g-holdWidth--mid {
- min-width: 563.333333333pxpx; }
+ min-width: 563.33333px; }
.g--gutter--scaled .g-span7--mid {
-ms-flex-preferred-size: 57.5% !important;
flex-basis: 57.5% !important;
max-width: 57.5%;
margin-left: 2%; }
.no-flexbox .g-span7--mid {
- width: 58.3333333333% !important; }
+ width: 58.33333% !important; }
+ .g-offset7--mid {
+ margin-left: 58.33333% !important; }
.g-span8--mid {
- -ms-flex-preferred-size: 66.6666666667% !important;
- flex-basis: 66.6666666667% !important;
+ -ms-flex-preferred-size: 66.66667% !important;
+ flex-basis: 66.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 66.6666666667% !important; }
+ max-width: 66.66667% !important; }
.g-span8--mid.g-holdWidth--mid {
- min-width: 666.666666667pxpx; }
+ min-width: 666.66667px; }
.g--gutter--scaled .g-span8--mid.g-holdWidth--mid {
- min-width: 646.666666667pxpx; }
+ min-width: 646.66667px; }
.g--gutter--scaled .g-span8--mid {
-ms-flex-preferred-size: 66% !important;
flex-basis: 66% !important;
max-width: 66%;
margin-left: 2%; }
.no-flexbox .g-span8--mid {
- width: 66.6666666667% !important; }
+ width: 66.66667% !important; }
+ .g-offset8--mid {
+ margin-left: 66.66667% !important; }
.g-span9--mid {
-ms-flex-preferred-size: 75% !important;
flex-basis: 75% !important;
@@ -949,9 +1076,9 @@
flex-grow: 0;
max-width: 75% !important; }
.g-span9--mid.g-holdWidth--mid {
- min-width: 750pxpx; }
+ min-width: 750px; }
.g--gutter--scaled .g-span9--mid.g-holdWidth--mid {
- min-width: 730pxpx; }
+ min-width: 730px; }
.g--gutter--scaled .g-span9--mid {
-ms-flex-preferred-size: 74.5% !important;
flex-basis: 74.5% !important;
@@ -959,42 +1086,48 @@
margin-left: 2%; }
.no-flexbox .g-span9--mid {
width: 75% !important; }
+ .g-offset9--mid {
+ margin-left: 75% !important; }
.g-span10--mid {
- -ms-flex-preferred-size: 83.3333333333% !important;
- flex-basis: 83.3333333333% !important;
+ -ms-flex-preferred-size: 83.33333% !important;
+ flex-basis: 83.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 83.3333333333% !important; }
+ max-width: 83.33333% !important; }
.g-span10--mid.g-holdWidth--mid {
- min-width: 833.333333333pxpx; }
+ min-width: 833.33333px; }
.g--gutter--scaled .g-span10--mid.g-holdWidth--mid {
- min-width: 813.333333333pxpx; }
+ min-width: 813.33333px; }
.g--gutter--scaled .g-span10--mid {
-ms-flex-preferred-size: 83% !important;
flex-basis: 83% !important;
max-width: 83%;
margin-left: 2%; }
.no-flexbox .g-span10--mid {
- width: 83.3333333333% !important; }
+ width: 83.33333% !important; }
+ .g-offset10--mid {
+ margin-left: 83.33333% !important; }
.g-span11--mid {
- -ms-flex-preferred-size: 91.6666666667% !important;
- flex-basis: 91.6666666667% !important;
+ -ms-flex-preferred-size: 91.66667% !important;
+ flex-basis: 91.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 91.6666666667% !important; }
+ max-width: 91.66667% !important; }
.g-span11--mid.g-holdWidth--mid {
- min-width: 916.666666667pxpx; }
+ min-width: 916.66667px; }
.g--gutter--scaled .g-span11--mid.g-holdWidth--mid {
- min-width: 896.666666667pxpx; }
+ min-width: 896.66667px; }
.g--gutter--scaled .g-span11--mid {
-ms-flex-preferred-size: 91.5% !important;
flex-basis: 91.5% !important;
max-width: 91.5%;
margin-left: 2%; }
.no-flexbox .g-span11--mid {
- width: 91.6666666667% !important; }
+ width: 91.66667% !important; }
+ .g-offset11--mid {
+ margin-left: 91.66667% !important; }
.g-span12--mid {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -1003,9 +1136,9 @@
flex-grow: 0;
max-width: 100% !important; }
.g-span12--mid.g-holdWidth--mid {
- min-width: 1000pxpx; }
+ min-width: 1000px; }
.g--gutter--scaled .g-span12--mid.g-holdWidth--mid {
- min-width: 980pxpx; }
+ min-width: 980px; }
.g--gutter--scaled .g-span12--mid {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -1014,43 +1147,47 @@
.no-flexbox .g-span12--mid {
width: 100% !important; } }
-@media screen and (min-width: 62.5em) {
+@media (min-width: 1000px) {
.g-span1--wide {
- -ms-flex-preferred-size: 8.3333333333% !important;
- flex-basis: 8.3333333333% !important;
+ -ms-flex-preferred-size: 8.33333% !important;
+ flex-basis: 8.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 8.3333333333% !important; }
+ max-width: 8.33333% !important; }
.g-span1--wide.g-holdWidth--wide {
- min-width: 83.3333333333pxpx; }
+ min-width: 83.33333px; }
.g--gutter--scaled .g-span1--wide.g-holdWidth--wide {
- min-width: 63.3333333333pxpx; }
+ min-width: 63.33333px; }
.g--gutter--scaled .g-span1--wide {
-ms-flex-preferred-size: 6.5% !important;
flex-basis: 6.5% !important;
max-width: 6.5%;
margin-left: 2%; }
.no-flexbox .g-span1--wide {
- width: 8.3333333333% !important; }
+ width: 8.33333% !important; }
+ .g-offset1--wide {
+ margin-left: 8.33333% !important; }
.g-span2--wide {
- -ms-flex-preferred-size: 16.6666666667% !important;
- flex-basis: 16.6666666667% !important;
+ -ms-flex-preferred-size: 16.66667% !important;
+ flex-basis: 16.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 16.6666666667% !important; }
+ max-width: 16.66667% !important; }
.g-span2--wide.g-holdWidth--wide {
- min-width: 166.666666667pxpx; }
+ min-width: 166.66667px; }
.g--gutter--scaled .g-span2--wide.g-holdWidth--wide {
- min-width: 146.666666667pxpx; }
+ min-width: 146.66667px; }
.g--gutter--scaled .g-span2--wide {
-ms-flex-preferred-size: 15% !important;
flex-basis: 15% !important;
max-width: 15%;
margin-left: 2%; }
.no-flexbox .g-span2--wide {
- width: 16.6666666667% !important; }
+ width: 16.66667% !important; }
+ .g-offset2--wide {
+ margin-left: 16.66667% !important; }
.g-span3--wide {
-ms-flex-preferred-size: 25% !important;
flex-basis: 25% !important;
@@ -1059,9 +1196,9 @@
flex-grow: 0;
max-width: 25% !important; }
.g-span3--wide.g-holdWidth--wide {
- min-width: 250pxpx; }
+ min-width: 250px; }
.g--gutter--scaled .g-span3--wide.g-holdWidth--wide {
- min-width: 230pxpx; }
+ min-width: 230px; }
.g--gutter--scaled .g-span3--wide {
-ms-flex-preferred-size: 23.5% !important;
flex-basis: 23.5% !important;
@@ -1069,42 +1206,48 @@
margin-left: 2%; }
.no-flexbox .g-span3--wide {
width: 25% !important; }
+ .g-offset3--wide {
+ margin-left: 25% !important; }
.g-span4--wide {
- -ms-flex-preferred-size: 33.3333333333% !important;
- flex-basis: 33.3333333333% !important;
+ -ms-flex-preferred-size: 33.33333% !important;
+ flex-basis: 33.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 33.3333333333% !important; }
+ max-width: 33.33333% !important; }
.g-span4--wide.g-holdWidth--wide {
- min-width: 333.333333333pxpx; }
+ min-width: 333.33333px; }
.g--gutter--scaled .g-span4--wide.g-holdWidth--wide {
- min-width: 313.333333333pxpx; }
+ min-width: 313.33333px; }
.g--gutter--scaled .g-span4--wide {
-ms-flex-preferred-size: 32% !important;
flex-basis: 32% !important;
max-width: 32%;
margin-left: 2%; }
.no-flexbox .g-span4--wide {
- width: 33.3333333333% !important; }
+ width: 33.33333% !important; }
+ .g-offset4--wide {
+ margin-left: 33.33333% !important; }
.g-span5--wide {
- -ms-flex-preferred-size: 41.6666666667% !important;
- flex-basis: 41.6666666667% !important;
+ -ms-flex-preferred-size: 41.66667% !important;
+ flex-basis: 41.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 41.6666666667% !important; }
+ max-width: 41.66667% !important; }
.g-span5--wide.g-holdWidth--wide {
- min-width: 416.666666667pxpx; }
+ min-width: 416.66667px; }
.g--gutter--scaled .g-span5--wide.g-holdWidth--wide {
- min-width: 396.666666667pxpx; }
+ min-width: 396.66667px; }
.g--gutter--scaled .g-span5--wide {
-ms-flex-preferred-size: 40.5% !important;
flex-basis: 40.5% !important;
max-width: 40.5%;
margin-left: 2%; }
.no-flexbox .g-span5--wide {
- width: 41.6666666667% !important; }
+ width: 41.66667% !important; }
+ .g-offset5--wide {
+ margin-left: 41.66667% !important; }
.g-span6--wide {
-ms-flex-preferred-size: 50% !important;
flex-basis: 50% !important;
@@ -1113,9 +1256,9 @@
flex-grow: 0;
max-width: 50% !important; }
.g-span6--wide.g-holdWidth--wide {
- min-width: 500pxpx; }
+ min-width: 500px; }
.g--gutter--scaled .g-span6--wide.g-holdWidth--wide {
- min-width: 480pxpx; }
+ min-width: 480px; }
.g--gutter--scaled .g-span6--wide {
-ms-flex-preferred-size: 49% !important;
flex-basis: 49% !important;
@@ -1123,42 +1266,48 @@
margin-left: 2%; }
.no-flexbox .g-span6--wide {
width: 50% !important; }
+ .g-offset6--wide {
+ margin-left: 50% !important; }
.g-span7--wide {
- -ms-flex-preferred-size: 58.3333333333% !important;
- flex-basis: 58.3333333333% !important;
+ -ms-flex-preferred-size: 58.33333% !important;
+ flex-basis: 58.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 58.3333333333% !important; }
+ max-width: 58.33333% !important; }
.g-span7--wide.g-holdWidth--wide {
- min-width: 583.333333333pxpx; }
+ min-width: 583.33333px; }
.g--gutter--scaled .g-span7--wide.g-holdWidth--wide {
- min-width: 563.333333333pxpx; }
+ min-width: 563.33333px; }
.g--gutter--scaled .g-span7--wide {
-ms-flex-preferred-size: 57.5% !important;
flex-basis: 57.5% !important;
max-width: 57.5%;
margin-left: 2%; }
.no-flexbox .g-span7--wide {
- width: 58.3333333333% !important; }
+ width: 58.33333% !important; }
+ .g-offset7--wide {
+ margin-left: 58.33333% !important; }
.g-span8--wide {
- -ms-flex-preferred-size: 66.6666666667% !important;
- flex-basis: 66.6666666667% !important;
+ -ms-flex-preferred-size: 66.66667% !important;
+ flex-basis: 66.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 66.6666666667% !important; }
+ max-width: 66.66667% !important; }
.g-span8--wide.g-holdWidth--wide {
- min-width: 666.666666667pxpx; }
+ min-width: 666.66667px; }
.g--gutter--scaled .g-span8--wide.g-holdWidth--wide {
- min-width: 646.666666667pxpx; }
+ min-width: 646.66667px; }
.g--gutter--scaled .g-span8--wide {
-ms-flex-preferred-size: 66% !important;
flex-basis: 66% !important;
max-width: 66%;
margin-left: 2%; }
.no-flexbox .g-span8--wide {
- width: 66.6666666667% !important; }
+ width: 66.66667% !important; }
+ .g-offset8--wide {
+ margin-left: 66.66667% !important; }
.g-span9--wide {
-ms-flex-preferred-size: 75% !important;
flex-basis: 75% !important;
@@ -1167,9 +1316,9 @@
flex-grow: 0;
max-width: 75% !important; }
.g-span9--wide.g-holdWidth--wide {
- min-width: 750pxpx; }
+ min-width: 750px; }
.g--gutter--scaled .g-span9--wide.g-holdWidth--wide {
- min-width: 730pxpx; }
+ min-width: 730px; }
.g--gutter--scaled .g-span9--wide {
-ms-flex-preferred-size: 74.5% !important;
flex-basis: 74.5% !important;
@@ -1177,42 +1326,48 @@
margin-left: 2%; }
.no-flexbox .g-span9--wide {
width: 75% !important; }
+ .g-offset9--wide {
+ margin-left: 75% !important; }
.g-span10--wide {
- -ms-flex-preferred-size: 83.3333333333% !important;
- flex-basis: 83.3333333333% !important;
+ -ms-flex-preferred-size: 83.33333% !important;
+ flex-basis: 83.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 83.3333333333% !important; }
+ max-width: 83.33333% !important; }
.g-span10--wide.g-holdWidth--wide {
- min-width: 833.333333333pxpx; }
+ min-width: 833.33333px; }
.g--gutter--scaled .g-span10--wide.g-holdWidth--wide {
- min-width: 813.333333333pxpx; }
+ min-width: 813.33333px; }
.g--gutter--scaled .g-span10--wide {
-ms-flex-preferred-size: 83% !important;
flex-basis: 83% !important;
max-width: 83%;
margin-left: 2%; }
.no-flexbox .g-span10--wide {
- width: 83.3333333333% !important; }
+ width: 83.33333% !important; }
+ .g-offset10--wide {
+ margin-left: 83.33333% !important; }
.g-span11--wide {
- -ms-flex-preferred-size: 91.6666666667% !important;
- flex-basis: 91.6666666667% !important;
+ -ms-flex-preferred-size: 91.66667% !important;
+ flex-basis: 91.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 91.6666666667% !important; }
+ max-width: 91.66667% !important; }
.g-span11--wide.g-holdWidth--wide {
- min-width: 916.666666667pxpx; }
+ min-width: 916.66667px; }
.g--gutter--scaled .g-span11--wide.g-holdWidth--wide {
- min-width: 896.666666667pxpx; }
+ min-width: 896.66667px; }
.g--gutter--scaled .g-span11--wide {
-ms-flex-preferred-size: 91.5% !important;
flex-basis: 91.5% !important;
max-width: 91.5%;
margin-left: 2%; }
.no-flexbox .g-span11--wide {
- width: 91.6666666667% !important; }
+ width: 91.66667% !important; }
+ .g-offset11--wide {
+ margin-left: 91.66667% !important; }
.g-span12--wide {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -1221,9 +1376,9 @@
flex-grow: 0;
max-width: 100% !important; }
.g-span12--wide.g-holdWidth--wide {
- min-width: 1000pxpx; }
+ min-width: 1000px; }
.g--gutter--scaled .g-span12--wide.g-holdWidth--wide {
- min-width: 980pxpx; }
+ min-width: 980px; }
.g--gutter--scaled .g-span12--wide {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -1232,43 +1387,47 @@
.no-flexbox .g-span12--wide {
width: 100% !important; } }
-@media screen and (min-width: 78.125em) {
+@media (min-width: 1250px) {
.g-span1--huge {
- -ms-flex-preferred-size: 8.3333333333% !important;
- flex-basis: 8.3333333333% !important;
+ -ms-flex-preferred-size: 8.33333% !important;
+ flex-basis: 8.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 8.3333333333% !important; }
+ max-width: 8.33333% !important; }
.g-span1--huge.g-holdWidth--huge {
- min-width: 83.3333333333pxpx; }
+ min-width: 83.33333px; }
.g--gutter--scaled .g-span1--huge.g-holdWidth--huge {
- min-width: 63.3333333333pxpx; }
+ min-width: 63.33333px; }
.g--gutter--scaled .g-span1--huge {
-ms-flex-preferred-size: 6.5% !important;
flex-basis: 6.5% !important;
max-width: 6.5%;
margin-left: 2%; }
.no-flexbox .g-span1--huge {
- width: 8.3333333333% !important; }
+ width: 8.33333% !important; }
+ .g-offset1--huge {
+ margin-left: 8.33333% !important; }
.g-span2--huge {
- -ms-flex-preferred-size: 16.6666666667% !important;
- flex-basis: 16.6666666667% !important;
+ -ms-flex-preferred-size: 16.66667% !important;
+ flex-basis: 16.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 16.6666666667% !important; }
+ max-width: 16.66667% !important; }
.g-span2--huge.g-holdWidth--huge {
- min-width: 166.666666667pxpx; }
+ min-width: 166.66667px; }
.g--gutter--scaled .g-span2--huge.g-holdWidth--huge {
- min-width: 146.666666667pxpx; }
+ min-width: 146.66667px; }
.g--gutter--scaled .g-span2--huge {
-ms-flex-preferred-size: 15% !important;
flex-basis: 15% !important;
max-width: 15%;
margin-left: 2%; }
.no-flexbox .g-span2--huge {
- width: 16.6666666667% !important; }
+ width: 16.66667% !important; }
+ .g-offset2--huge {
+ margin-left: 16.66667% !important; }
.g-span3--huge {
-ms-flex-preferred-size: 25% !important;
flex-basis: 25% !important;
@@ -1277,9 +1436,9 @@
flex-grow: 0;
max-width: 25% !important; }
.g-span3--huge.g-holdWidth--huge {
- min-width: 250pxpx; }
+ min-width: 250px; }
.g--gutter--scaled .g-span3--huge.g-holdWidth--huge {
- min-width: 230pxpx; }
+ min-width: 230px; }
.g--gutter--scaled .g-span3--huge {
-ms-flex-preferred-size: 23.5% !important;
flex-basis: 23.5% !important;
@@ -1287,42 +1446,48 @@
margin-left: 2%; }
.no-flexbox .g-span3--huge {
width: 25% !important; }
+ .g-offset3--huge {
+ margin-left: 25% !important; }
.g-span4--huge {
- -ms-flex-preferred-size: 33.3333333333% !important;
- flex-basis: 33.3333333333% !important;
+ -ms-flex-preferred-size: 33.33333% !important;
+ flex-basis: 33.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 33.3333333333% !important; }
+ max-width: 33.33333% !important; }
.g-span4--huge.g-holdWidth--huge {
- min-width: 333.333333333pxpx; }
+ min-width: 333.33333px; }
.g--gutter--scaled .g-span4--huge.g-holdWidth--huge {
- min-width: 313.333333333pxpx; }
+ min-width: 313.33333px; }
.g--gutter--scaled .g-span4--huge {
-ms-flex-preferred-size: 32% !important;
flex-basis: 32% !important;
max-width: 32%;
margin-left: 2%; }
.no-flexbox .g-span4--huge {
- width: 33.3333333333% !important; }
+ width: 33.33333% !important; }
+ .g-offset4--huge {
+ margin-left: 33.33333% !important; }
.g-span5--huge {
- -ms-flex-preferred-size: 41.6666666667% !important;
- flex-basis: 41.6666666667% !important;
+ -ms-flex-preferred-size: 41.66667% !important;
+ flex-basis: 41.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 41.6666666667% !important; }
+ max-width: 41.66667% !important; }
.g-span5--huge.g-holdWidth--huge {
- min-width: 416.666666667pxpx; }
+ min-width: 416.66667px; }
.g--gutter--scaled .g-span5--huge.g-holdWidth--huge {
- min-width: 396.666666667pxpx; }
+ min-width: 396.66667px; }
.g--gutter--scaled .g-span5--huge {
-ms-flex-preferred-size: 40.5% !important;
flex-basis: 40.5% !important;
max-width: 40.5%;
margin-left: 2%; }
.no-flexbox .g-span5--huge {
- width: 41.6666666667% !important; }
+ width: 41.66667% !important; }
+ .g-offset5--huge {
+ margin-left: 41.66667% !important; }
.g-span6--huge {
-ms-flex-preferred-size: 50% !important;
flex-basis: 50% !important;
@@ -1331,9 +1496,9 @@
flex-grow: 0;
max-width: 50% !important; }
.g-span6--huge.g-holdWidth--huge {
- min-width: 500pxpx; }
+ min-width: 500px; }
.g--gutter--scaled .g-span6--huge.g-holdWidth--huge {
- min-width: 480pxpx; }
+ min-width: 480px; }
.g--gutter--scaled .g-span6--huge {
-ms-flex-preferred-size: 49% !important;
flex-basis: 49% !important;
@@ -1341,42 +1506,48 @@
margin-left: 2%; }
.no-flexbox .g-span6--huge {
width: 50% !important; }
+ .g-offset6--huge {
+ margin-left: 50% !important; }
.g-span7--huge {
- -ms-flex-preferred-size: 58.3333333333% !important;
- flex-basis: 58.3333333333% !important;
+ -ms-flex-preferred-size: 58.33333% !important;
+ flex-basis: 58.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 58.3333333333% !important; }
+ max-width: 58.33333% !important; }
.g-span7--huge.g-holdWidth--huge {
- min-width: 583.333333333pxpx; }
+ min-width: 583.33333px; }
.g--gutter--scaled .g-span7--huge.g-holdWidth--huge {
- min-width: 563.333333333pxpx; }
+ min-width: 563.33333px; }
.g--gutter--scaled .g-span7--huge {
-ms-flex-preferred-size: 57.5% !important;
flex-basis: 57.5% !important;
max-width: 57.5%;
margin-left: 2%; }
.no-flexbox .g-span7--huge {
- width: 58.3333333333% !important; }
+ width: 58.33333% !important; }
+ .g-offset7--huge {
+ margin-left: 58.33333% !important; }
.g-span8--huge {
- -ms-flex-preferred-size: 66.6666666667% !important;
- flex-basis: 66.6666666667% !important;
+ -ms-flex-preferred-size: 66.66667% !important;
+ flex-basis: 66.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 66.6666666667% !important; }
+ max-width: 66.66667% !important; }
.g-span8--huge.g-holdWidth--huge {
- min-width: 666.666666667pxpx; }
+ min-width: 666.66667px; }
.g--gutter--scaled .g-span8--huge.g-holdWidth--huge {
- min-width: 646.666666667pxpx; }
+ min-width: 646.66667px; }
.g--gutter--scaled .g-span8--huge {
-ms-flex-preferred-size: 66% !important;
flex-basis: 66% !important;
max-width: 66%;
margin-left: 2%; }
.no-flexbox .g-span8--huge {
- width: 66.6666666667% !important; }
+ width: 66.66667% !important; }
+ .g-offset8--huge {
+ margin-left: 66.66667% !important; }
.g-span9--huge {
-ms-flex-preferred-size: 75% !important;
flex-basis: 75% !important;
@@ -1385,9 +1556,9 @@
flex-grow: 0;
max-width: 75% !important; }
.g-span9--huge.g-holdWidth--huge {
- min-width: 750pxpx; }
+ min-width: 750px; }
.g--gutter--scaled .g-span9--huge.g-holdWidth--huge {
- min-width: 730pxpx; }
+ min-width: 730px; }
.g--gutter--scaled .g-span9--huge {
-ms-flex-preferred-size: 74.5% !important;
flex-basis: 74.5% !important;
@@ -1395,42 +1566,48 @@
margin-left: 2%; }
.no-flexbox .g-span9--huge {
width: 75% !important; }
+ .g-offset9--huge {
+ margin-left: 75% !important; }
.g-span10--huge {
- -ms-flex-preferred-size: 83.3333333333% !important;
- flex-basis: 83.3333333333% !important;
+ -ms-flex-preferred-size: 83.33333% !important;
+ flex-basis: 83.33333% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 83.3333333333% !important; }
+ max-width: 83.33333% !important; }
.g-span10--huge.g-holdWidth--huge {
- min-width: 833.333333333pxpx; }
+ min-width: 833.33333px; }
.g--gutter--scaled .g-span10--huge.g-holdWidth--huge {
- min-width: 813.333333333pxpx; }
+ min-width: 813.33333px; }
.g--gutter--scaled .g-span10--huge {
-ms-flex-preferred-size: 83% !important;
flex-basis: 83% !important;
max-width: 83%;
margin-left: 2%; }
.no-flexbox .g-span10--huge {
- width: 83.3333333333% !important; }
+ width: 83.33333% !important; }
+ .g-offset10--huge {
+ margin-left: 83.33333% !important; }
.g-span11--huge {
- -ms-flex-preferred-size: 91.6666666667% !important;
- flex-basis: 91.6666666667% !important;
+ -ms-flex-preferred-size: 91.66667% !important;
+ flex-basis: 91.66667% !important;
-webkit-box-flex: 0;
-ms-flex-positive: 0;
flex-grow: 0;
- max-width: 91.6666666667% !important; }
+ max-width: 91.66667% !important; }
.g-span11--huge.g-holdWidth--huge {
- min-width: 916.666666667pxpx; }
+ min-width: 916.66667px; }
.g--gutter--scaled .g-span11--huge.g-holdWidth--huge {
- min-width: 896.666666667pxpx; }
+ min-width: 896.66667px; }
.g--gutter--scaled .g-span11--huge {
-ms-flex-preferred-size: 91.5% !important;
flex-basis: 91.5% !important;
max-width: 91.5%;
margin-left: 2%; }
.no-flexbox .g-span11--huge {
- width: 91.6666666667% !important; }
+ width: 91.66667% !important; }
+ .g-offset11--huge {
+ margin-left: 91.66667% !important; }
.g-span12--huge {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -1439,9 +1616,9 @@
flex-grow: 0;
max-width: 100% !important; }
.g-span12--huge.g-holdWidth--huge {
- min-width: 1000pxpx; }
+ min-width: 1000px; }
.g--gutter--scaled .g-span12--huge.g-holdWidth--huge {
- min-width: 980pxpx; }
+ min-width: 980px; }
.g--gutter--scaled .g-span12--huge {
-ms-flex-preferred-size: 100% !important;
flex-basis: 100% !important;
@@ -1450,7 +1627,7 @@
.no-flexbox .g-span12--huge {
width: 100% !important; } }
-@media screen and (max-width: 25em) {
+@media (max-width: 399px) {
.g--stack--narrow {
-ms-flex-flow: column nowrap;
flex-flow: column nowrap; }
@@ -1462,7 +1639,7 @@
.no-flexbox .g--stack--narrow > .g-col {
width: 100% !important; } }
-@media screen and (max-width: 46.875em) {
+@media (max-width: 749px) {
.g--stack--mid {
-ms-flex-flow: column nowrap;
flex-flow: column nowrap; }
@@ -1474,7 +1651,7 @@
.no-flexbox .g--stack--mid > .g-col {
width: 100% !important; } }
-@media screen and (max-width: 62.5em) {
+@media (max-width: 999px) {
.g--stack--wide {
-ms-flex-flow: column nowrap;
flex-flow: column nowrap; }
@@ -1486,7 +1663,7 @@
.no-flexbox .g--stack--wide > .g-col {
width: 100% !important; } }
-@media screen and (max-width: 78.125em) {
+@media (max-width: 1249px) {
.g--stack--huge {
-ms-flex-flow: column nowrap;
flex-flow: column nowrap; }
@@ -1498,6 +1675,135 @@
.no-flexbox .g--stack--huge > .g-col {
width: 100% !important; } }
+/**
+ * Colour swatches
+ */
+.sg-swatch {
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 4px;
+ padding: 15px;
+ margin: 15px;
+ text-align: center;
+ -webkit-transition: all 300ms cubic-bezier(0.77, 0, 0.175, 1);
+ transition: all 300ms cubic-bezier(0.77, 0, 0.175, 1);
+ cursor: pointer; }
+ .sg-swatch:hover {
+ border-color: rgba(0, 0, 0, 0.6); }
+ .sg-swatch.is-active {
+ -webkit-animation: sgSwatch 500ms ease-in-out;
+ animation: sgSwatch 500ms ease-in-out; }
+
+@-webkit-keyframes sgSwatch {
+ 50% {
+ opacity: .3; } }
+
+@keyframes sgSwatch {
+ 50% {
+ opacity: .3; } }
+
+.sg-swatch-color {
+ width: 50px;
+ height: 50px;
+ border-radius: 50%;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 10px; }
+
+.sg-swatch-text {
+ font-weight: bold;
+ font-size: 3rem;
+ line-height: 1;
+ display: inline-block;
+ vertical-align: middle;
+ margin: 0 10px; }
+
+.sg-swatch-var {
+ width: 100%;
+ font-family: Menlo, Monaco, "Courier New", monospace;
+ margin-top: 15px;
+ font-size: 12px;
+ display: block; }
+
+.sg-color-link-hover {
+ background-color: #fff; }
+ .sg-color-link-hover .sg-swatch-color {
+ background-color: #185380; }
+ .sg-color-link-hover .sg-swatch-text {
+ color: #185380; }
+ .sg-color-link-hover .sg-swatch-var:after {
+ content: "#185380";
+ display: block; }
+
+.sg-color-primary {
+ background-color: #fff; }
+ .sg-color-primary .sg-swatch-color {
+ background-color: #181830; }
+ .sg-color-primary .sg-swatch-text {
+ color: #181830; }
+ .sg-color-primary .sg-swatch-var:after {
+ content: "#181830";
+ display: block; }
+
+.sg-color-secondary {
+ background-color: #fff; }
+ .sg-color-secondary .sg-swatch-color {
+ background-color: #fe7c08; }
+ .sg-color-secondary .sg-swatch-text {
+ color: #fe7c08; }
+ .sg-color-secondary .sg-swatch-var:after {
+ content: "#fe7c08";
+ display: block; }
+
+.sg-color-highlight {
+ background-color: #fff; }
+ .sg-color-highlight .sg-swatch-color {
+ background-color: #288ad6; }
+ .sg-color-highlight .sg-swatch-text {
+ color: #288ad6; }
+ .sg-color-highlight .sg-swatch-var:after {
+ content: "#288ad6";
+ display: block; }
+
+.sg-color-text {
+ background-color: #f1f1f1; }
+ .sg-color-text .sg-swatch-color {
+ background-color: #444; }
+ .sg-color-text .sg-swatch-text {
+ color: #444; }
+ .sg-color-text .sg-swatch-var:after {
+ content: "#444";
+ display: block; }
+
+.sg-color-background {
+ background-color: #fff; }
+ .sg-color-background .sg-swatch-color {
+ background-color: #f1f1f1; }
+ .sg-color-background .sg-swatch-text {
+ color: #f1f1f1; }
+ .sg-color-background .sg-swatch-var:after {
+ content: "#f1f1f1";
+ display: block; }
+
+.sg-color-border {
+ background-color: #fff; }
+ .sg-color-border .sg-swatch-color {
+ background-color: #ddd; }
+ .sg-color-border .sg-swatch-text {
+ color: #ddd; }
+ .sg-color-border .sg-swatch-var:after {
+ content: "#ddd";
+ display: block; }
+
+.sg-color-link {
+ background-color: #fff; }
+ .sg-color-link .sg-swatch-color {
+ background-color: #288ad6; }
+ .sg-color-link .sg-swatch-text {
+ color: #288ad6; }
+ .sg-color-link .sg-swatch-var:after {
+ content: "#288ad6";
+ display: block; }
+
/**
* Styleguide styles
* Where possible, prefix all classnames with .sg
@@ -1508,11 +1814,11 @@ body {
/**
* Styleguide type styles
*/
-.sg-interfaceType, .sg-sectionHeading, .sg-typeSpecimen:after {
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+.sg-interfaceType, .sg-sectionHeading, .sg-typeSpecimen::after {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
font-weight: 300; }
-.sg-interfaceType--subtle, .sg-typeSpecimen:after {
+.sg-interfaceType--subtle, .sg-typeSpecimen::after {
color: #888; }
.sg-sectionHeading {
@@ -1540,9 +1846,11 @@ body {
background-color: #181830;
color: #fff;
padding: 30px;
- margin-top: 30px; }
+ margin-top: 30px;
+ font-family: Menlo, Monaco, "Courier New", monospace;
+ font-size: 0.6rem; }
.sg-footer h1 {
- margin-bottom: .2em; }
+ margin-bottom: 0.2em; }
.sg-footer a {
color: #fff;
border-bottom: 2px dashed rgba(255, 255, 255, 0.3); }
@@ -1551,210 +1859,134 @@ body {
.sg-footer :last-child {
margin-bottom: 0; }
-/**
- * Colour swatches
- */
-.sg-swatch {
- text-align: center;
- line-height: 30px;
- margin: 5px;
- border: 1px solid #f1f1f1; }
- .sg-swatch code {
- margin: 0 10px;
- display: inline-block;
- padding: 0; }
-
-.sg-swatch-color {
- height: 80px;
- line-height: 80px;
- font-size: 0.65rem;
- font-family: Menlo, Monaco, "Courier New", monospace;
- font-weight: bold; }
- @media screen and (min-width: 25em) {
- .sg-swatch-color {
- height: 120px;
- line-height: 120px; } }
-
-.sg-color-link-hover {
- color: #185380; }
- .sg-color-link-hover .sg-swatch-color {
- background-color: #185380;
- color: #fff; }
- .sg-color-link-hover .sg-swatch-color:before {
- content: "#185380";
- display: block; }
+.sg-kickoffLogo {
+ width: 200px;
+ height: 60px;
+ color: #fff; }
-.sg-color-primary {
+.sg-logo {
+ padding: 1em;
+ text-align: center;
color: #181830; }
- .sg-color-primary .sg-swatch-color {
- background-color: #181830;
+ .sg-logo--dark {
+ background-color: #000;
color: #fff; }
- .sg-color-primary .sg-swatch-color:before {
- content: "#181830";
- display: block; }
-
-.sg-color-secondary {
- color: #fe7c08; }
- .sg-color-secondary .sg-swatch-color {
- background-color: #fe7c08;
- color: #fff; }
- .sg-color-secondary .sg-swatch-color:before {
- content: "#fe7c08";
- display: block; }
-
-.sg-color-highlight {
- color: #288ad6; }
- .sg-color-highlight .sg-swatch-color {
- background-color: #288ad6;
- color: #fff; }
- .sg-color-highlight .sg-swatch-color:before {
- content: "#288ad6";
- display: block; }
-
-.sg-color-text {
- color: #444; }
- .sg-color-text .sg-swatch-color {
- background-color: #444;
- color: #fff; }
- .sg-color-text .sg-swatch-color:before {
- content: "#444";
- display: block; }
-
-.sg-color-background {
- color: #f1f1f1; }
- .sg-color-background .sg-swatch-color {
- background-color: #f1f1f1;
- color: #444;
- border: #f1f1f1 solid 1px; }
- .sg-color-background .sg-swatch-color:before {
- content: "#f1f1f1";
- display: block; }
-
-.sg-color-border {
- color: #ddd; }
- .sg-color-border .sg-swatch-color {
- background-color: #ddd;
- color: #444; }
- .sg-color-border .sg-swatch-color:before {
- content: "#ddd";
- display: block; }
-
-.sg-color-link {
- color: #288ad6; }
- .sg-color-link .sg-swatch-color {
- background-color: #288ad6;
- color: #fff; }
- .sg-color-link .sg-swatch-color:before {
- content: "#288ad6";
- display: block; }
+ .sg-logo svg {
+ max-width: 100%; }
/**
* Typography
*/
.sg-type {
- margin-bottom: 1em; }
+ margin-bottom: 1em;
+ overflow-x: auto; }
code {
border: 0;
background-color: transparent;
- font-size: 0.55rem; }
+ font-size: 0.6rem; }
+
+[data-copy] {
+ cursor: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAWCAYAAAAinad/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA9xpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTYtMTItMzBUMTA6NDQ6MjJaIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxNi0xMi0zMFQxMDo1NDo0NyIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNi0xMi0zMFQxMDo1NDo0NyIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjhERUY1NzlDNkEyMTFFNkE3NUU5RDQ3RUI5OEI5RkIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjhERUY1N0FDNkEyMTFFNkE3NUU5RDQ3RUI5OEI5RkIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCOERFRjU3N0M2QTIxMUU2QTc1RTlENDdFQjk4QjlGQiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCOERFRjU3OEM2QTIxMUU2QTc1RTlENDdFQjk4QjlGQiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqrLc8cAAACNSURBVHjaYmJgYHAA4vdA/J9EjAGYgHgBEAswUAGwALE8iPH//3+SNDIyMmJ1GdUAhmEHDhxgUFRUBNuMD6OF331o2EMEYICfn/8/GZEBNpAF3WUfP35kIDUMoS5VoG2YjRo2ahgNDAPlAEa0UuD/aJgRDDOMggOI+bGVpATAQ2wuC4AaSAoAqU8ACDAAGZA8XJlAypoAAAAASUVORK5CYII=) 13 10, auto !important; }
+ [data-copy]:hover, [data-copy]:active {
+ opacity: 0.5; }
.sg-type-micro .sg-type-item {
- font-size: 0.65rem; }
- .sg-type-micro .sg-type-item:after {
- content: "@include font-size(micro) / 13px";
- font-size: 0.65rem;
+ font-size: 0.64rem; }
+ .sg-type-micro .sg-type-item::after {
+ content: "Name: micro // Size: 12.8px // Use: @include ko-font-size(micro) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-smallest .sg-type-item {
font-size: 0rem; }
- .sg-type-smallest .sg-type-item:after {
- content: "@include font-size(smallest) / px";
- font-size: 0.65rem;
+ .sg-type-smallest .sg-type-item::after {
+ content: "Name: smallest // Size: px // Use: @include ko-font-size(smallest) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-smaller .sg-type-item {
font-size: 0rem; }
- .sg-type-smaller .sg-type-item:after {
- content: "@include font-size(smaller) / px";
- font-size: 0.65rem;
+ .sg-type-smaller .sg-type-item::after {
+ content: "Name: smaller // Size: px // Use: @include ko-font-size(smaller) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-small .sg-type-item {
font-size: 0.8rem; }
- .sg-type-small .sg-type-item:after {
- content: "@include font-size(small) / 16px";
- font-size: 0.65rem;
+ .sg-type-small .sg-type-item::after {
+ content: "Name: small // Size: 16px // Use: @include ko-font-size(small) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-base .sg-type-item {
font-size: 1rem; }
- .sg-type-base .sg-type-item:after {
- content: "@include font-size(base) / 20px";
- font-size: 0.65rem;
+ .sg-type-base .sg-type-item::after {
+ content: "Name: base // Size: 20px // Use: @include ko-font-size(base) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-mid .sg-type-item {
font-size: 1.25rem; }
- .sg-type-mid .sg-type-item:after {
- content: "@include font-size(mid) / 25px";
- font-size: 0.65rem;
+ .sg-type-mid .sg-type-item::after {
+ content: "Name: mid // Size: 25px // Use: @include ko-font-size(mid) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-large .sg-type-item {
- font-size: 1.6rem; }
- .sg-type-large .sg-type-item:after {
- content: "@include font-size(large) / 32px";
- font-size: 0.65rem;
+ font-size: 1.5625rem; }
+ .sg-type-large .sg-type-item::after {
+ content: "Name: large // Size: 31.25px // Use: @include ko-font-size(large) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-largest .sg-type-item {
font-size: 0rem; }
- .sg-type-largest .sg-type-item:after {
- content: "@include font-size(largest) / px";
- font-size: 0.65rem;
+ .sg-type-largest .sg-type-item::after {
+ content: "Name: largest // Size: px // Use: @include ko-font-size(largest) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-type-jumbo .sg-type-item {
- font-size: 2rem; }
- .sg-type-jumbo .sg-type-item:after {
- content: "@include font-size(jumbo) / 40px";
- font-size: 0.65rem;
+ font-size: 1.95312rem; }
+ .sg-type-jumbo .sg-type-item::after {
+ content: "Name: jumbo // Size: 39.0625px // Use: @include ko-font-size(jumbo) ";
+ font-size: 0.64rem;
display: block;
font-weight: normal;
font-family: Menlo, Monaco, "Courier New", monospace;
- opacity: .6; }
+ opacity: 0.6; }
.sg-typeSpecimen {
margin-bottom: 0;
margin-top: 0;
-ms-word-wrap: break-word;
word-wrap: break-word; }
- .sg-typeSpecimen:after {
+ .sg-typeSpecimen::after {
display: block;
font-size: 0.8rem;
margin-top: 5px;
@@ -1763,7 +1995,7 @@ code {
.sg-typeSpecimen--primary {
font-size: 1.5rem;
- font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; }
.sg-typeSpecimen--secondary {
font-size: 1.5rem;
@@ -1807,199 +2039,220 @@ code {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--baseFontSize strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--baseFontSize strong {
width: 20%;
display: inline-block; } }
- .sg-var--baseFontSize:after {
+ .sg-var--baseFontSize::after {
content: "20"; }
.sg-var--leadingBase {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--leadingBase strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--leadingBase strong {
width: 20%;
display: inline-block; } }
- .sg-var--leadingBase:after {
+ .sg-var--leadingBase::after {
content: "1.4"; }
.sg-var--typeScale {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--typeScale strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--typeScale strong {
width: 20%;
display: inline-block; } }
- .sg-var--typeScale:after {
+ .sg-var--typeScale::after {
content: "1.25"; }
.sg-var--fontFamilyMono {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--fontFamilyMono strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--fontFamilyMono strong {
width: 20%;
display: inline-block; } }
- .sg-var--fontFamilyMono:after {
+ .sg-var--fontFamilyMono::after {
content: "Menlo, Monaco, Courier New, monospace"; }
+.sg-var--fontFamilySystem {
+ line-height: 2;
+ font-family: Menlo, Monaco, "Courier New", monospace;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ font-size: 0.6rem; }
+ .sg-var--fontFamilySystem strong {
+ opacity: 0.6;
+ text-transform: uppercase;
+ display: block;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+ @media (min-width: 751px) {
+ .sg-var--fontFamilySystem strong {
+ width: 20%;
+ display: inline-block; } }
+ .sg-var--fontFamilySystem::after {
+ content: "-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif"; }
+
.sg-var--fontFamilySans {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--fontFamilySans strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--fontFamilySans strong {
width: 20%;
display: inline-block; } }
- .sg-var--fontFamilySans:after {
+ .sg-var--fontFamilySans::after {
content: "Helvetica Neue, Helvetica, Arial, sans-serif"; }
.sg-var--fontFamilySerif {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--fontFamilySerif strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--fontFamilySerif strong {
width: 20%;
display: inline-block; } }
- .sg-var--fontFamilySerif:after {
+ .sg-var--fontFamilySerif::after {
content: "Georgia, Times New Roman, Times, serif"; }
.sg-var--breakpoints {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--breakpoints strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--breakpoints strong {
width: 20%;
display: inline-block; } }
- .sg-var--breakpoints:after {
+ .sg-var--breakpoints::after {
content: "(narrow: 400px, mid: 750px, wide: 1000px, huge: 1250px)"; }
.sg-var--layoutWidth {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--layoutWidth strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--layoutWidth strong {
width: 20%;
display: inline-block; } }
- .sg-var--layoutWidth:after {
- content: "1000px"; }
+ .sg-var--layoutWidth::after {
+ content: "1000"; }
.sg-var--gridColumns {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--gridColumns strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--gridColumns strong {
width: 20%;
display: inline-block; } }
- .sg-var--gridColumns:after {
+ .sg-var--gridColumns::after {
content: "12"; }
.sg-var--gridGutter {
line-height: 2;
font-family: Menlo, Monaco, "Courier New", monospace;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 0.65rem; }
+ font-size: 0.6rem; }
.sg-var--gridGutter strong {
- opacity: .6;
+ opacity: 0.6;
text-transform: uppercase;
display: block;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none; }
- @media screen and (min-width: 46.875em) {
+ @media (min-width: 751px) {
.sg-var--gridGutter strong {
width: 20%;
display: inline-block; } }
- .sg-var--gridGutter:after {
+ .sg-var--gridGutter::after {
content: "20"; }
-/*# sourceMappingURL=styleguide.css.map */
\ No newline at end of file
+
+/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlZ3VpZGUuY3NzIiwic3R5bGVndWlkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL2Z1bmN0aW9ucy9fZ2V0LXZhbHVlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvZnVuY3Rpb25zL19tYXAtZGVlcC1nZXQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9mdW5jdGlvbnMvX211bHRpcGx5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvbWl4aW5zL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX3Jlc3BvbnNpdmUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX2hpZHBpLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMva2lja29mZi11dGlscy5zY3NzL3Njc3MvbWl4aW5zL191bml0cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLXV0aWxzLnNjc3Mvc2Nzcy9taXhpbnMvX3ZlcnRpY2FsLWNlbnRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fdXRpbGl0eS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtdXRpbHMuc2Nzcy9zY3NzL21peGlucy9fbW9kdWxlLW5hbWluZy1oZWxwZXJzLnNjc3MiLCJfY29sb3ItcGFsZXR0ZS5zY3NzIiwiX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZ3JpZC5jc3Mvc2Nzcy9pbmRleC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2tpY2tvZmYtZ3JpZC5jc3Mvc2Nzcy9fZ3JpZC12YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9raWNrb2ZmLWdyaWQuY3NzL3Njc3MvX2dyaWQtaGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwic3R5bGVndWlkZS9fc3dhdGNoLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7R0FHRztBQ0hIOzs7Ozs7R0FNRztBQWFIOzs7Ozs7Ozs7R0FTRztBQU1IOzs7Ozs7Ozs7R0FTRztBQzNDSDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQ2hCSDs7Ozs7R0FLRztBQXNFSDs7Ozs7O0dBTUc7QUNqRkg7Ozs7Ozs7O0dBUUc7QUNSSDs7Ozs7Ozs7R0FRRztBQ1JIOzs7Ozs7O0dBT0c7QUFjSDs7OztHQUlHO0FBVUg7Ozs7R0FJRztBQVVIOzs7O0dBSUc7QUNyREg7Ozs7R0FJRztBQVdIOzs7R0FHRztBQWFIOzs7R0FHRztBQ2pDSDs7Ozs7OztHQU9HO0FBV0g7O0dBRUc7QUNyQkg7Ozs7R0FJRztBQ0pIOzs7OztHQUtHO0FDTEg7Ozs7Ozs7OztHQVNHO0FBNEZIOztHQUVHO0FDdkdIOzs7Ozs7R0FNRztBQ05IOzs7Ozs7Ozs7O0dBVUc7QUNWSDs7Ozs7Ozs7R0FRRztBQUVILG1DQUFtQztBQUVuQzs7Ozs7OztHQU9HO0FBc0NIOzs7Ozs7O0dBT0c7QUFpQkg7Ozs7OztHQU1HO0FBVUg7OztHQUdHO0FBSUg7OztHQUdHO0FBTUg7OztHQUdHO0FDcEhIOzs7Ozs7Ozs7R0FTRztBQUlILG9D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ZiwwQkFBa0I7T0FBbEIsdUJBQWtCO1FBQWxCLHNCQUFrQjtZQUFsQixrQkFBa0IsRUFNbEI7SWtCOFRFO01sQnhVSDtRQU9FLFdBQVc7UUFDWCxzQkFBc0IsRUFFdkIsRUFBQTtFQXFERjtJQWxERSxjQUFrQixFQUNsQiIsImZpbGUiOiJzdHlsZWd1aWRlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogS2lja29mZiBTdHlsZWd1aWRlXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiBrby1nZXRWYWwoMTAwLCAkbWFwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tZ2V0VmFsKG1pZCwgJG1hcCkgLSB1c2VzIGEgU2FzcyBtYXBcbiAqIGtvLWdldFZhbCgkZm9vLCAkbWFwKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cbi8qKlxuICogR2V0IGJyZWFrcG9pbnRzXG4gKlxuICoga28tYnAoKVxuICpcbiAqIFVzYWdlOlxuICoga28tYnAoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tYnAobWlkKSAtIHVzZXMgdGhlICRicmVha3BvaW50cyBTYXNzIG1hcFxuICoga28tYnAoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG4vKipcbiAqIEdldCB0eXBlIHNpemVcbiAqXG4gKiBrby10eXBlKClcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLXR5cGUoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tdHlwZShtaWQpIC0gdXNlcyB0aGUgJHR5cGUgU2FzcyBtYXBcbiAqIGtvLXR5cGUoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG4vKipcbiAqIFVzYWdlOlxuICpcbiAkZ3JpZC1jb25maWd1cmF0aW9uOiAoXG4gICAnY29sdW1ucyc6IDEyLFxuICAgJ2xheW91dHMnOiAoXG4gICAgICdzbWFsbCc6IDgwMHB4LFxuICAgICAnbWVkaXVtJzogMTAwMHB4LFxuICAgICAnbGFyZ2UnOiAxMjAwcHgsXG4gICApLFxuICk7XG5cbiBkaXYge1xuICAgZm9udC1zaXplOiBrby1tYXAtZGVlcC1nZXQoJGdyaWQtY29uZmlndXJhdGlvbiwgJ2NvbHVtbnMnKTtcbiAgIHdpZHRoOiBrby1tYXAtZGVlcC1nZXQoJGdyaWQtY29uZmlndXJhdGlvbiwgJ2xheW91dHMnLCAnbWVkaXVtJyk7XG4gfVxuICovXG4vKipcbiAqIE1vZHVsYXIgc2NhbGVcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVXNhZ2U6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAzLCAkdHlwZS1zY2FsZSlcbiAqIG9yIHdpdGggdGhlIHNob3J0aGFuZCB2ZXJzaW9uOiBrby1tcygzKVxuICovXG4vKipcbiAqIFNob3J0aGFuZCBtb2R1bGFyIHNjYWxlXG4gKiBVc2VzIHRoZSAkZm9udC1zaXplLWJhc2UgYW5kICR0eXBlLXNjYWxlIGZyYW1ld29yayB2YXJpYWJsZXMgc28gdGhhdCB5b3VcbiAqIG9ubHkgbmVlZCB0byBwcm92aWRlIHRoZSBzY2FsZSBpbmNyZW1lbnRcbiAqXG4gKiBlLmcuIGtvLW1zKDUpXG4gKi9cbi8qKlxuICogTXVsdGlwbHlcbiAqID09PT09PT09PT09PT09PT09XG4gKiBNdWx0aXBseSBhbnkgdmFsdWVcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLW11bHRpcGx5KDE1LCAyKVxuICoga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAxLjUpXG4gKi9cbi8qKlxuICogU2FzcyBNaXhpbnNcbiAqIC0gUmVzcG9uc2l2ZVxuICogLSBEaW1lbnNpb25zXG4gKiAtIFBvc2l0aW9uaW5nXG4gKiAtIFV0aWxpdHlcbiAqIC0gRm9ybXNcbiAqIC0gTW9kdWxlIE5hbWluZyBIZWxwZXJzXG4gKi9cbi8qKlxuICogUmVzcG9uc2l2ZSBtZWRpYSBxdWVyeSBtaXhpbnNcbiAqIC0gVGhlc2UgYXJlIHVzZWQgc28gdGhhdCB3ZSBjYW4gZGVmaW5lIHNlcGFyYXRlIG1lZGlhLXF1ZXJ5IGNvbnRlbnRcbiAqIC0gQXJndW1lbnRzIGNhbiB1c2U6XG4gKiAgIC0gYSBuYW1lZCBicmVha3BvaW50IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwLCBlLmcuIG1pZFxuICogICAtIGEgcGl4ZWwgdmFsdWUgZS5nLiA1MDBweFxuICogICAtIGEgdW5pdGxlc3MgdmFsdWUgdGhhdCBpcyBlcWl2YWxlbnQgdG8gYSBwaXhlbCBlLmcuIDUwMFxuICovXG4vKipcbiAqIE1pbi13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1taW4obWlkKSB7IC4uLiB9O1xuICovXG4vKipcbiAqIE1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1tYXgobWlkKSB7IC4uLiB9O1xuICovXG4vKipcbiAqIE1pbi1tYXgtd2lkdGggbWVkaWEgcXVlcnk6XG4gKiAtIEVxdWl2YWxlbnQgdG86IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEwZW0pIGFuZCAobWF4LXdpZHRoOiAyMGVtKSB7IC4uLiB9XG4gKiAtIFVzYWdlOiBAaW5jbHVkZSBrby1yZXNwb25kLW1pbi1tYXgobmFycm93LCA2MDApIHsgLi4uIH07XG4gKi9cbi8qKlxuICogIEhpRFBJIG1peGluLlxuICogIEBpbmNsdWRlIGtvLWhpZHBpIHsgLi4uIH07XG4gKiAgRGVmYXVsdCB2YWx1ZSBzZXQgdG8gMS4zIHRvIHRhcmdldCBHb29nbGUgTmV4dXMgNyAoaHR0cDovL2JqYW5nby5jb20vYXJ0aWNsZXMvbWluLWRldmljZS1waXhlbC1yYXRpby8pXG4gKi9cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1pbmltdW0gd2lkdGggbWVkaWEgcXVlcnlcbiAqIEBpbmNsdWRlIGtvLWhpZHBpLW1pbihicChtaWQpLCAxLjUpIHsgLi4uIH07XG4gKi9cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1heCB3aWR0aCBtZWRpYSBxdWVyeVxuICogQGluY2x1ZGUga28taGlkcGktbWF4KGJwKG1pZCksIDEuMykgeyAuLi4gfTtcbiAqL1xuLyoqXG4gKiBEaW1lbnNpb25zLWJhc2VkIG1peGluc1xuICogLSBSRU0gY2FsY3VsYXRpb25cbiAqIC0gVHlwb2dyYXBoeSBtaXhpbnMgYmFzZWQgb24gdGhlIFJFTSBtaXhpblxuICogICAtIGZvbnQtc2l6ZVxuICogICAtIGxpbmUtaGVpZ2h0XG4gKiAgIC0gZm9udC1zaXplLWVtc1xuICovXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zXG4gKi9cbi8qKlxuICoga28tcG9zaXRpb25cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUga28tcG9zaXRpb24oYWJzb2x1dGUsIDEwcHggMjBweCAzMHB4IDEwcHgpO1xuICovXG4vKipcbiAqIHZlcnRpY2FsLWNlbnRlclxuICogVmVydGljYWxseSBjZW50ZXIgYW55IGVsZW1lbnQuIE5lZWRzIHN1cHBvcnQgZm9yIENTUyB0cmFuZm9ybXMuXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIGtvLXZlcnRpY2FsLWNlbnRlcjtcbiAqL1xuLyoqXG4gKiBVdGlsaXR5IE1peGluc1xuICogLSBjbGVhcmZpeFxuICogLSBmb250LWZhY2VcbiAqIC1cbiAqIC0gc2l6aW5nIHNob3J0Y3V0c1xuICogICAtIHNpemVcbiAqICAgLSBzcXVhcmVcbiAqIC0gcmVzaXphYmxlXG4gKi9cbi8qKlxuICogU2l6aW5nIHNob3J0Y3V0c1xuICovXG4vKipcbiAqIGJlbWlmeSBbbW9kaWZpZWQgZm9yIEtpY2tvZmZdXG4gKiBodHRwczovL2d0aWh1Yi5jb20vZnJhbnpoZWlkbC9iZW1pZnlcbiAqIEZyYW56IEhlaWRsIDIwMTVcbiAqXG4gKiBVc2FnZTogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vbXJtYXJ0aW5lYXUvMGNkMjAxMGJmMjY1ZDcxMmJhZmJcbiAqL1xuLyoqXG4gKiBHbG9iYWwgY29sb3IgcGFsZXR0ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEdlbmVyaWMgY29sb3JzXG4gKiAtIENvbG9yIHNjaGVtZVxuICogLSBDb21tb24gY29sb3JzXG4gKiAtIExpbmtzXG4gKiAtIFRleHQgc2VsZWN0aW9uXG4gKiAtIDxocj5cbiAqIC0gQW55IG90aGVycy4uXG4gKi9cbi8qKlxuICogVmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIC0gVHlwb2dyYXBoeVxuICogLSBCcmVha3BvaW50c1xuICogLSBQYXRoc1xuICogLSBMYXlvdXQgJiBHcmlkXG4gKiAtIEFwcC1zcGVjaWZpY1xuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBpbmRlbnRhdGlvbiAqL1xuLyoqXG4gKiBUeXBvZ3JhcGh5XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqXG4gKiBCYXNlIHNpemVzOlxuICogU2V0IHRoaXMgaW4gcGl4ZWxzIChidXQgZG8gbm90IGFkZCBweCksXG4gKiB0aGUgZm9udC1zaXplIG1peGluIHdpbGwgY29udmVydCB0byBSRU1TXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlcmUgYXJlIG5vIGNvbW1vbiBicmVha3BvaW50cyBzbyB0aGVzZSBhcmUganVzdCBhIHN1Z2dlc3Rpb25zXG4gKiBZb3UnbGwgbmVlZCB0byBkZWZpbmUgeW91ciBvd24gYnJlYWtwb2ludHMgdG8gc3VpdCB5b3VyIGRlc2lnblxuICogQWRkIHlvdXIgYnJlYWtwb2ludHMgdG8gdGhpcyBTYXNzIG1hcFxuICogVXNlZCBpbiB0aGUgS2lja29mZiBncmlkXG4gKi9cbi8qKlxuICogR3JpZFxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBUaGVzZSB2YXJpYWJsZXMgd2lsbCBjb250cm9sIHRoZSBncmlkIG1vZHVsZS5cbiAqXG4gKiBpZiB5b3VyIHByb2plY3QgZG9lc250IHVzZSBLaWNrb2Zm4oCZcyBkZWZhdWx0IGdyaWQsIHlvdSBjYW4gZGVsZXRlIHRoZXNlXG4gKi9cbi8qKlxuICogUGF0aCB2YXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4vKipcbiAqIFotaW5kZXggdmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBBcHAtc3BlY2lmaWMgdmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuLyoqXG4gKiBUaGUgS2lja29mZiBGbGV4Ym94IEdyaWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRGVmYXVsdCBncmlkIGNsYXNzZXNcbiAqIEdyaWQgZ3V0dGVyIG9wdGlvbnNcbiAqIE1vZGlmaWVyIENsYXNzZXMgKGNvbHVtbiBoZWlnaHQgYW5kIGNlbGwgYWxpZ25tZW50KVxuICogTGVnYWN5IGZhbGxiYWNrcyBmb3IgZmxleGJveFxuICogR3JpZCBzcGFuIGNsYXNzZXNcbiAqIEJyZWFrcG9pbnQgc3RhY2tpbmdcbiAqL1xuLyogSW1wb3J0IEdyaWQgaGVscGVycyBhbmQgbWl4aW5zICovXG4vKipcbiAqIEdyaWQgVmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFRoZXNlIGFyZSBkZWZpbmVkIGhlcmUgc28gdGhhdCB0aGUgZ3JpZCBjYW4gcnVuIGFzIGEgc3RhbmRhbG9uZSBtb2R1bGUgKG91dHNpZGUgb2YgS2lja29mZiksXG4gKiBhcyB3ZWxsIGFzIGFsbG93aW5nIHRoZXNlIGZpbGVzIHRvIGJlIGdlbmVyYXRlZCBpbnRvIHN0YW5kYXJkIENTUy5cbiAqXG4gKiBXaGVuIGltcG9ydGluZyB0aGUgZ3JpZCBpbnRvIHlvdXIgb3duIHByb2plY3QsIGNvcHkgdGhlIHZhcmlhYmxlcyBmcm9tIHRoaXMgZmlsZSBpbnRvIHlvdXIgb3duIHZhcmlhYmxlcy5zY3NzXG4gKiBUaGV5IHdpbGwgdGhlbiBvdmVycmlkZSB0aGUgdmFsdWVzIHNwZWNpZmllZCBoZXJlIChhcyBsb25nIGFzIHRoZSBncmlkIGlzIGltcG9ydGVkIGJlbG93IHdoZXJlIHlvdXIgb3duIHZhcmlhYmxlcyBhcmUgZGVmaW5lZCkuXG4gKi9cbi8qKlxuICogS2lja29mZiBncmlkIGhlbHBlcnNcbiAqL1xuLyoqXG4gKiBHcmlkIHN0YWNraW5nXG4gKiBTdGFjayBncmlkcyBiYXNlZCBvbiBhIGdpdmVuIGJyZWFrcG9pbnRcbiAqXG4gKiBVc2FnZTpcbiAqIC5nLS1zdGFjay0tbmFycm93XG4gKiAuZy0tc3RhY2stLXdpZGVcbiAqL1xuLyoqXG4gKiBHdXR0ZXIgQ2FsY3VsYXRpb25zXG4gKiBEZWZhdWx0OiBwZXJjZW50XG4gKiBVc2FnZToga28tZ3V0dGVyQ2FsYygpIG9yIGtvLWd1dHRlckNhbGMoZmFsc2UpXG4gKiBXaGVuIHNob3ctdW5pdCBpcyB0cnVlLCByZXR1cm5zIHRoZSBwZXJjZW50YWdlLCBvdGhlcndpc2UgcmV0dXJuIGEgZGVjaW1hbFxuICovXG4vKipcbiAqIEdyaWQgY29sdW1ucyB3aWR0aCBjYWxjdWxhdGlvbnNcbiAqIFRoaXMgaXMgd2hlcmUgdGhlIG1hZ2ljIG9mIHdvcmtpbmcgb3V0IHRoZSBjb2x1bW4gd2lkdGhzIGhhcHBlbnNcbiAqXG4gKiAkY29sdW1uLXNwYW46IGRlZmluZSB0aGUgd2lkdGggZm9yIHRoZSBudW1iZXIgb2YgY29sdW1ucyByZXF1aXJlZFxuICogJHNob3ctdW5pdDogU3dpdGNoIHJldHVybiB2YWx1ZSBiZXR3ZWVuIHBlcmNlbnRhZ2UgKGRlZmF1bHQpIGFuZCBkZWNpbWFsXG4gKiAkaW5jbHVkZS1ndXR0ZXJzOiBpZiBndXR0ZXJzIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgY2FsY3VsYXRpb25zLiBEZWZhdWx0ID0gZmFsc2VcbiAqICRsZWdhY3ktY2FsYzogaWYgd2UgYXJlIHdvcmtpbmcgb3V0IGEgbGVnYWN5IGNvbHVtbiB3aWR0aCBjYWxjdWxhdGlvbiwgb3Igbm90LiBEZWZhdWx0ID0gZmFsc2VcbiAqL1xuLyoqXG4gKiBDb2x1bW4gd2lkdGggbWl4aW5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUgY29sdW1uKDIpO1xuICovXG4vKipcbiAqIEJhc2ljIFVzYWdlOlxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdDxkaXYgY2xhc3M9XCJnXCI+XG5cdFx0PGRpdiBjbGFzcz1cImctY29sIGctc3BhbjQgZy1zcGFuNi0tbWlkXCI+PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImctY29sIGctc3BhbjggZy1zcGFuNi0tbWlkXCI+PC9kaXY+XG5cdDwvZGl2PlxuICovXG4uZyB7XG4gIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5nIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5nLWNvbCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmbGV4OiAxIDAgMDtcbiAgbWluLXdpZHRoOiAwOyB9XG5cbi8qKlxuICogR3V0dGVyIGNhbGNzIOKAkyBhcHBsaWVkIHRvIGdyaWQgY29sdW1ucyBpbiBvdXIgZ3JpZCAoZGlyZWN0IGRlc2NlbmRhbnRzIG9ubHkpXG4gKiBEZWZhdWx0OiBwaXhlbHMgKGNhbiBsb29rIGF0IGNoYW5naW5nIHRvIHBlcmNlbnRhZ2UpXG4gKiBVc2FnZTogZ3V0dGVyQ2FsYygpIG9yIGd1dHRlckNhbGMoZmFsc2UpXG4gKi9cbi5nLS1ndXR0ZXIge1xuICBtYXJnaW4tbGVmdDogLTEwcHg7XG4gIG1hcmdpbi1yaWdodDogLTEwcHg7IH1cbiAgLmctLWd1dHRlciA+IC5nLWNvbCB7XG4gICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7IH1cblxuLmctLWd1dHRlci0tc2NhbGVkID4gLmctY29sIHtcbiAgbWFyZ2luLWxlZnQ6IDIlO1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkID4gLmctY29sOmZpcnN0LWNoaWxkIHtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuXG4uZy0tc3RhY2sgPiAuZy1jb2wge1xuICBmbGV4LWJhc2lzOiAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLmctLXN0YWNrLmctLWd1dHRlci0tc2NhbGVkID4gLmctY29sIHtcbiAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyoqXG4gKiAuZy0tZXF1YWxIZWlnaHQg4oCTIEVxdWFsIEhlaWdodCBDaGlsZCBFbGVtZW50c1xuICovXG4uZy0tZXF1YWxIZWlnaHQgPiAuZy1jb2wge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5nLS1lcXVhbEhlaWdodCA+IC5nLWNvbCA+ICoge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IH1cblxuLyoqXG4gKiBBbGlnbm1lbnRcbiAqIE1vZGlmaWVyIGNsYXNzZXMgdG8gbW92ZSBvdXIgZ3JpZCBlbGVtZW50cyBhcm91bmRcbiAqL1xuLmctLWFsaWduVG9wIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cblxuLmctLWFsaWduQm90dG9tIHtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG5cbi5nLS1hbGlnblNlbGZCb3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4uZy0tYWxpZ25SaWdodCB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmctLWFsaWduQ2VudGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuLmctLWFsaWduQ2VudGVyLS12IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG4vKipcbiAqIENlbnRlcmluZ1xuICogQ2VudGVycyBhbiBpbmRpdmlkdWFsIGNvbHVtbiwgcmF0aGVyIHRoYW4gdGhlIGVudGlyZSBncmlkXG4gKi9cbi5nLWNvbC0tY2VudGVyZWQge1xuICBtYXJnaW46IDAgYXV0bzsgfVxuXG4vKipcbiAqIFNocmlua2luZyBDb250ZW50XG4gKiBTaHJpbmsgYSAuZy1jb2wgZG93biB0byBvbmx5IHRoZSBzcGFjZSBpdCBuZWVkcyAoZmxleGJveCBvbmx5KVxuICpcbiAqIEVmZmVjdGl2ZWx5IGp1c3QgY2hhbmdlcyBpdOKAmXMgdmFsdWVzIGJhY2sgdG8gdGhlIGRlZmF1bHQgZmxleCBwcm9wZXJ0aWVzXG4gKi9cbi5nLWNvbC0tc2hyaW5rIHtcbiAgZmxleDogMCAxIGF1dG87IH1cblxuLyoqXG4gKiBBZGQgZmFsbGJhY2tzIGZvciBub24tZmxleGJveCBzdXBwb3J0aW5nIGJyb3dzZXJzIChmb3IgZXhhbXBsZSwgSUU4LzkpXG4gKi9cbi5uby1mbGV4Ym94IC5nIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAubm8tZmxleGJveCAuZzphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4ubm8tZmxleGJveCAuZy1jb2wge1xuICBmbG9hdDogbGVmdDtcbiAgbWluLWhlaWdodDogMXB4O1xuICBjbGVhcjogbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4ubm8tZmxleGJveCAuZy0tc3RhY2sgLmctY29sIHtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLm5vLWZsZXhib3ggLmctLWVxdWFsSGVpZ2h0ID4gLmctY29sIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBHcmlkIFNwYW4gY2xhc3NlcyAoZm9yIGRpZmZlcmVudCBicmVha3BvaW50cylcbiAqXG4gKiBBcHBsaWVkIGJ5IHVzaW5nIC5nLXNwYW54IHRvIC5nLWNvbCBlbGVtZW50cywgd2hlcmUgeCBpcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnNcbiAqL1xuLmctc3BhbjEge1xuICBmbGV4LWJhc2lzOiA4LjMzMzMzJSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMS5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiA4My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNjMuMzMzMzNweDsgfVxuICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEge1xuICAgIGZsZXgtYmFzaXM6IDYuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDYuNSU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW4xIHtcbiAgICB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQxIHtcbiAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjIge1xuICBmbGV4LWJhc2lzOiAxNi42NjY2NyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4yLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDE2Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogMTQ2LjY2NjY3cHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yIHtcbiAgICBmbGV4LWJhc2lzOiAxNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDE1JTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjIge1xuICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQyIHtcbiAgbWFyZ2luLWxlZnQ6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLXNwYW4zIHtcbiAgZmxleC1iYXNpczogMjUlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiAyNTBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy5nLWhvbGRXaWR0aCB7XG4gICAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMyB7XG4gICAgZmxleC1iYXNpczogMjMuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuMyB7XG4gICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDMge1xuICBtYXJnaW4tbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjQge1xuICBmbGV4LWJhc2lzOiAzMy4zMzMzMyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW40LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDMzMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogMzEzLjMzMzMzcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40IHtcbiAgICBmbGV4LWJhc2lzOiAzMiUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDMyJTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjQge1xuICAgIHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQ0IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLXNwYW41IHtcbiAgZmxleC1iYXNpczogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNS5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiA0MTYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS5nLWhvbGRXaWR0aCB7XG4gICAgICBtaW4td2lkdGg6IDM5Ni42NjY2N3B4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNSB7XG4gICAgZmxleC1iYXNpczogNDAuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDQwLjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuNSB7XG4gICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjYge1xuICBmbGV4LWJhc2lzOiA1MCUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDUwMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNDgwcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42IHtcbiAgICBmbGV4LWJhc2lzOiA0OSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjYge1xuICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQ2IHtcbiAgbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG5cbi5nLXNwYW43IHtcbiAgZmxleC1iYXNpczogNTguMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNy5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiA1ODMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy5nLWhvbGRXaWR0aCB7XG4gICAgICBtaW4td2lkdGg6IDU2My4zMzMzM3B4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNyB7XG4gICAgZmxleC1iYXNpczogNTcuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDU3LjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuNyB7XG4gICAgd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDcge1xuICBtYXJnaW4tbGVmdDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cblxuLmctc3Bhbjgge1xuICBmbGV4LWJhc2lzOiA2Ni42NjY2NyUgIWltcG9ydGFudDtcbiAgZmxleC1ncm93OiAwO1xuICBtYXgtd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW44LmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDY2Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogNjQ2LjY2NjY3cHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44IHtcbiAgICBmbGV4LWJhc2lzOiA2NiUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDY2JTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3Bhbjgge1xuICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuXG4uZy1vZmZzZXQ4IHtcbiAgbWFyZ2luLWxlZnQ6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG5cbi5nLXNwYW45IHtcbiAgZmxleC1iYXNpczogNzUlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiA3NTBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS5nLWhvbGRXaWR0aCB7XG4gICAgICBtaW4td2lkdGg6IDczMHB4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOSB7XG4gICAgZmxleC1iYXNpczogNzQuNSUgIWltcG9ydGFudDtcbiAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuOSB7XG4gICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDkge1xuICBtYXJnaW4tbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjEwIHtcbiAgZmxleC1iYXNpczogODMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gIGZsZXgtZ3JvdzogMDtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTAuZy1ob2xkV2lkdGgge1xuICAgIG1pbi13aWR0aDogODMzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogODEzLjMzMzMzcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMCB7XG4gICAgZmxleC1iYXNpczogODMlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiA4MyU7XG4gICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gIC5uby1mbGV4Ym94IC5nLXNwYW4xMCB7XG4gICAgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLW9mZnNldDEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG5cbi5nLXNwYW4xMSB7XG4gIGZsZXgtYmFzaXM6IDkxLjY2NjY3JSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjExLmctaG9sZFdpZHRoIHtcbiAgICBtaW4td2lkdGg6IDkxNi42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS5nLWhvbGRXaWR0aCB7XG4gICAgICBtaW4td2lkdGg6IDg5Ni42NjY2N3B4OyB9XG4gIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEge1xuICAgIGZsZXgtYmFzaXM6IDkxLjUlICFpbXBvcnRhbnQ7XG4gICAgbWF4LXdpZHRoOiA5MS41JTtcbiAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgLm5vLWZsZXhib3ggLmctc3BhbjExIHtcbiAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctb2Zmc2V0MTEge1xuICBtYXJnaW4tbGVmdDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cblxuLmctc3BhbjEyIHtcbiAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICBmbGV4LWdyb3c6IDA7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi5nLWhvbGRXaWR0aCB7XG4gICAgbWluLXdpZHRoOiAxMDAwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLmctaG9sZFdpZHRoIHtcbiAgICAgIG1pbi13aWR0aDogOTgwcHg7IH1cbiAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMiB7XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAubm8tZmxleGJveCAuZy1zcGFuMTIge1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQwMHB4KSB7XG4gIC5nLXNwYW4xLS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDguMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiA2LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDYuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMS0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDEtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjItLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogMTYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMi0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiAxNjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogMTQ2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiAxNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjItLW5hcnJvdyB7XG4gICAgICB3aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Mi0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjMtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogMjUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMy0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiAyNTBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogMjMwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiAyMy41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAyMy41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4zLS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDMtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW40LS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjQtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogMzMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNC0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDMxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogMzIlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDMyJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW40LS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDQtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW41LS1uYXJyb3cge1xuICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjUtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgIG1pbi13aWR0aDogNDE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDM5Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS1uYXJyb3cge1xuICAgICAgZmxleC1iYXNpczogNDAuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDAuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNS0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ1LS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNi0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA1MCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW42LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDUwMHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA0ODBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDQ5JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0OSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNi0tbmFycm93IHtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ2LS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNy0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA1OC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW43LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICBtaW4td2lkdGg6IDU4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjctLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA1NjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDU3LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDU3LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjctLW5hcnJvdyB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Ny0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjgtLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogNjYuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOC0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiA2NjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogNjQ2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiA2NiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNjYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjgtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OC0tbmFycm93IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjktLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogNzUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiA3NTBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS1uYXJyb3cuZy1ob2xkV2lkdGgtLW5hcnJvdyB7XG4gICAgICAgIG1pbi13aWR0aDogNzMwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiA3NC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA3NC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW45LS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDktLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMC0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA4My4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMC0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiA4MzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDgxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDgzJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA4MyU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTAtLW5hcnJvdyB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MTAtLW5hcnJvdyB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMS0tbmFycm93IHtcbiAgICBmbGV4LWJhc2lzOiA5MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiA5MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgICBtaW4td2lkdGg6IDg5Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS0tbmFycm93IHtcbiAgICAgIGZsZXgtYmFzaXM6IDkxLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDkxLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjExLS1uYXJyb3cge1xuICAgICAgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDExLS1uYXJyb3cge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTItLW5hcnJvdyB7XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMi0tbmFycm93LmctaG9sZFdpZHRoLS1uYXJyb3cge1xuICAgICAgbWluLXdpZHRoOiAxMDAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTItLW5hcnJvdy5nLWhvbGRXaWR0aC0tbmFycm93IHtcbiAgICAgICAgbWluLXdpZHRoOiA5ODBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTItLW5hcnJvdyB7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMi0tbmFycm93IHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzUwcHgpIHtcbiAgLmctc3BhbjEtLW1pZCB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogNjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMS0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDYuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNi41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xLS1taWQge1xuICAgICAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MS0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMi0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4yLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDE2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDE1JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMi0tbWlkIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQyLS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiAyNSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4zLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiAyMzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDIzLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjMtLW1pZCB7XG4gICAgICB3aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0My0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjQtLW1pZCB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNC0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiAzMzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogMzEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiAzMiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMzIlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjQtLW1pZCB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NC0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjUtLW1pZCB7XG4gICAgZmxleC1iYXNpczogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNS0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgbWluLXdpZHRoOiA0MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLW1pZCB7XG4gICAgICBmbGV4LWJhc2lzOiA0MC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0MC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW41LS1taWQge1xuICAgICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDUtLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDUwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjYtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDQ4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS1taWQge1xuICAgICAgZmxleC1iYXNpczogNDklICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW42LS1taWQge1xuICAgICAgd2lkdGg6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDYtLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW43LS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjctLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgIG1pbi13aWR0aDogNTgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDU2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1taWQge1xuICAgICAgZmxleC1iYXNpczogNTcuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNTcuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNy0tbWlkIHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ3LS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOC0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW44LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDY2Ni42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDY2JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2NiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuOC0tbWlkIHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ4LS1taWQge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiA3NSUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW45LS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLW1pZC5nLWhvbGRXaWR0aC0tbWlkIHtcbiAgICAgICAgbWluLXdpZHRoOiA3MzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDc0LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjktLW1pZCB7XG4gICAgICB3aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0OS0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEwLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEwLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDgzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogODEzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS1taWQge1xuICAgICAgZmxleC1iYXNpczogODMlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDgzJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMC0tbWlkIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMC0tbWlkIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjExLS1taWQge1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjExLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDkxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1taWQge1xuICAgICAgZmxleC1iYXNpczogOTEuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogOTEuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuMTEtLW1pZCB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MTEtLW1pZCB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi0tbWlkIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEyLS1taWQuZy1ob2xkV2lkdGgtLW1pZCB7XG4gICAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0tbWlkLmctaG9sZFdpZHRoLS1taWQge1xuICAgICAgICBtaW4td2lkdGg6IDk4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0tbWlkIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEyLS1taWQge1xuICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDAwcHgpIHtcbiAgLmctc3BhbjEtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDguMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2My4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xLS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDYuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNi41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xLS13aWRlIHtcbiAgICAgIHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDEtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4yLS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiAxNi42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4yLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogMTY2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogMTQ2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjItLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogMTUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDE1JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4yLS13aWRlIHtcbiAgICAgIHdpZHRoOiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQyLS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjMtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDI1JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjMtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiAyNTBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiAyMzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMy0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiAyMy41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAyMy41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4zLS13aWRlIHtcbiAgICAgIHdpZHRoOiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQzLS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjQtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjQtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiAzMzMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiAzMTMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNC0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiAzMiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMzIlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjQtLXdpZGUge1xuICAgICAgd2lkdGg6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDQtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNS0td2lkZSB7XG4gICAgZmxleC1iYXNpczogNDEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNS0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDQxNi42NjY2N3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDM5Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW41LS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQwLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQwLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjUtLXdpZGUge1xuICAgICAgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDUtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNi0td2lkZSB7XG4gICAgZmxleC1iYXNpczogNTAlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNi0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDUwMHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDQ4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW42LS13aWRlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDQ5JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA0OSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNi0td2lkZSB7XG4gICAgICB3aWR0aDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Ni0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW43LS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA1OC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW43LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogNTgzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogNTYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjctLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNTcuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNTcuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNy0td2lkZSB7XG4gICAgICB3aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0Ny0td2lkZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW44LS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA2Ni42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW44LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogNjY2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICAgIG1pbi13aWR0aDogNjQ2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjgtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogNjYlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDY2JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW44LS13aWRlIHtcbiAgICAgIHdpZHRoOiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ4LS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjktLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDc1JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjktLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiA3NTBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA3MzBweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOS0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA3NC41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA3NC41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW45LS13aWRlIHtcbiAgICAgIHdpZHRoOiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ5LS13aWRlIHtcbiAgICBtYXJnaW4tbGVmdDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjEwLS13aWRlIHtcbiAgICBmbGV4LWJhc2lzOiA4My4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMC0td2lkZS5nLWhvbGRXaWR0aC0td2lkZSB7XG4gICAgICBtaW4td2lkdGg6IDgzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEwLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MTMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLXdpZGUge1xuICAgICAgZmxleC1iYXNpczogODMlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDgzJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMC0td2lkZSB7XG4gICAgICB3aWR0aDogODMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MTAtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTEtLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDkxLjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjExLS13aWRlLmctaG9sZFdpZHRoLS13aWRlIHtcbiAgICAgIG1pbi13aWR0aDogOTE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTEtLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDg5Ni42NjY2N3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiA5MS41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA5MS41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMS0td2lkZSB7XG4gICAgICB3aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MTEtLXdpZGUge1xuICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTItLXdpZGUge1xuICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTItLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgbWluLXdpZHRoOiAxMDAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTItLXdpZGUuZy1ob2xkV2lkdGgtLXdpZGUge1xuICAgICAgICBtaW4td2lkdGg6IDk4MHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0td2lkZSB7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW4xMi0td2lkZSB7XG4gICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEyNTBweCkge1xuICAuZy1zcGFuMS0taHVnZSB7XG4gICAgZmxleC1iYXNpczogOC4zMzMzMyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA4My4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDYzLjMzMzMzcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogNi41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA2LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0MS0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjItLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDE2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjItLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiAxNjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4yLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiAxNDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMi0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiAxNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjItLWh1Z2Uge1xuICAgICAgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDItLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMy0taHVnZSB7XG4gICAgZmxleC1iYXNpczogMjUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMjUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMy0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjMtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDIzMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4zLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDIzLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDIzLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjMtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDI1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDMtLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuNC0taHVnZSB7XG4gICAgZmxleC1iYXNpczogMzMuMzMzMzMlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuNC0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDMzMy4zMzMzM3B4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjQtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDMxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW40LS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDMyJSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAzMiU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNC0taHVnZSB7XG4gICAgICB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NC0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW41LS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA0MS42NjY2NyUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA0MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW41LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogNDE2LjY2NjY3cHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogMzk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjUtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogNDAuNSUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNDAuNSU7XG4gICAgICBtYXJnaW4tbGVmdDogMiU7IH1cbiAgICAubm8tZmxleGJveCAuZy1zcGFuNS0taHVnZSB7XG4gICAgICB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgLmctb2Zmc2V0NS0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDQxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW42LS1odWdlIHtcbiAgICBmbGV4LWJhc2lzOiA1MCUgIWltcG9ydGFudDtcbiAgICBmbGV4LWdyb3c6IDA7XG4gICAgbWF4LXdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW42LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogNTAwcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNi0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogNDgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjYtLWh1Z2Uge1xuICAgICAgZmxleC1iYXNpczogNDklICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDQ5JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW42LS1odWdlIHtcbiAgICAgIHdpZHRoOiA1MCUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ2LS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogNTAlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjctLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjctLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA1ODMuMzMzMzNweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW43LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA1NjMuMzMzMzNweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuNy0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA1Ny41JSAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiA1Ny41JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAyJTsgfVxuICAgIC5uby1mbGV4Ym94IC5nLXNwYW43LS1odWdlIHtcbiAgICAgIHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQ3LS1odWdlIHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlICFpbXBvcnRhbnQ7IH1cbiAgLmctc3BhbjgtLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY3JSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjgtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA2NjYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW44LS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgICAgbWluLXdpZHRoOiA2NDYuNjY2NjdweDsgfVxuICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuOC0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA2NiUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogNjYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjgtLWh1Z2Uge1xuICAgICAgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDgtLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuOS0taHVnZSB7XG4gICAgZmxleC1iYXNpczogNzUlICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogNzUlICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuOS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDc1MHB4OyB9XG4gICAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjktLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDczMHB4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW45LS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDc0LjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDc0LjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjktLWh1Z2Uge1xuICAgICAgd2lkdGg6IDc1JSAhaW1wb3J0YW50OyB9XG4gIC5nLW9mZnNldDktLWh1Z2Uge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsgfVxuICAuZy1zcGFuMTAtLWh1Z2Uge1xuICAgIGZsZXgtYmFzaXM6IDgzLjMzMzMzJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gICAgLmctc3BhbjEwLS1odWdlLmctaG9sZFdpZHRoLS1odWdlIHtcbiAgICAgIG1pbi13aWR0aDogODMzLjMzMzMzcHg7IH1cbiAgICAgIC5nLS1ndXR0ZXItLXNjYWxlZCAuZy1zcGFuMTAtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgICBtaW4td2lkdGg6IDgxMy4zMzMzM3B4OyB9XG4gICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMC0taHVnZSB7XG4gICAgICBmbGV4LWJhc2lzOiA4MyUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogODMlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEwLS1odWdlIHtcbiAgICAgIHdpZHRoOiA4My4zMzMzMyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMC0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMS0taHVnZSB7XG4gICAgZmxleC1iYXNpczogOTEuNjY2NjclICFpbXBvcnRhbnQ7XG4gICAgZmxleC1ncm93OiAwO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclICFpbXBvcnRhbnQ7IH1cbiAgICAuZy1zcGFuMTEtLWh1Z2UuZy1ob2xkV2lkdGgtLWh1Z2Uge1xuICAgICAgbWluLXdpZHRoOiA5MTYuNjY2NjdweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMS0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogODk2LjY2NjY3cHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjExLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDkxLjUlICFpbXBvcnRhbnQ7XG4gICAgICBtYXgtd2lkdGg6IDkxLjUlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDIlOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjExLS1odWdlIHtcbiAgICAgIHdpZHRoOiA5MS42NjY2NyUgIWltcG9ydGFudDsgfVxuICAuZy1vZmZzZXQxMS0taHVnZSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50OyB9XG4gIC5nLXNwYW4xMi0taHVnZSB7XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50O1xuICAgIGZsZXgtZ3JvdzogMDtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIC5nLXNwYW4xMi0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICBtaW4td2lkdGg6IDEwMDBweDsgfVxuICAgICAgLmctLWd1dHRlci0tc2NhbGVkIC5nLXNwYW4xMi0taHVnZS5nLWhvbGRXaWR0aC0taHVnZSB7XG4gICAgICAgIG1pbi13aWR0aDogOTgwcHg7IH1cbiAgICAuZy0tZ3V0dGVyLS1zY2FsZWQgLmctc3BhbjEyLS1odWdlIHtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gICAgLm5vLWZsZXhib3ggLmctc3BhbjEyLS1odWdlIHtcbiAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMzk5cHgpIHtcbiAgLmctLXN0YWNrLS1uYXJyb3cge1xuICAgIGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDsgfVxuICAgIC5nLS1zdGFjay0tbmFycm93ID4gLmctY29sIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgIC5uby1mbGV4Ym94IC5nLS1zdGFjay0tbmFycm93ID4gLmctY29sIHtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NDlweCkge1xuICAuZy0tc3RhY2stLW1pZCB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLmctLXN0YWNrLS1taWQgPiAuZy1jb2wge1xuICAgICAgZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgLm5vLWZsZXhib3ggLmctLXN0YWNrLS1taWQgPiAuZy1jb2wge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk5OXB4KSB7XG4gIC5nLS1zdGFjay0td2lkZSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLmctLXN0YWNrLS13aWRlID4gLmctY29sIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgIC5uby1mbGV4Ym94IC5nLS1zdGFjay0td2lkZSA+IC5nLWNvbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMTI0OXB4KSB7XG4gIC5nLS1zdGFjay0taHVnZSB7XG4gICAgZmxleC1mbG93OiBjb2x1bW4gbm93cmFwOyB9XG4gICAgLmctLXN0YWNrLS1odWdlID4gLmctY29sIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgIC5uby1mbGV4Ym94IC5nLS1zdGFjay0taHVnZSA+IC5nLWNvbCB7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuXG4vKipcbiAqIENvbG91ciBzd2F0Y2hlc1xuICovXG4uc2ctc3dhdGNoIHtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHBhZGRpbmc6IDE1cHg7XG4gIG1hcmdpbjogMTVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNzcsIDAsIDAuMTc1LCAxKTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5zZy1zd2F0Y2g6aG92ZXIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOyB9XG4gIC5zZy1zd2F0Y2guaXMtYWN0aXZlIHtcbiAgICBhbmltYXRpb246IHNnU3dhdGNoIDUwMG1zIGVhc2UtaW4tb3V0OyB9XG5cbkBrZXlmcmFtZXMgc2dTd2F0Y2gge1xuICA1MCUge1xuICAgIG9wYWNpdHk6IC4zOyB9IH1cblxuLnNnLXN3YXRjaC1jb2xvciB7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgMTBweDsgfVxuXG4uc2ctc3dhdGNoLXRleHQge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zaXplOiAzcmVtO1xuICBsaW5lLWhlaWdodDogMTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXJnaW46IDAgMTBweDsgfVxuXG4uc2ctc3dhdGNoLXZhciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIG1hcmdpbi10b3A6IDE1cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLWxpbmstaG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1saW5rLWhvdmVyIC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxODUzODA7IH1cbiAgLnNnLWNvbG9yLWxpbmstaG92ZXIgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogIzE4NTM4MDsgfVxuICAuc2ctY29sb3ItbGluay1ob3ZlciAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjMTg1MzgwXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLXByaW1hcnkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1wcmltYXJ5IC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMxODE4MzA7IH1cbiAgLnNnLWNvbG9yLXByaW1hcnkgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogIzE4MTgzMDsgfVxuICAuc2ctY29sb3ItcHJpbWFyeSAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjMTgxODMwXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLXNlY29uZGFyeSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgLnNnLWNvbG9yLXNlY29uZGFyeSAuc2ctc3dhdGNoLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmU3YzA4OyB9XG4gIC5zZy1jb2xvci1zZWNvbmRhcnkgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogI2ZlN2MwODsgfVxuICAuc2ctY29sb3Itc2Vjb25kYXJ5IC5zZy1zd2F0Y2gtdmFyOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiNmZTdjMDhcIjtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4uc2ctY29sb3ItaGlnaGxpZ2h0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAuc2ctY29sb3ItaGlnaGxpZ2h0IC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODhhZDY7IH1cbiAgLnNnLWNvbG9yLWhpZ2hsaWdodCAuc2ctc3dhdGNoLXRleHQge1xuICAgIGNvbG9yOiAjMjg4YWQ2OyB9XG4gIC5zZy1jb2xvci1oaWdobGlnaHQgLnNnLXN3YXRjaC12YXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIzI4OGFkNlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZy1jb2xvci10ZXh0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjFmMTsgfVxuICAuc2ctY29sb3ItdGV4dCAuc2ctc3dhdGNoLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDQ0OyB9XG4gIC5zZy1jb2xvci10ZXh0IC5zZy1zd2F0Y2gtdGV4dCB7XG4gICAgY29sb3I6ICM0NDQ7IH1cbiAgLnNnLWNvbG9yLXRleHQgLnNnLXN3YXRjaC12YXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIzQ0NFwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZy1jb2xvci1iYWNrZ3JvdW5kIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAuc2ctY29sb3ItYmFja2dyb3VuZCAuc2ctc3dhdGNoLWNvbG9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmMWYxOyB9XG4gIC5zZy1jb2xvci1iYWNrZ3JvdW5kIC5zZy1zd2F0Y2gtdGV4dCB7XG4gICAgY29sb3I6ICNmMWYxZjE7IH1cbiAgLnNnLWNvbG9yLWJhY2tncm91bmQgLnNnLXN3YXRjaC12YXI6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiI2YxZjFmMVwiO1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5zZy1jb2xvci1ib3JkZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1ib3JkZXIgLnNnLXN3YXRjaC1jb2xvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDsgfVxuICAuc2ctY29sb3ItYm9yZGVyIC5zZy1zd2F0Y2gtdGV4dCB7XG4gICAgY29sb3I6ICNkZGQ7IH1cbiAgLnNnLWNvbG9yLWJvcmRlciAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjZGRkXCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLnNnLWNvbG9yLWxpbmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gIC5zZy1jb2xvci1saW5rIC5zZy1zd2F0Y2gtY29sb3Ige1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMyODhhZDY7IH1cbiAgLnNnLWNvbG9yLWxpbmsgLnNnLXN3YXRjaC10ZXh0IHtcbiAgICBjb2xvcjogIzI4OGFkNjsgfVxuICAuc2ctY29sb3ItbGluayAuc2ctc3dhdGNoLXZhcjphZnRlciB7XG4gICAgY29udGVudDogXCIjMjg4YWQ2XCI7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cblxuLyoqXG4gKiBTdHlsZWd1aWRlIHN0eWxlc1xuICogV2hlcmUgcG9zc2libGUsIHByZWZpeCBhbGwgY2xhc3NuYW1lcyB3aXRoIC5zZ1xuICovXG5ib2R5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4vKipcbiAqIFN0eWxlZ3VpZGUgdHlwZSBzdHlsZXNcbiAqL1xuLnNnLWludGVyZmFjZVR5cGUsIC5zZy1zZWN0aW9uSGVhZGluZywgLnNnLXR5cGVTcGVjaW1lbjo6YWZ0ZXIge1xuICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBcIlNlZ29lIFVJXCIsIFJvYm90bywgT3h5Z2VuLCBVYnVudHUsIENhbnRhcmVsbCwgXCJGaXJhIFNhbnNcIiwgXCJEcm9pZCBTYW5zXCIsIFwiSGVsdmV0aWNhIE5ldWVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuXG4uc2ctaW50ZXJmYWNlVHlwZS0tc3VidGxlLCAuc2ctdHlwZVNwZWNpbWVuOjphZnRlciB7XG4gIGNvbG9yOiAjODg4OyB9XG5cbi5zZy1zZWN0aW9uSGVhZGluZyB7XG4gIGNvbG9yOiAjMTgxODMwOyB9XG5cbi8qKlxuICogU3R5bGVndWlkZSBuYXZpZ2F0aW9uIHN0eWxlXG4gKi9cbi8qKlxuICogU3R5bGVndWlkZSAucGFnZSBzdHlsZXNcbiAqL1xuLnNnLXBhZ2Uge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiA4JSAwOyB9XG5cbi5zZy1wYWdlLS1zdGFydCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxODE4MzA7XG4gIHBhZGRpbmc6IDcwcHggMCA2MHB4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uc2ctc3BhY2VyIHtcbiAgcGFkZGluZzogMjBweDsgfVxuXG4uc2ctZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzE4MTgzMDtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDMwcHg7XG4gIG1hcmdpbi10b3A6IDMwcHg7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLWZvb3RlciBoMSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMC4yZW07IH1cbiAgLnNnLWZvb3RlciBhIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItYm90dG9tOiAycHggZGFzaGVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTsgfVxuICAgIC5zZy1mb290ZXIgYTpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjsgfVxuICAuc2ctZm9vdGVyIDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5zZy1raWNrb2ZmTG9nbyB7XG4gIHdpZHRoOiAyMDBweDtcbiAgaGVpZ2h0OiA2MHB4O1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uc2ctbG9nbyB7XG4gIHBhZGRpbmc6IDFlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogIzE4MTgzMDsgfVxuICAuc2ctbG9nby0tZGFyayB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICBjb2xvcjogI2ZmZjsgfVxuICAuc2ctbG9nbyBzdmcge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIFR5cG9ncmFwaHlcbiAqL1xuLnNnLXR5cGUge1xuICBtYXJnaW4tYm90dG9tOiAxZW07XG4gIG92ZXJmbG93LXg6IGF1dG87IH1cblxuY29kZSB7XG4gIGJvcmRlcjogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG5cbltkYXRhLWNvcHldIHtcbiAgY3Vyc29yOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCTUFBQUFXQ0FZQUFBQWluYWQvQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUE5eHBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU5pMWpNVE00SURjNUxqRTFPVGd5TkN3Z01qQXhOaTh3T1M4eE5DMHdNVG93T1Rvd01TQWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cGtZejBpYUhSMGNEb3ZMM0IxY213dWIzSm5MMlJqTDJWc1pXMWxiblJ6THpFdU1TOGlJSGh0Ykc1ek9uaHRjRTFOUFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdmJXMHZJaUI0Yld4dWN6cHpkRkpsWmowaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wzTlVlWEJsTDFKbGMyOTFjbU5sVW1WbUl5SWdlRzF3T2tOeVpXRjBiM0pVYjI5c1BTSkJaRzlpWlNCUWFHOTBiM05vYjNBZ1EwTWdNakF4TnlBb1RXRmphVzUwYjNOb0tTSWdlRzF3T2tOeVpXRjBaVVJoZEdVOUlqSXdNVFl0TVRJdE16QlVNVEE2TkRRNk1qSmFJaUI0YlhBNlRXOWthV1o1UkdGMFpUMGlNakF4TmkweE1pMHpNRlF4TURvMU5EbzBOeUlnZUcxd09rMWxkR0ZrWVhSaFJHRjBaVDBpTWpBeE5pMHhNaTB6TUZReE1EbzFORG8wTnlJZ1pHTTZabTl5YldGMFBTSnBiV0ZuWlM5d2JtY2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRamhFUlVZMU56bEROa0V5TVRGRk5rRTNOVVU1UkRRM1JVSTVPRUk1UmtJaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFqaEVSVVkxTjBGRE5rRXlNVEZGTmtFM05VVTVSRFEzUlVJNU9FSTVSa0lpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwQ09FUkZSalUzTjBNMlFUSXhNVVUyUVRjMVJUbEVORGRGUWprNFFqbEdRaUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBDT0VSRlJqVTNPRU0yUVRJeE1VVTJRVGMxUlRsRU5EZEZRams0UWpsR1FpSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcXJMYzhjQUFBQ05TVVJCVkhqYVltSmdZSEFBNHZkQS9KOUVqQUdZZ0hnQkVBc3dVQUd3QUxFOGlQSC8vMytTTkRJeU1tSjFHZFVBaG1FSERoeGdVRlJVQk51TUQ2T0YzMzFvMkVNRVlJQ2ZuLzgvR1pFQk5wQUYzV1VmUDM1a0lEVU1vUzVWb0cyWWpSbzJhaGdOREFQbEFFYTBVdUQvYUpnUkRET01nZ09JK2JHVnBBVEFRMnd1QzRBYVNBb0FxVThBQ0RBQUdaQThYSmxBeXBvQUFBQUFTVVZPUks1Q1lJST0pIDEzIDEwLCBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgW2RhdGEtY29weV06aG92ZXIsIFtkYXRhLWNvcHldOmFjdGl2ZSB7XG4gICAgb3BhY2l0eTogMC41OyB9XG5cbi5zZy10eXBlLW1pY3JvIC5zZy10eXBlLWl0ZW0ge1xuICBmb250LXNpemU6IDAuNjRyZW07IH1cbiAgLnNnLXR5cGUtbWljcm8gLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZTogbWljcm8gLy8gU2l6ZTogMTIuOHB4IC8vIFVzZTogQGluY2x1ZGUga28tZm9udC1zaXplKG1pY3JvKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLXNtYWxsZXN0IC5zZy10eXBlLWl0ZW0ge1xuICBmb250LXNpemU6IDByZW07IH1cbiAgLnNnLXR5cGUtc21hbGxlc3QgLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZTogc21hbGxlc3QgLy8gU2l6ZTogcHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUoc21hbGxlc3QpIFwiO1xuICAgIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxuLnNnLXR5cGUtc21hbGxlciAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAwcmVtOyB9XG4gIC5zZy10eXBlLXNtYWxsZXIgLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZTogc21hbGxlciAvLyBTaXplOiBweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShzbWFsbGVyKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLXNtYWxsIC5zZy10eXBlLWl0ZW0ge1xuICBmb250LXNpemU6IDAuOHJlbTsgfVxuICAuc2ctdHlwZS1zbWFsbCAuc2ctdHlwZS1pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogXCJOYW1lOiBzbWFsbCAvLyBTaXplOiAxNnB4IC8vIFVzZTogQGluY2x1ZGUga28tZm9udC1zaXplKHNtYWxsKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLWJhc2UgLnNnLXR5cGUtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuc2ctdHlwZS1iYXNlIC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IGJhc2UgLy8gU2l6ZTogMjBweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShiYXNlKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLW1pZCAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAxLjI1cmVtOyB9XG4gIC5zZy10eXBlLW1pZCAuc2ctdHlwZS1pdGVtOjphZnRlciB7XG4gICAgY29udGVudDogXCJOYW1lOiBtaWQgLy8gU2l6ZTogMjVweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShtaWQpIFwiO1xuICAgIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxuLnNnLXR5cGUtbGFyZ2UgLnNnLXR5cGUtaXRlbSB7XG4gIGZvbnQtc2l6ZTogMS41NjI1cmVtOyB9XG4gIC5zZy10eXBlLWxhcmdlIC5zZy10eXBlLWl0ZW06OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIk5hbWU6IGxhcmdlIC8vIFNpemU6IDMxLjI1cHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUobGFyZ2UpIFwiO1xuICAgIGZvbnQtc2l6ZTogMC42NHJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgICBvcGFjaXR5OiAwLjY7IH1cblxuLnNnLXR5cGUtbGFyZ2VzdCAuc2ctdHlwZS1pdGVtIHtcbiAgZm9udC1zaXplOiAwcmVtOyB9XG4gIC5zZy10eXBlLWxhcmdlc3QgLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZTogbGFyZ2VzdCAvLyBTaXplOiBweCAvLyBVc2U6IEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShsYXJnZXN0KSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlLWp1bWJvIC5zZy10eXBlLWl0ZW0ge1xuICBmb250LXNpemU6IDEuOTUzMTJyZW07IH1cbiAgLnNnLXR5cGUtanVtYm8gLnNnLXR5cGUtaXRlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTmFtZToganVtYm8gLy8gU2l6ZTogMzkuMDYyNXB4IC8vIFVzZTogQGluY2x1ZGUga28tZm9udC1zaXplKGp1bWJvKSBcIjtcbiAgICBmb250LXNpemU6IDAuNjRyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gICAgb3BhY2l0eTogMC42OyB9XG5cbi5zZy10eXBlU3BlY2ltZW4ge1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICAtbXMtd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgLnNnLXR5cGVTcGVjaW1lbjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIG1hcmdpbi10b3A6IDVweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG5cbi5zZy10eXBlU3BlY2ltZW4tLXByaW1hcnkge1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7IH1cblxuLnNnLXR5cGVTcGVjaW1lbi0tc2Vjb25kYXJ5IHtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGZvbnQtZmFtaWx5OiBHZW9yZ2lhLCBcIlRpbWVzIE5ldyBSb21hblwiLCBUaW1lcywgc2VyaWY7IH1cblxuLnNnLXR5cGVTcGVjaW1lbi0tZ2lhbnQge1xuICBmb250LXNpemU6IDZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxOyB9XG5cbi8qKlxuICogSWNvbnNcbiAqL1xuLmljb24tc2cge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiA1MHB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDsgfVxuXG4uc2ctZmF2aWNvbiB7XG4gIHBhZGRpbmc6IDVweDsgfVxuICAuc2ctZmF2aWNvbiBpbWcge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9XG5cbi5zZy1ociB7XG4gIGhlaWdodDogM3B4O1xuICBtYXJnaW46IDU2cHggMDsgfVxuXG4uc2ctaHItLXN1YnRsZSB7XG4gIGhlaWdodDogM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDE3OSwgMTc5LCAxNzksIDAuNCk7IH1cblxuLnNnLXZhci1pdGVtIHtcbiAgY29sb3I6ICNmZTdjMDg7XG4gIG1hcmdpbi1yaWdodDogMTBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG5cbi5zZy12YXItLWJhc2VGb250U2l6ZSB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWJhc2VGb250U2l6ZSBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1iYXNlRm9udFNpemUgc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tYmFzZUZvbnRTaXplOjphZnRlciB7XG4gICAgY29udGVudDogXCIyMFwiOyB9XG5cbi5zZy12YXItLWxlYWRpbmdCYXNlIHtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLXZhci0tbGVhZGluZ0Jhc2Ugc3Ryb25nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgICAgLnNnLXZhci0tbGVhZGluZ0Jhc2Ugc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tbGVhZGluZ0Jhc2U6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIjEuNFwiOyB9XG5cbi5zZy12YXItLXR5cGVTY2FsZSB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLXR5cGVTY2FsZSBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS10eXBlU2NhbGUgc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tdHlwZVNjYWxlOjphZnRlciB7XG4gICAgY29udGVudDogXCIxLjI1XCI7IH1cblxuLnNnLXZhci0tZm9udEZhbWlseU1vbm8ge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1mb250RmFtaWx5TW9ubyBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1mb250RmFtaWx5TW9ubyBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1mb250RmFtaWx5TW9ubzo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiTWVubG8sIE1vbmFjbywgQ291cmllciBOZXcsIG1vbm9zcGFjZVwiOyB9XG5cbi5zZy12YXItLWZvbnRGYW1pbHlTeXN0ZW0ge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1mb250RmFtaWx5U3lzdGVtIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLWZvbnRGYW1pbHlTeXN0ZW0gc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tZm9udEZhbWlseVN5c3RlbTo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgUm9ib3RvLCBPeHlnZW4sIFVidW50dSwgQ2FudGFyZWxsLCBGaXJhIFNhbnMsIERyb2lkIFNhbnMsIEhlbHZldGljYSBOZXVlLCBzYW5zLXNlcmlmXCI7IH1cblxuLnNnLXZhci0tZm9udEZhbWlseVNhbnMge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1mb250RmFtaWx5U2FucyBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1mb250RmFtaWx5U2FucyBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1mb250RmFtaWx5U2Fuczo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiSGVsdmV0aWNhIE5ldWUsIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWZcIjsgfVxuXG4uc2ctdmFyLS1mb250RmFtaWx5U2VyaWYge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1mb250RmFtaWx5U2VyaWYgc3Ryb25nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgICAgLnNnLXZhci0tZm9udEZhbWlseVNlcmlmIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5zZy12YXItLWZvbnRGYW1pbHlTZXJpZjo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiR2VvcmdpYSwgVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWZcIjsgfVxuXG4uc2ctdmFyLS1icmVha3BvaW50cyB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWJyZWFrcG9pbnRzIHN0cm9uZyB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzUxcHgpIHtcbiAgICAgIC5zZy12YXItLWJyZWFrcG9pbnRzIHN0cm9uZyB7XG4gICAgICAgIHdpZHRoOiAyMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4gIC5zZy12YXItLWJyZWFrcG9pbnRzOjphZnRlciB7XG4gICAgY29udGVudDogXCIobmFycm93OiA0MDBweCwgbWlkOiA3NTBweCwgd2lkZTogMTAwMHB4LCBodWdlOiAxMjUwcHgpXCI7IH1cblxuLnNnLXZhci0tbGF5b3V0V2lkdGgge1xuICBsaW5lLWhlaWdodDogMjtcbiAgZm9udC1mYW1pbHk6IE1lbmxvLCBNb25hY28sIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpO1xuICBmb250LXNpemU6IDAuNnJlbTsgfVxuICAuc2ctdmFyLS1sYXlvdXRXaWR0aCBzdHJvbmcge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHVzZXItc2VsZWN0OiBub25lOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDc1MXB4KSB7XG4gICAgICAuc2ctdmFyLS1sYXlvdXRXaWR0aCBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1sYXlvdXRXaWR0aDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiMTAwMFwiOyB9XG5cbi5zZy12YXItLWdyaWRDb2x1bW5zIHtcbiAgbGluZS1oZWlnaHQ6IDI7XG4gIGZvbnQtZmFtaWx5OiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgZm9udC1zaXplOiAwLjZyZW07IH1cbiAgLnNnLXZhci0tZ3JpZENvbHVtbnMgc3Ryb25nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgICAgLnNnLXZhci0tZ3JpZENvbHVtbnMgc3Ryb25nIHtcbiAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9IH1cbiAgLnNnLXZhci0tZ3JpZENvbHVtbnM6OmFmdGVyIHtcbiAgICBjb250ZW50OiBcIjEyXCI7IH1cblxuLnNnLXZhci0tZ3JpZEd1dHRlciB7XG4gIGxpbmUtaGVpZ2h0OiAyO1xuICBmb250LWZhbWlseTogTWVubG8sIE1vbmFjbywgXCJDb3VyaWVyIE5ld1wiLCBtb25vc3BhY2U7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gIGZvbnQtc2l6ZTogMC42cmVtOyB9XG4gIC5zZy12YXItLWdyaWRHdXR0ZXIgc3Ryb25nIHtcbiAgICBvcGFjaXR5OiAwLjY7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB1c2VyLXNlbGVjdDogbm9uZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA3NTFweCkge1xuICAgICAgLnNnLXZhci0tZ3JpZEd1dHRlciBzdHJvbmcge1xuICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuICAuc2ctdmFyLS1ncmlkR3V0dGVyOjphZnRlciB7XG4gICAgY29udGVudDogXCIyMFwiOyB9XG4iLCIvKipcbiAqIEtpY2tvZmYgU3R5bGVndWlkZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbkBpbXBvcnQgXCJraWNrb2ZmLXV0aWxzXCI7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS9raWNrb2ZmLXV0aWxzLnNjc3NcbkBpbXBvcnQgXCJpbmNsdWRlLW1lZGlhXCI7IC8vIGh0dHA6Ly9pbmNsdWRlLW1lZGlhLmNvbVxuQGltcG9ydCBcImNvbG9yLXBhbGV0dGVcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJraWNrb2ZmLWdyaWRcIjsgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS9raWNrb2ZmLWdyaWQuY3NzXG5cbiRzdHlsZWd1aWRlLWNvbG9yLXByaW1hcnk6ICRjb2xvci1wcmltYXJ5O1xuJHN0eWxlZ3VpZGUtdHlwZTogJGZvbnQtZmFtaWx5LXN5c3RlbTtcblxuQGltcG9ydCBcInN0eWxlZ3VpZGUvc3dhdGNoXCI7XG5cbi8qKlxuICogU3R5bGVndWlkZSBzdHlsZXNcbiAqIFdoZXJlIHBvc3NpYmxlLCBwcmVmaXggYWxsIGNsYXNzbmFtZXMgd2l0aCAuc2dcbiAqL1xuYm9keSB7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG59XG5cbi8qKlxuICogU3R5bGVndWlkZSB0eXBlIHN0eWxlc1xuICovXG4uc2ctaW50ZXJmYWNlVHlwZSB7XG5cdGZvbnQtZmFtaWx5OiAkc3R5bGVndWlkZS10eXBlO1xuXHRmb250LXdlaWdodDogMzAwO1xufVxuXG4uc2ctaW50ZXJmYWNlVHlwZS0tc3VidGxlIHtcblx0Y29sb3I6ICM4ODg7XG59XG5cbi5zZy1zZWN0aW9uSGVhZGluZyB7XG5cdEBleHRlbmQgLnNnLWludGVyZmFjZVR5cGU7XG5cdGNvbG9yOiAkc3R5bGVndWlkZS1jb2xvci1wcmltYXJ5O1xufVxuXG5cbi8qKlxuICogU3R5bGVndWlkZSBuYXZpZ2F0aW9uIHN0eWxlXG4gKi9cblxuLyoqXG4gKiBTdHlsZWd1aWRlIC5wYWdlIHN0eWxlc1xuICovXG4uc2ctcGFnZSB7XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBhZGRpbmc6IDglIDA7XG59XG5cbi5zZy1wYWdlLS1zdGFydCB7XG5cdGJhY2tncm91bmQtY29sb3I6ICRzdHlsZWd1aWRlLWNvbG9yLXByaW1hcnk7XG5cdHBhZGRpbmc6IDcwcHggMCA2MHB4O1xuXHRjb2xvcjogI2ZmZjtcbn1cblxuLnNnLXNwYWNlciB7XG5cdHBhZGRpbmc6IDIwcHg7XG59XG5cbi5zZy1mb290ZXIge1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjMTgxODMwO1xuXHRjb2xvcjogI2ZmZjtcblx0cGFkZGluZzogMzBweDtcblx0bWFyZ2luLXRvcDogMzBweDtcblx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoMTIpO1xuXG5cdGgxIHtcblx0XHRtYXJnaW4tYm90dG9tOiAwLjJlbTtcblx0fVxuXG5cdGEge1xuXHRcdGNvbG9yOiAjZmZmO1xuXHRcdGJvcmRlci1ib3R0b206IDJweCBkYXNoZWQgcmdiYSgjZmZmLCAwLjMpO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRib3JkZXItYm90dG9tOiAycHggc29saWQgI2ZmZjtcblx0XHR9XG5cdH1cblxuXHQ6bGFzdC1jaGlsZCB7XG5cdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0fVxufVxuXG4uc2cta2lja29mZkxvZ28ge1xuXHR3aWR0aDogMjAwcHg7XG5cdGhlaWdodDogNjBweDtcblx0Y29sb3I6ICNmZmY7XG59XG5cbi5zZy1sb2dvIHtcblx0cGFkZGluZzogMWVtO1xuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdGNvbG9yOiAkY29sb3ItcHJpbWFyeTtcblxuXHQmLS1kYXJrIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuXHRcdGNvbG9yOiAjZmZmO1xuXHR9XG5cblx0c3ZnIHtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbn1cblxuXG4vKipcbiAqIFR5cG9ncmFwaHlcbiAqL1xuLnNnLXR5cGUge1xuXHRtYXJnaW4tYm90dG9tOiAxZW07XG5cdG92ZXJmbG93LXg6IGF1dG87XG59XG5cbmNvZGUge1xuXHRib3JkZXI6IDA7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoMTIpO1xufVxuXG5bZGF0YS1jb3B5XSB7XG5cdGN1cnNvcjogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQk1BQUFBV0NBWUFBQUFpbmFkL0FBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBOXhwVkZoMFdFMU1PbU52YlM1aFpHOWlaUzU0YlhBQUFBQUFBRHcvZUhCaFkydGxkQ0JpWldkcGJqMGk3N3UvSWlCcFpEMGlWelZOTUUxd1EyVm9hVWg2Y21WVGVrNVVZM3ByWXpsa0lqOCtJRHg0T25odGNHMWxkR0VnZUcxc2JuTTZlRDBpWVdSdlltVTZibk02YldWMFlTOGlJSGc2ZUcxd2RHczlJa0ZrYjJKbElGaE5VQ0JEYjNKbElEVXVOaTFqTVRNNElEYzVMakUxT1RneU5Dd2dNakF4Tmk4d09TOHhOQzB3TVRvd09Ub3dNU0FnSUNBZ0lDQWdJajRnUEhKa1pqcFNSRVlnZUcxc2JuTTZjbVJtUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMekF5THpJeUxYSmtaaTF6ZVc1MFlYZ3Ribk1qSWo0Z1BISmtaanBFWlhOamNtbHdkR2x2YmlCeVpHWTZZV0p2ZFhROUlpSWdlRzFzYm5NNmVHMXdQU0pvZEhSd09pOHZibk11WVdSdlltVXVZMjl0TDNoaGNDOHhMakF2SWlCNGJXeHVjenBrWXowaWFIUjBjRG92TDNCMWNtd3ViM0puTDJSakwyVnNaVzFsYm5Sekx6RXVNUzhpSUhodGJHNXpPbmh0Y0UxTlBTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZiVzB2SWlCNGJXeHVjenB6ZEZKbFpqMGlhSFIwY0RvdkwyNXpMbUZrYjJKbExtTnZiUzk0WVhBdk1TNHdMM05VZVhCbEwxSmxjMjkxY21ObFVtVm1JeUlnZUcxd09rTnlaV0YwYjNKVWIyOXNQU0pCWkc5aVpTQlFhRzkwYjNOb2IzQWdRME1nTWpBeE55QW9UV0ZqYVc1MGIzTm9LU0lnZUcxd09rTnlaV0YwWlVSaGRHVTlJakl3TVRZdE1USXRNekJVTVRBNk5EUTZNakphSWlCNGJYQTZUVzlrYVdaNVJHRjBaVDBpTWpBeE5pMHhNaTB6TUZReE1EbzFORG8wTnlJZ2VHMXdPazFsZEdGa1lYUmhSR0YwWlQwaU1qQXhOaTB4TWkwek1GUXhNRG8xTkRvME55SWdaR002Wm05eWJXRjBQU0pwYldGblpTOXdibWNpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UWpoRVJVWTFOemxETmtFeU1URkZOa0UzTlVVNVJEUTNSVUk1T0VJNVJrSWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZRamhFUlVZMU4wRkROa0V5TVRGRk5rRTNOVVU1UkRRM1JVSTVPRUk1UmtJaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcENPRVJGUmpVM04wTTJRVEl4TVVVMlFUYzFSVGxFTkRkRlFqazRRamxHUWlJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwQ09FUkZSalUzT0VNMlFUSXhNVVUyUVRjMVJUbEVORGRGUWprNFFqbEdRaUl2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUHFyTGM4Y0FBQUNOU1VSQlZIamFZbUpnWUhBQTR2ZEEvSjlFakFHWWdIZ0JFQXN3VUFHd0FMRThpUEgvLzMrU05ESXlNbUoxR2RVQWhtRUhEaHhnVUZSVUJOdU1ENk9GMzMxbzJFTUVZSUNmbi84L0daRUJOcEFGM1dVZlAzNWtJRFVNb1M1Vm9HMllqUm8yYWhnTkRBUGxBRWEwVXVEL2FKZ1JERE9NZ2dPSStiR1ZwQVRBUTJ3dUM0QWFTQW9BcVU4QUNEQUFHWkE4WEpsQXlwb0FBQUFBU1VWT1JLNUNZSUk9KSAxMyAxMCwgYXV0byAhaW1wb3J0YW50O1xuXG5cdCY6aG92ZXIsXG5cdCY6YWN0aXZlIHtcblx0XHRvcGFjaXR5OiAwLjU7XG5cdH1cbn1cblxuQG1peGluIGtvLXNnVHlwZVRlc3QoJHNpemUpIHtcblx0LnNnLXR5cGUtaXRlbSB7XG5cdFx0QGluY2x1ZGUga28tZm9udC1zaXplKCRzaXplKTtcblxuXHRcdCY6OmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICdOYW1lOiAjeyRzaXplfSAvLyBTaXplOiAje2tvLWdldFZhbHVlKCRzaXplLCAkdHlwZSl9cHggLy8gVXNlOiBAaW5jbHVkZSBrby1mb250LXNpemUoI3skc2l6ZX0pICc7XG5cdFx0XHRAaW5jbHVkZSBrby1mb250LXNpemUobWljcm8pO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRcdFx0Zm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1tb25vO1xuXHRcdFx0b3BhY2l0eTogMC42O1xuXHRcdH1cblx0fVxufVxuXG5cbi5zZy10eXBlLW1pY3JvIHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChtaWNybyk7IH1cbi5zZy10eXBlLXNtYWxsZXN0IHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChzbWFsbGVzdCk7IH1cbi5zZy10eXBlLXNtYWxsZXIgeyBAaW5jbHVkZSBrby1zZ1R5cGVUZXN0KHNtYWxsZXIpOyB9XG4uc2ctdHlwZS1zbWFsbCB7IEBpbmNsdWRlIGtvLXNnVHlwZVRlc3Qoc21hbGwpOyB9XG4uc2ctdHlwZS1iYXNlIHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChiYXNlKTsgfVxuLnNnLXR5cGUtbWlkIHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChtaWQpOyB9XG4uc2ctdHlwZS1sYXJnZSB7IEBpbmNsdWRlIGtvLXNnVHlwZVRlc3QobGFyZ2UpOyB9XG4uc2ctdHlwZS1sYXJnZXN0IHsgQGluY2x1ZGUga28tc2dUeXBlVGVzdChsYXJnZXN0KTsgfVxuLnNnLXR5cGUtanVtYm8geyBAaW5jbHVkZSBrby1zZ1R5cGVUZXN0KGp1bWJvKTsgfVxuXG4uc2ctdHlwZVNwZWNpbWVuIHtcblx0bWFyZ2luLWJvdHRvbTogMDtcblx0bWFyZ2luLXRvcDogMDtcblx0LW1zLXdvcmQtd3JhcDogYnJlYWstd29yZDtcblx0d29yZC13cmFwOiBicmVhay13b3JkO1xuXG5cdCY6OmFmdGVyIHtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRAZXh0ZW5kIC5zZy1pbnRlcmZhY2VUeXBlO1xuXHRcdEBleHRlbmQgLnNnLWludGVyZmFjZVR5cGUtLXN1YnRsZTtcblx0XHRAaW5jbHVkZSBrby1mb250LXNpemUoMTYpO1xuXHRcdG1hcmdpbi10b3A6IDVweDtcblx0XHRib3JkZXItdG9wOiAxcHggc29saWQgI2RkZDtcblx0XHRmb250LXdlaWdodDogbm9ybWFsO1xuXHR9XG59XG5cbi8vIGgxLnR5cGVTcGVjaW1lbjo6YWZ0ZXIgeyBjb250ZW50OiBcIkZvbnQgc3RhY2s6ICN7JGZvbnQtZmFtaWx5LWhlYWRpbmdzfVwiOyB9XG4vLyBwLnR5cGVTcGVjaW1lbjo6YWZ0ZXIgIHsgY29udGVudDogXCJGb250IHN0YWNrOiAjeyRmb250LWZhbWlseS1iYXNlfVwiOyB9XG5cbi5zZy10eXBlU3BlY2ltZW4tLXByaW1hcnkge1xuXHRAaW5jbHVkZSBrby1mb250LXNpemUoMzApO1xuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG59XG5cbi5zZy10eXBlU3BlY2ltZW4tLXNlY29uZGFyeSB7XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSgzMCk7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktYWx0O1xufVxuXG4uc2ctdHlwZVNwZWNpbWVuLS1naWFudCB7XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSgxMjApO1xuXHRsaW5lLWhlaWdodDogMTtcbn1cblxuXG4vKipcbiAqIEljb25zXG4gKi9cbi5pY29uLXNnIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR3aWR0aDogNTBweDtcblx0aGVpZ2h0OiA1MHB4O1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRtYXJnaW4tcmlnaHQ6IDEwcHg7XG5cdG1hcmdpbi1ib3R0b206IDEwcHg7XG59XG5cbi5zZy1mYXZpY29uIHtcblx0cGFkZGluZzogNXB4O1xuXG5cdGltZyB7XG5cdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHRtYXJnaW4tcmlnaHQ6IDE1cHg7XG5cdH1cbn1cblxuLnNnLWhyIHtcblx0aGVpZ2h0OiAzcHg7XG5cdG1hcmdpbjogKCRiYXNlbGluZSAqIDIpIDA7XG59XG5cbi5zZy1oci0tc3VidGxlIHtcblx0aGVpZ2h0OiAzcHg7XG5cdGJhY2tncm91bmQtY29sb3I6IGZhZGUtb3V0KCRoci1jb2xvciwgMC42KTtcbn1cblxuQG1peGluIGtvLXNnVmFyKCR2YXIpIHtcblx0bGluZS1oZWlnaHQ6IDI7XG5cdGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ubztcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoIzAwMCwgMC4xKTtcblx0QGluY2x1ZGUga28tZm9udC1zaXplKDEyKTtcblxuXHRzdHJvbmcge1xuXHRcdG9wYWNpdHk6IDAuNjtcblx0XHR0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdHVzZXItc2VsZWN0OiBub25lO1xuXG5cdFx0QGluY2x1ZGUgbWVkaWEoJz5taWQnKSB7XG5cdFx0XHR3aWR0aDogMjAlO1xuXHRcdFx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdH1cblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRjb250ZW50OiAnI3skdmFyfSc7XG5cdH1cbn1cblxuLnNnLXZhci1pdGVtIHtcblx0Y29sb3I6ICRjb2xvci1zZWNvbmRhcnk7XG5cdG1hcmdpbi1yaWdodDogMTBweDtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uc2ctdmFyLS1iYXNlRm9udFNpemUge1xuXHRAaW5jbHVkZSBrby1zZ1ZhcigkZm9udC1zaXplLWJhc2UpO1xufVxuXG4uc2ctdmFyLS1sZWFkaW5nQmFzZSB7XG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRsZWFkaW5nLWJhc2UpO1xufVxuXG4uc2ctdmFyLS10eXBlU2NhbGUge1xuXHRAaW5jbHVkZSBrby1zZ1ZhcigkdHlwZS1zY2FsZSk7XG59XG5cbi5zZy12YXItLWZvbnRGYW1pbHlNb25vIHtcblx0QGluY2x1ZGUga28tc2dWYXIoJGZvbnQtZmFtaWx5LW1vbm8pO1xufVxuXG4uc2ctdmFyLS1mb250RmFtaWx5U3lzdGVtIHtcblx0QGluY2x1ZGUga28tc2dWYXIoJGZvbnQtZmFtaWx5LXN5c3RlbSk7XG59XG5cbi5zZy12YXItLWZvbnRGYW1pbHlTYW5zIHtcblx0QGluY2x1ZGUga28tc2dWYXIoJGZvbnQtZmFtaWx5LXNhbnMpO1xufVxuXG4uc2ctdmFyLS1mb250RmFtaWx5U2VyaWYge1xuXHRAaW5jbHVkZSBrby1zZ1ZhcigkZm9udC1mYW1pbHktc2VyaWYpO1xufVxuXG4uc2ctdmFyLS1icmVha3BvaW50cyB7XG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRicmVha3BvaW50cyk7XG59XG5cbi5zZy12YXItLWxheW91dFdpZHRoIHtcblx0QGluY2x1ZGUga28tc2dWYXIoJGxheW91dC1tYXgtd2lkdGgpO1xufVxuXG4uc2ctdmFyLS1ncmlkQ29sdW1ucyB7XG5cdEBpbmNsdWRlIGtvLXNnVmFyKCRncmlkLWNvbHVtbi1jb3VudCk7XG59XG5cbi5zZy12YXItLWdyaWRHdXR0ZXIge1xuXHRAaW5jbHVkZSBrby1zZ1ZhcigkZ3JpZC1ndXR0ZXItd2lkdGgpO1xufVxuIiwiLyoqXG4gKiBVc2FnZTpcbiAqXG4gKiBrby1nZXRWYWwoMTAwLCAkbWFwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tZ2V0VmFsKG1pZCwgJG1hcCkgLSB1c2VzIGEgU2FzcyBtYXBcbiAqIGtvLWdldFZhbCgkZm9vLCAkbWFwKSAtIHVzZXMgYSBTYXNzIHZhcmlhYmxlXG4gKi9cblxuQGZ1bmN0aW9uIGtvLWdldFZhbHVlKCR2YWwsICRtYXA6ICcnKSB7XG5cdEBpZiB0eXBlLW9mKCR2YWwpID09ICdudW1iZXInIHtcblx0XHRAcmV0dXJuICR2YWw7XG5cdH0gQGVsc2UgaWYgdmFyaWFibGUtZXhpc3RzKCR2YWwpIHtcblx0XHRAcmV0dXJuICR2YWw7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsKTtcblx0fVxufVxuXG5cbi8qKlxuICogR2V0IGJyZWFrcG9pbnRzXG4gKlxuICoga28tYnAoKVxuICpcbiAqIFVzYWdlOlxuICoga28tYnAoMTAwKSAtIHVzZXMgYW4gaW50ZWdlclxuICoga28tYnAobWlkKSAtIHVzZXMgdGhlICRicmVha3BvaW50cyBTYXNzIG1hcFxuICoga28tYnAoJGZvbykgLSB1c2VzIGEgU2FzcyB2YXJpYWJsZVxuICovXG5AZnVuY3Rpb24ga28tYnAoJHZhbCkge1xuXHRAcmV0dXJuIGdldFZhbHVlKCR2YWwsICRicmVha3BvaW50cyk7XG59XG5cblxuLyoqXG4gKiBHZXQgdHlwZSBzaXplXG4gKlxuICoga28tdHlwZSgpXG4gKlxuICogVXNhZ2U6XG4gKiBrby10eXBlKDEwMCkgLSB1c2VzIGFuIGludGVnZXJcbiAqIGtvLXR5cGUobWlkKSAtIHVzZXMgdGhlICR0eXBlIFNhc3MgbWFwXG4gKiBrby10eXBlKCRmb28pIC0gdXNlcyBhIFNhc3MgdmFyaWFibGVcbiAqL1xuQGZ1bmN0aW9uIGtvLXR5cGUoJHZhbCkge1xuXHRAcmV0dXJuIGdldFZhbHVlKCR2YWwsICR0eXBlKTtcbn1cbiIsIi8qKlxuICogVXNhZ2U6XG4gKlxuICRncmlkLWNvbmZpZ3VyYXRpb246IChcbiAgICdjb2x1bW5zJzogMTIsXG4gICAnbGF5b3V0cyc6IChcbiAgICAgJ3NtYWxsJzogODAwcHgsXG4gICAgICdtZWRpdW0nOiAxMDAwcHgsXG4gICAgICdsYXJnZSc6IDEyMDBweCxcbiAgICksXG4gKTtcblxuIGRpdiB7XG4gICBmb250LXNpemU6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnY29sdW1ucycpO1xuICAgd2lkdGg6IGtvLW1hcC1kZWVwLWdldCgkZ3JpZC1jb25maWd1cmF0aW9uLCAnbGF5b3V0cycsICdtZWRpdW0nKTtcbiB9XG4gKi9cblxuQGZ1bmN0aW9uIGtvLW1hcC1kZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuXHRAZWFjaCAka2V5IGluICRrZXlzIHtcblx0XHQkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuXG5cdFx0QGlmIG5vdCAkbWFwIHtcblx0XHRcdEBlcnJvciAnVGhlIHZhbHVlIGAjeyRrZXl9YCBkb2VzbuKAmXQgZXhpc3QgaW4gdGhlIG1hcC4nO1xuXHRcdH1cblx0fVxuXG5cdEByZXR1cm4gJG1hcDtcbn1cbiIsIi8qKlxuICogTW9kdWxhciBzY2FsZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBVc2FnZToga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIDMsICR0eXBlLXNjYWxlKVxuICogb3Igd2l0aCB0aGUgc2hvcnRoYW5kIHZlcnNpb246IGtvLW1zKDMpXG4gKi9cblxuLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW4gICAgICAgICAgIDogMS42MTg7XG4kbWlub3Itc2Vjb25kICAgICA6IDEuMDY3O1xuJG1ham9yLXNlY29uZCAgICAgOiAxLjEyNTtcbiRtaW5vci10aGlyZCAgICAgIDogMS4yO1xuJG1ham9yLXRoaXJkICAgICAgOiAxLjI1O1xuJHBlcmZlY3QtZm91cnRoICAgOiAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoIDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aCAgICA6IDEuNTtcbiRtaW5vci1zaXh0aCAgICAgIDogMS42O1xuJG1ham9yLXNpeHRoICAgICAgOiAxLjY2NztcbiRtaW5vci1zZXZlbnRoICAgIDogMS43Nzg7XG4kbWFqb3Itc2V2ZW50aCAgICA6IDEuODc1O1xuJG9jdGF2ZSAgICAgICAgICAgOiAyO1xuJG1ham9yLXRlbnRoICAgICAgOiAyLjU7XG4kbWFqb3ItZWxldmVudGggICA6IDIuNjY3O1xuJG1ham9yLXR3ZWxmdGggICAgOiAzO1xuJGRvdWJsZS1vY3RhdmUgICAgOiA0O1xuXG5cbkBmdW5jdGlvbiBrby1tb2R1bGFyLXNjYWxlKCR2YWx1ZSwgJGluY3JlbWVudCwgJHJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG4vKipcbiAqIFNob3J0aGFuZCBtb2R1bGFyIHNjYWxlXG4gKiBVc2VzIHRoZSAkZm9udC1zaXplLWJhc2UgYW5kICR0eXBlLXNjYWxlIGZyYW1ld29yayB2YXJpYWJsZXMgc28gdGhhdCB5b3VcbiAqIG9ubHkgbmVlZCB0byBwcm92aWRlIHRoZSBzY2FsZSBpbmNyZW1lbnRcbiAqXG4gKiBlLmcuIGtvLW1zKDUpXG4gKi9cbkBmdW5jdGlvbiBrby1tcygkaW5jcmVtZW50KSB7XG5cdEByZXR1cm4ga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsICRpbmNyZW1lbnQsICR0eXBlLXNjYWxlKTtcbn1cbiIsIi8qKlxuICogTXVsdGlwbHlcbiAqID09PT09PT09PT09PT09PT09XG4gKiBNdWx0aXBseSBhbnkgdmFsdWVcbiAqXG4gKiBVc2FnZTpcbiAqIGtvLW11bHRpcGx5KDE1LCAyKVxuICoga28tbXVsdGlwbHkoJGJhc2VsaW5lLCAxLjUpXG4gKi9cbkBmdW5jdGlvbiBrby1tdWx0aXBseSgkaW5pdGlhbCwgJG11bHRpcGx5KSB7XG5cdEByZXR1cm4gJG11bHRpcGx5ICogJGluaXRpYWw7XG59XG4iLCIvKipcbiAqIFNhc3MgTWl4aW5zXG4gKiAtIFJlc3BvbnNpdmVcbiAqIC0gRGltZW5zaW9uc1xuICogLSBQb3NpdGlvbmluZ1xuICogLSBVdGlsaXR5XG4gKiAtIEZvcm1zXG4gKiAtIE1vZHVsZSBOYW1pbmcgSGVscGVyc1xuICovXG5cbi8vIFJlc3BvbnNpdmUgbWl4aW5zXG5AaW1wb3J0IFwicmVzcG9uc2l2ZVwiO1xuQGltcG9ydCBcImhpZHBpXCI7XG5cbi8vIFNpemluZyBtaXhpbnNcbi8vIEZvbnQtc2l6aW5nLCBSRU0gbWl4aW5zIGFuZCBvdGhlciBzaXppbmcgbWl4aW5zXG5AaW1wb3J0IFwidW5pdHNcIjtcblxuLy8gUG9zaXRpb25pbmcgbWl4aW5zXG5AaW1wb3J0IFwicG9zaXRpb25cIjtcbkBpbXBvcnQgXCJ2ZXJ0aWNhbC1jZW50ZXJcIjtcblxuLy8gVXRpbGl0eSBtaXhpbnMgLSBDbGVhcmZpeCBhbmQgb3RoZXIgaGVscGVyc1xuQGltcG9ydCBcInV0aWxpdHlcIjtcblxuLy8gTW9kdWxlIG5hbWluZyBoZWxwZXJzXG5AaW1wb3J0IFwibW9kdWxlLW5hbWluZy1oZWxwZXJzXCI7XG4iLCIvKipcbiAqIFJlc3BvbnNpdmUgbWVkaWEgcXVlcnkgbWl4aW5zXG4gKiAtIFRoZXNlIGFyZSB1c2VkIHNvIHRoYXQgd2UgY2FuIGRlZmluZSBzZXBhcmF0ZSBtZWRpYS1xdWVyeSBjb250ZW50XG4gKiAtIEFyZ3VtZW50cyBjYW4gdXNlOlxuICogICAtIGEgbmFtZWQgYnJlYWtwb2ludCBpbiB0aGUgJGJyZWFrcG9pbnRzIG1hcCwgZS5nLiBtaWRcbiAqICAgLSBhIHBpeGVsIHZhbHVlIGUuZy4gNTAwcHhcbiAqICAgLSBhIHVuaXRsZXNzIHZhbHVlIHRoYXQgaXMgZXFpdmFsZW50IHRvIGEgcGl4ZWwgZS5nLiA1MDBcbiAqL1xuXG4vLyAkbXEtYmFzZSB2YXJpYWJsZTpcbi8vXG4vLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGJyb3dzZXJzIGRvIG5vdCBjYWxjdWxhdGUgZW0tYmFzZWRcbi8vIG1lZGlhIHF1ZXJpZXMgY29ycmVjdGx5LiBJdCBpcyBzZXQgdG8gMTYgYmVjYXVzZSB3ZSB0aGlua1xuLy8gdGhlIG1ham9yaXR5IG9mIHVzZXJzIHdpbGwgaGF2ZSB0aGVpciBicm93c2VyIHNldCB0byAxMDAlXG4vLyB6b29tIGxldmVsLlxuLy9cbi8vIFNlZSBiZWxvdyBmb3IgYW4gZXhwbGFuYXRpb246XG4vLyBodHRwOi8vd3d3LmZpbGFtZW50Z3JvdXAuY29tL2xhYi9ob3ctd2UtbGVhcm5lZC10by1sZWF2ZS1ib2R5LWZvbnQtc2l6ZS1hbG9uZS5odG1sXG4kbXEtYmFzZTogMTY7XG5cblxuLyoqXG4gKiBNaW4td2lkdGggbWVkaWEgcXVlcnk6XG4gKiAtIEVxdWl2YWxlbnQgdG86IEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluKG1pZCkgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLXJlc3BvbmQtbWluKCR3aWR0aCkge1xuXHQkd2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCR3aWR0aCkpLCAkbXEtYmFzZSk7XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoLWVtKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuXG4vKipcbiAqIE1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjBlbSkgeyAuLi4gfVxuICogLSBVc2FnZTogQGluY2x1ZGUga28tcmVzcG9uZC1tYXgobWlkKSB7IC4uLiB9O1xuICovXG5AbWl4aW4ga28tcmVzcG9uZC1tYXgoJHdpZHRoKSB7XG5cdCR3aWR0aC1lbToga28tZW0oa28tc3RyaXAtdW5pdHMoa28tYnAoJHdpZHRoKSksICRtcS1iYXNlKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgtZW0pIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogTWluLW1heC13aWR0aCBtZWRpYSBxdWVyeTpcbiAqIC0gRXF1aXZhbGVudCB0bzogQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTBlbSkgYW5kIChtYXgtd2lkdGg6IDIwZW0pIHsgLi4uIH1cbiAqIC0gVXNhZ2U6IEBpbmNsdWRlIGtvLXJlc3BvbmQtbWluLW1heChuYXJyb3csIDYwMCkgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLXJlc3BvbmQtbWluLW1heCgkbWluLXdpZHRoLCAkbWF4LXdpZHRoKSB7XG5cdCRtaW4td2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCRtaW4td2lkdGgpKSwgJG1xLWJhc2UpO1xuXHQkbWF4LXdpZHRoLWVtOiBrby1lbShrby1zdHJpcC11bml0cyhrby1icCgkbWF4LXdpZHRoKSksICRtcS1iYXNlKTtcblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAkbWluLXdpZHRoLWVtKSBhbmQgKG1heC13aWR0aDogJG1heC13aWR0aC1lbSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvKipcbiAqICBIaURQSSBtaXhpbi5cbiAqICBAaW5jbHVkZSBrby1oaWRwaSB7IC4uLiB9O1xuICogIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuICovXG5AbWl4aW4ga28taGlkcGkoJHJhdGlvOiAxLjI1KSB7XG5cdEBtZWRpYSBwcmludCxcblx0XHQoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuXHRcdChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCksXG5cdFx0KG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpbyo5Nn1kcGkpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1pbmltdW0gd2lkdGggbWVkaWEgcXVlcnlcbiAqIEBpbmNsdWRlIGtvLWhpZHBpLW1pbihicChtaWQpLCAxLjUpIHsgLi4uIH07XG4gKi9cbkBtaXhpbiBrby1oaWRwaS1taW4oJHdpZHRoLCAkcmF0aW86IDEuMjUpIHtcblx0JHdpZHRoLWVtOiBrby1lbShrby1zdHJpcC11bml0cyhrby1icCgkd2lkdGgpKSwgJG1xLWJhc2UpO1xuXG5cdEBtZWRpYSBwcmludCxcblx0XHRzY3JlZW4gYW5kIChtaW4td2lkdGg6ICR3aWR0aC1lbSkgYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG5cdFx0c2NyZWVuIGFuZCAobWluLXdpZHRoOiAkd2lkdGgtZW0pIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvfWRwcHgpLFxuXHRcdHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHdpZHRoLWVtKSBhbmQgKG1pbi1yZXNvbHV0aW9uOiAjeyRyYXRpbyo5Nn1kcGkpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5cbi8qKlxuICogSGlkcGkgd2l0aCBhIG1heCB3aWR0aCBtZWRpYSBxdWVyeVxuICogQGluY2x1ZGUga28taGlkcGktbWF4KGJwKG1pZCksIDEuMykgeyAuLi4gfTtcbiAqL1xuQG1peGluIGtvLWhpZHBpLW1heCgkd2lkdGgsICRyYXRpbzogMS4yNSkge1xuXHQkd2lkdGgtZW06IGtvLWVtKGtvLXN0cmlwLXVuaXRzKGtvLWJwKCR3aWR0aCkpLCAkbXEtYmFzZSk7XG5cblx0QG1lZGlhIHByaW50LFxuXHRcdHNjcmVlbiBhbmQgKG1heC13aWR0aDogJHdpZHRoLWVtKSBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcblx0XHRzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICR3aWR0aC1lbSkgYW5kIChtaW4tcmVzb2x1dGlvbjogI3skcmF0aW99ZHBweCksXG5cdFx0c2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkd2lkdGgtZW0pIGFuZCAobWluLXJlc29sdXRpb246ICN7JHJhdGlvKjk2fWRwaSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG4iLCIvLy8gQGdyb3VwIHVuaXRzXG4vKipcbiAqIERpbWVuc2lvbnMtYmFzZWQgbWl4aW5zXG4gKiAtIFJFTSBjYWxjdWxhdGlvblxuICogLSBUeXBvZ3JhcGh5IG1peGlucyBiYXNlZCBvbiB0aGUgUkVNIG1peGluXG4gKiAgIC0gZm9udC1zaXplXG4gKiAgIC0gbGluZS1oZWlnaHRcbiAqICAgLSBmb250LXNpemUtZW1zXG4gKi9cblxuLy8gUkVNXG4vLyBAaW5jbHVkZSBrby1yZW0obWFyZ2luLCAkZm9udC1zaXplLWJhc2UpO1xuQG1peGluIGtvLXJlbSgkcHJvcGVydHksICRzaXplVmFsdWU6ICRmb250LXNpemUtYmFzZSkge1xuXHQkcmVtVmFsdWU6IChrby1zdHJpcC11bml0cygkc2l6ZVZhbHVlKSAvICRmb250LXNpemUtYmFzZSk7XG5cdC8vICN7JHByb3BlcnR5fTogY2VpbCgkc2l6ZVZhbHVlKSArIHB4O1xuXHQjeyRwcm9wZXJ0eX06ICN7JHJlbVZhbHVlfXJlbTtcbn1cblxuXG4vKipcbiAqIFR5cG9ncmFwaHkgbWl4aW5zXG4gKi9cblxuLy8gUkVNIGZvbnQgc2l6ZVxuLy8gQGluY2x1ZGUga28tZm9udC1zaXplKDE2KTtcbi8vIEBpbmNsdWRlIGtvLWZvbnQtc2l6ZShsYXJnZSk7XG4vLyBAaW5jbHVkZSBrby1mb250LXNpemUoJHR5cGUtanVtYm8pO1xuQG1peGluIGtvLWZvbnQtc2l6ZSgkc2l6ZVZhbHVlOiAkZm9udC1zaXplLWJhc2UpIHtcblx0JHR5cGU6ICgpICFkZWZhdWx0O1xuXHQvLyBAZGVidWcgJHNpemVWYWx1ZTtcblx0QGluY2x1ZGUga28tcmVtKGZvbnQtc2l6ZSwga28tZ2V0VmFsdWUoJHNpemVWYWx1ZSwgJHR5cGUpKTtcbn1cblxuXG4vLyBSRU0gbGluZSBoZWlnaHRcbi8vIEBpbmNsdWRlIGtvLWxpbmUtaGVpZ2h0KDE2KTtcbkBtaXhpbiBrby1saW5lLWhlaWdodCgkc2l6ZVZhbHVlOiAkbGluZS1oZWlnaHQtYmFzZSkge1xuXHRAaW5jbHVkZSBrby1yZW0obGluZS1oZWlnaHQsICRzaXplVmFsdWUpO1xufVxuXG5cbi8vIEVNIGZvbnQgc2l6ZVxuLy8gQGluY2x1ZGUga28tZm9udC1zaXplLWVtcygyMCwgMTYpO1xuQG1peGluIGtvLWZvbnQtc2l6ZS1lbXMoJHRhcmdldC1weC1zaXplLCAkY29udGV4dC1weC1zaXplOiAkZm9udC1zaXplLWJhc2UpIHtcblx0Zm9udC1zaXplOiAoJHRhcmdldC1weC1zaXplIC8gJGNvbnRleHQtcHgtc2l6ZSkgKiAxZW07XG59XG4iLCIvKipcbiAqIGtvLXBvc2l0aW9uXG4gKiBVc2FnZTpcbiAqIEBpbmNsdWRlIGtvLXBvc2l0aW9uKGFic29sdXRlLCAxMHB4IDIwcHggMzBweCAxMHB4KTtcbiAqL1xuQG1peGluIGtvLXBvc2l0aW9uICgkcG9zaXRpb246IHJlbGF0aXZlLCAkY29vcmRpbmF0ZXM6IDAgMCAwIDApIHtcblxuXHRAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuXHRcdCRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuXHRcdCRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdH1cblxuXHQkdG9wOiBudGgoJGNvb3JkaW5hdGVzLCAxKTtcblx0JHJpZ2h0OiBudGgoJGNvb3JkaW5hdGVzLCAyKTtcblx0JGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyk7XG5cdCRsZWZ0OiBudGgoJGNvb3JkaW5hdGVzLCA0KTtcblxuXHRwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG5cdEBpZiAkdG9wID09IGF1dG8ge1xuXHRcdHRvcDogJHRvcDtcblx0fSBAZWxzZSBpZiBub3QodW5pdGxlc3MoJHRvcCkpIHtcblx0XHR0b3A6ICR0b3A7XG5cdH1cblxuXHRAaWYgJHJpZ2h0ID09IGF1dG8ge1xuXHRcdHJpZ2h0OiAkcmlnaHQ7XG5cdH0gQGVsc2UgaWYgbm90KHVuaXRsZXNzKCRyaWdodCkpIHtcblx0XHRyaWdodDogJHJpZ2h0O1xuXHR9XG5cblx0QGlmICRib3R0b20gPT0gYXV0byB7XG5cdFx0Ym90dG9tOiAkYm90dG9tO1xuXHR9IEBlbHNlIGlmIG5vdCh1bml0bGVzcygkYm90dG9tKSkge1xuXHRcdGJvdHRvbTogJGJvdHRvbTtcblx0fVxuXG5cdEBpZiAkbGVmdCA9PSBhdXRvIHtcblx0XHRsZWZ0OiAkbGVmdDtcblx0fSBAZWxzZSBpZiBub3QodW5pdGxlc3MoJGxlZnQpKSB7XG5cdFx0bGVmdDogJGxlZnQ7XG5cdH1cbn1cbiIsIi8qKlxuICogdmVydGljYWwtY2VudGVyXG4gKiBWZXJ0aWNhbGx5IGNlbnRlciBhbnkgZWxlbWVudC4gTmVlZHMgc3VwcG9ydCBmb3IgQ1NTIHRyYW5mb3Jtcy5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUga28tdmVydGljYWwtY2VudGVyO1xuICovXG5AbWl4aW4ga28tdmVydGljYWwtY2VudGVyIHtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHR0b3A6IDUwJTtcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuIiwiLyoqXG4gKiBVdGlsaXR5IE1peGluc1xuICogLSBjbGVhcmZpeFxuICogLSBmb250LWZhY2VcbiAqIC1cbiAqIC0gc2l6aW5nIHNob3J0Y3V0c1xuICogICAtIHNpemVcbiAqICAgLSBzcXVhcmVcbiAqIC0gcmVzaXphYmxlXG4gKi9cblxuLy8gQ2xlYXJmaXhcbi8vIGh0dHA6Ly93d3cuY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLyBPdGhlciBrby1jbGVhcmZpeCBvcHRpb25zOiBodHRwczovL2dpdGh1Yi5jb20vc3R1YmJvcm5lbGxhL29vY3NzL2Jsb2IvbWFzdGVyL29vY3NzL3NyYy9jb21wb25lbnRzL3V0aWxzL19jbGVhcmZpeC1tZS5zY3NzXG5AbWl4aW4ga28tY2xlYXJmaXgge1xuXHQmOmFmdGVyIHtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGRpc3BsYXk6IHRhYmxlO1xuXHRcdGNsZWFyOiBib3RoO1xuXHR9XG59XG5cblxuXG4vLyBAZm9udC1mYWNlXG4vLyBAaW5jbHVkZSBrby1mb250LWZhY2UocHJveGltYS1ub3ZhLCAvY3NzL2ZvbnRzL3Byb3hpbWEtbm92YSwgbm9ybWFsLCBpdGFsaWMsIGZhbHNlKTtcbkBtaXhpbiBrby1mb250LWZhY2UoJGZhbWlseS1uYW1lLCAkZm9udC1wYXRoLCAkZm9udC13ZWlnaHQ6IG5vcm1hbCwgJGZvbnQtc3R5bGU6IG5vcm1hbCkge1xuXHRAZm9udC1mYWNlIHtcblx0XHRmb250LWZhbWlseTogJGZhbWlseS1uYW1lO1xuXHRcdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LmVvdCcpO1xuXHRcdHNyYzogdXJsKCcjeyRmb250LXBhdGh9LmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG5cdFx0XHR1cmwoJyN7JGZvbnQtcGF0aH0ud29mZicpIGZvcm1hdCgnd29mZicpLFxuXHRcdFx0dXJsKCcjeyRmb250LXBhdGh9LnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKSxcblx0XHRcdHVybCgnI3skZm9udC1wYXRofS5zdmcjI3skZmFtaWx5LW5hbWV9JykgZm9ybWF0KCdzdmcnKTtcblx0XHRmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuXHRcdGZvbnQtc3R5bGU6ICRmb250LXN0eWxlO1xuXHR9XG59XG5cbi8vIENlbnRyZS1hbGlnbiBhIGJsb2NrIGxldmVsIGVsZW1lbnRcbi8vIEBpbmNsdWRlIGtvLWNlbnRlci1ibG9ja1xuQG1peGluIGtvLWNlbnRlci1ibG9jaygpIHtcblx0ZGlzcGxheTogYmxvY2s7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4vLyBJbnB1dCBwbGFjZWhvbGRlciB0ZXh0XG5AbWl4aW4ga28tcGxhY2Vob2xkZXIoJGNvbG9yOiBsaWdodGVuKCMwMDAsIDcwJSkpIHtcblx0Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0fVxuXG5cdDotbW96LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG5cblx0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcblx0XHRjb2xvcjogJGNvbG9yO1xuXHR9XG59XG5cbi8vIFRleHQgc2VsZWN0aW9uXG5AbWl4aW4ga28tdGV4dC1zZWxlY3Rpb24oJGNvbG9yLXNlbGVjdGlvbiwgJGNvbG9yLXNlbGVjdGlvbi1iZykge1xuXHQ6Oi1tb3otc2VsZWN0aW9uIHtcblx0XHRjb2xvcjogJGNvbG9yLXNlbGVjdGlvbjtcblx0XHRiYWNrZ3JvdW5kOiAkY29sb3Itc2VsZWN0aW9uLWJnO1xuXHRcdHRleHQtc2hhZG93OiBub25lO1xuXHR9XG5cblx0OjpzZWxlY3Rpb24ge1xuXHRcdGNvbG9yOiAkY29sb3Itc2VsZWN0aW9uO1xuXHRcdGJhY2tncm91bmQ6ICRjb2xvci1zZWxlY3Rpb24tYmc7XG5cdFx0dGV4dC1zaGFkb3c6IG5vbmU7XG5cdH1cbn1cblxuLy8gVmVydGljYWwgYWxpZ25cbi8vIEBpbmNsdWRlIGtvLXZlcnRpY2FsLWFsaWduKDUwcHgpO1xuQG1peGluIGtvLXZlcnRpY2FsLWFsaWduKCRhcmd1bWVudCkge1xuXHRsaW5lLWhlaWdodDogJGFyZ3VtZW50O1xuXHRoZWlnaHQ6ICRhcmd1bWVudDtcbn1cblxuLy8gVGV4dCB0cnVuY2F0aW9uXG4vLyBAaW5jbHVkZSBrby10cnVuY2F0ZSgzMDBweCk7XG4vLyBAaW5jbHVkZSBrby10cnVuY2F0ZSgxMDAlKTtcbkBtaXhpbiBrby10cnVuY2F0ZSgkdHJ1bmNhdGlvbi1ib3VuZGFyeSkge1xuXHRtYXgtd2lkdGg6ICR0cnVuY2F0aW9uLWJvdW5kYXJ5O1xuXHRAaW5jbHVkZSBrby10ZXh0LW92ZXJmbG93KCk7XG59XG5cbi8vIFRleHQgb3ZlcmZsb3dcbi8vIEBpbmNsdWRlIGtvLXRleHQtb3ZlcmZsb3coKTtcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcbkBtaXhpbiBrby10ZXh0LW92ZXJmbG93IHtcblx0b3ZlcmZsb3c6IGhpZGRlbjtcblx0dGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cdHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cblxuLyoqXG4gKiBTaXppbmcgc2hvcnRjdXRzXG4gKi9cblxuLy8gQGluY2x1ZGUga28tc2l6ZSgxMHB4LCAzMHB4KTtcbkBtaXhpbiBrby1zaXplKCR3aWR0aDogNXB4LCAkaGVpZ2h0OiA1cHgpIHtcblx0aGVpZ2h0OiAkaGVpZ2h0O1xuXHR3aWR0aDogJHdpZHRoO1xufVxuXG5cbi8vIEBpbmNsdWRlIGtvLXNxdWFyZSg1MHB4KTtcbkBtaXhpbiBrby1zcXVhcmUoJHNpemU6IDVweCkge1xuXHRAaW5jbHVkZSBrby1zaXplKCRzaXplLCAkc2l6ZSk7XG59XG5cblxuLy8gTWFrZSBhbnkgZWxlbWVudCByZXNpemFibGUgZm9yIHByb3RvdHlwaW5nXG4vLyBAaW5jbHVkZSBrby1yZXNpemFibGUoKTtcbkBtaXhpbiBrby1yZXNpemFibGUoJGRpcmVjdGlvbjogYm90aCkge1xuXHRyZXNpemU6ICRkaXJlY3Rpb247IC8vIE9wdGlvbnMgYXJlIGhvcml6b250YWwsIHZlcnRpY2FsLCBib3RoXG5cdG92ZXJmbG93OiBhdXRvOyAvLyBTYWZhcmkgZml4XG59XG5cbiIsIi8qKlxuICogYmVtaWZ5IFttb2RpZmllZCBmb3IgS2lja29mZl1cbiAqIGh0dHBzOi8vZ3RpaHViLmNvbS9mcmFuemhlaWRsL2JlbWlmeVxuICogRnJhbnogSGVpZGwgMjAxNVxuICpcbiAqIFVzYWdlOiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9tcm1hcnRpbmVhdS8wY2QyMDEwYmYyNjVkNzEyYmFmYlxuICovXG5cblxuXG4vLyBDT05GSUdcbi8vID09PT09PVxuXG4vLyBPdXRwdXQgY29tYmluZWQgc3RhdGUgc2VsZWN0b3JzIGxpa2U6XG4vLyAgICAuYmxvY2stZWxlbWVudC5pcy1hY3RpdmUge31cbi8vIFNldCB0byBmYWxzZSB0byBvdXRwdXQgc2luZ2xlLCBub24tY29tYmluZWQgc3RhdGUgbW9kaWZpZXJzOlxuLy8gICAgLmJsb2NrLWVsZW1lbnQtLWlzLWFjdGl2ZSB7fVxuJGNvbWJpbmVkLXN0YXRlLXNlbGVjdG9yczogdHJ1ZTtcblxuLy8gLmJsb2NrW3NlcGFyYXRvcl1lbGVtZW50OlxuJGVsZW1lbnQtc2VwYXJhdG9yOiBcIi1cIjtcblxuLy8gLmJsb2NrW3NlcGFyYXRvcl1tb2RpZmllcjpcbiRtb2RpZmllci1zZXBhcmF0b3I6IFwiLS1cIjtcblxuLy8gVGhlIGRlZmF1bHQgcHJlZml4IGZvciBzdGF0ZSBtb2RpZmllciBzZWxlY3RvcnMsIHdpbGwgYmUgY29tYmluZWQgd2l0aCAkbW9kaWZpZXItc2VwYXJhdG9yOlxuJHN0YXRlLXByZWZpeDogXCJpc1wiO1xuXG5cblxuXG4vLyBNaXhpbnNcbi8vIEBpbmNsdWRlIGtvLWJsb2NrKCdmb3JtJykge31cbkBtaXhpbiBrby1ibG9jaygkbmFtZSkge1xuXHQuI3skbmFtZX0ge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLWVsZW1lbnQoJ2l0ZW0nKSB7fVxuQG1peGluIGtvLWVsZW1lbnQoJG5hbWUpIHtcblx0QGF0LXJvb3Qge1xuXHRcdCYjeyRlbGVtZW50LXNlcGFyYXRvcn0jeyRuYW1lfSB7XG5cdFx0XHRAY29udGVudDtcblx0XHR9XG5cdH1cbn1cblxuLy8gQGluY2x1ZGUga28tbW9kaWZpZXIoJ3N0YWNrZWQnKSB7fVxuQG1peGluIGtvLW1vZGlmaWVyKCRuYW1lKSB7XG5cdEBhdC1yb290IHtcblx0XHQmI3skbW9kaWZpZXItc2VwYXJhdG9yfSN7JG5hbWV9IHtcblx0XHRcdEBjb250ZW50O1xuXHRcdH1cblx0fVxufVxuXG4vLyBAaW5jbHVkZSBrby1zdGF0ZSgnYWN0aXZlJykge31cbi8vIEBpbmNsdWRlIGtvLXN0YXRlKCduYXYnLCAnaGFzJykge31cbkBtaXhpbiBrby1zdGF0ZSgkc3RhdGUsICRwcmVmaXg6ICRzdGF0ZS1wcmVmaXgpIHtcblx0QGlmICRjb21iaW5lZC1zdGF0ZS1zZWxlY3RvcnMgPT0gdHJ1ZSB7XG5cdFx0QGF0LXJvb3Qge1xuXHRcdFx0Ji4jeyRwcmVmaXh9LSN7JHN0YXRlfSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXHRAZWxzZSB7XG5cdFx0QGF0LXJvb3Qge1xuXHRcdFx0JiN7JG1vZGlmaWVyLXNlcGFyYXRvcn0jeyRwcmVmaXh9LSN7JHN0YXRlfSB7XG5cdFx0XHRcdEBjb250ZW50O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufVxuXG5cblxuXG4vLyBBbGlhc2VzXG4vLyBAaW5jbHVkZSBrby1jb21wb25lbnQoJ2Zvcm0nKSB7fVxuQG1peGluIGtvLWNvbXBvbmVudCgkbmFtZSkge1xuXHRAaW5jbHVkZSBrby1ibG9jaygkbmFtZSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLWNoaWxkKCdpdGVtJykge31cbkBtaXhpbiBrby1jaGlsZCgkbmFtZSkge1xuXHRAaW5jbHVkZSBrby1lbGVtZW50KCRuYW1lKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLy8gQGluY2x1ZGUga28tc3ViY29tcG9uZW50KCdpdGVtJykge31cbkBtaXhpbiBrby1zdWJjb21wb25lbnQoJG5hbWUpIHtcblx0QGluY2x1ZGUga28tZWxlbWVudCgkbmFtZSkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5cbi8vIEBpbmNsdWRlIGtvLXN1YignaXRlbScpIHt9XG5AbWl4aW4ga28tc3ViKCRuYW1lKSB7XG5cdEBpbmNsdWRlIGtvLWVsZW1lbnQoJG5hbWUpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuIiwiLyoqXG4gKiBHbG9iYWwgY29sb3IgcGFsZXR0ZVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiAtIEdlbmVyaWMgY29sb3JzXG4gKiAtIENvbG9yIHNjaGVtZVxuICogLSBDb21tb24gY29sb3JzXG4gKiAtIExpbmtzXG4gKiAtIFRleHQgc2VsZWN0aW9uXG4gKiAtIDxocj5cbiAqIC0gQW55IG90aGVycy4uXG4gKi9cblxuLy8gR2VuZXJpYyBjb2xvcnNcbiRibHVlICAgICAgICAgICAgICAgICAgICAgICAgIDogIzI4OGFkNjtcbiRncmVlbiAgICAgICAgICAgICAgICAgICAgICAgIDogIzE2Yzk4ZDtcbiRyZWQgICAgICAgICAgICAgICAgICAgICAgICAgIDogI2ZhNWU1YjtcbiR5ZWxsb3cgICAgICAgICAgICAgICAgICAgICAgIDogI2ZlZWY2ZDtcbiRvcmFuZ2UgICAgICAgICAgICAgICAgICAgICAgIDogI2ZlN2MwODtcbiRwaW5rICAgICAgICAgICAgICAgICAgICAgICAgIDogI2ZmNzA4ZTtcbiRwdXJwbGUgICAgICAgICAgICAgICAgICAgICAgIDogIzhlNDRhZDtcbiRncmF5ICAgICAgICAgICAgICAgICAgICAgICAgIDogIzk1YTVhNjtcblxuJGNvbG9yLWtpY2tvZmYtYmx1ZSAgICAgICAgICAgOiAjMTgxODMwO1xuJGNvbG9yLWtpY2tvZmYtb3JhbmdlICAgICAgICAgOiAjZmU3YzA4O1xuXG4vLyBDb2xvciBTY2hlbWVcbiRjb2xvci1wcmltYXJ5ICAgICAgICAgICAgICAgIDogIzE4MTgzMDtcbiRjb2xvci1zZWNvbmRhcnkgICAgICAgICAgICAgIDogJG9yYW5nZTtcbiRjb2xvci1oaWdobGlnaHQgICAgICAgICAgICAgIDogJGJsdWU7XG5cbi8vIENvbW1vbiBjb2xvcnNcbiRjb2xvci10ZXh0ICAgICAgICAgICAgICAgICAgIDogIzQ0NDtcbiRjb2xvci1iZyAgICAgICAgICAgICAgICAgICAgIDogI2YxZjFmMTtcbiRjb2xvci1ib3JkZXIgICAgICAgICAgICAgICAgIDogI2RkZDtcblxuXG4vLyBMaW5rc1xuJGNvbG9yLWxpbmstZGVmYXVsdCAgICAgICAgICAgOiAkY29sb3ItaGlnaGxpZ2h0O1xuJGNvbG9yLWxpbmstdmlzaXRlZCAgICAgICAgICAgOiAkY29sb3ItbGluay1kZWZhdWx0O1xuJGNvbG9yLWxpbmstaG92ZXIgICAgICAgICAgICAgOiBkYXJrZW4oJGNvbG9yLWxpbmstZGVmYXVsdCwgMjAlKTtcbiRjb2xvci1saW5rLWFjdGl2ZSAgICAgICAgICAgIDogZGFya2VuKCRjb2xvci1saW5rLWRlZmF1bHQsIDIwJSk7XG5cbi8vIFRleHQgU2VsZWN0aW9uXG4kY29sb3Itc2VsZWN0aW9uICAgICAgICAgICAgICA6ICNmZmY7XG4kY29sb3Itc2VsZWN0aW9uLWJnICAgICAgICAgICA6ICRjb2xvci1wcmltYXJ5O1xuXG5cbi8vIDxocj4gYm9yZGVyIGNvbG9yXG4kaHItY29sb3IgICAgICAgICAgICAgICAgICAgICA6IGxpZ2h0ZW4oIzAwMCwgNzAlKTtcblxuLy8gM3JkIHBhcnR5IGJyYW5kIGNvbG9ycyAtIGZpbmQgbW9yZSBhdCBicmFuZGNvbG9ycy5uZXRcbiRjb2xvci10d2l0dGVyICAgICAgICAgICAgICAgIDogIzU1YWNlZTtcbiRjb2xvci1mYWNlYm9vayAgICAgICAgICAgICAgIDogIzNiNTk5ODtcbiRjb2xvci15b3V0dWJlICAgICAgICAgICAgICAgIDogI2NkMjAxZjtcbiRjb2xvci1waW50ZXJlc3QgICAgICAgICAgICAgIDogI2JkMDgxYztcbiRjb2xvci1pbnN0YWdyYW0gICAgICAgICAgICAgIDogI2U0NDA1ZjtcbiRjb2xvci13aGF0c2FwcCAgICAgICAgICAgICAgIDogIzI1ZDM2NjtcbiIsIi8qKlxuICogVmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIC0gVHlwb2dyYXBoeVxuICogLSBCcmVha3BvaW50c1xuICogLSBQYXRoc1xuICogLSBMYXlvdXQgJiBHcmlkXG4gKiAtIEFwcC1zcGVjaWZpY1xuICovXG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGluZGVudGF0aW9uICovXG5cbi8qKlxuICogVHlwb2dyYXBoeVxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKlxuICogQmFzZSBzaXplczpcbiAqIFNldCB0aGlzIGluIHBpeGVscyAoYnV0IGRvIG5vdCBhZGQgcHgpLFxuICogdGhlIGZvbnQtc2l6ZSBtaXhpbiB3aWxsIGNvbnZlcnQgdG8gUkVNU1xuICovXG4kZm9udC1zaXplLWJhc2UgICAgICAgICAgIDogMjA7XG4kZm9udC1zaXplLWJhc2UtcHggICAgICAgIDogJGZvbnQtc2l6ZS1iYXNlICogMXB4O1xuJGZvbnQtc2l6ZS1iYXNlLW5hcnJvdyAgICA6ICRmb250LXNpemUtYmFzZSAtIDI7XG4kZm9udC1zaXplLWJhc2UtbmFycm93LXB4IDogJGZvbnQtc2l6ZS1iYXNlLW5hcnJvdyAqIDFweDtcblxuJGxlYWRpbmctYmFzZSAgICAgICAgICAgICA6IDEuNDtcbiRsaW5lLWhlaWdodC1iYXNlICAgICAgICAgOiByb3VuZCgkZm9udC1zaXplLWJhc2UgKiAkbGVhZGluZy1iYXNlKTsgLy8gMjAgKiAxLjRcbiRiYXNlbGluZSAgICAgICAgICAgICAgICAgOiAkbGluZS1oZWlnaHQtYmFzZSAqIDFweDtcblxuJHR5cGUtc2NhbGUgICAgICAgICAgICAgICA6IDEuMjU7IC8vIE1ham9yIHRoaXJkXG5cbiR0eXBlOiAoXG5cdG1pY3JvICAgICAgICAgICAgICAgICAgIDoga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIC0yLCAkdHlwZS1zY2FsZSksXG5cdHNtYWxsICAgICAgICAgICAgICAgICAgIDoga28tbW9kdWxhci1zY2FsZSgkZm9udC1zaXplLWJhc2UsIC0xLCAkdHlwZS1zY2FsZSksIC8vIGg1LCBoNlxuXHRiYXNlICAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAwLCAkdHlwZS1zY2FsZSksICAvLyBwLCBoNFxuXHRtaWQgICAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAxLCAkdHlwZS1zY2FsZSksICAvLyBoM1xuXHRsYXJnZSAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAyLCAkdHlwZS1zY2FsZSksICAvLyBoMlxuXHRqdW1ibyAgICAgICAgICAgICAgICAgICA6IGtvLW1vZHVsYXItc2NhbGUoJGZvbnQtc2l6ZS1iYXNlLCAzLCAkdHlwZS1zY2FsZSkgICAvLyBoMVxuKTtcblxuLy8gVXNlZnVsIHRvIHNldCBoZXJlIHdoZW4gYm9sZCB3ZWJmb250cyBjb21lIGFzIDQwMCBmb250LXdlaWdodC5cbiRmb250LXdlaWdodC1ib2xkICAgICAgICAgOiBib2xkO1xuXG4vLyBGb250IHN0YWNrc1xuJGZvbnQtZmFtaWx5LXN5c3RlbSAgICAgICA6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgXCJTZWdvZSBVSVwiLCBSb2JvdG8sIE94eWdlbiwgVWJ1bnR1LCBDYW50YXJlbGwsIFwiRmlyYSBTYW5zXCIsIFwiRHJvaWQgU2Fuc1wiLCBcIkhlbHZldGljYSBOZXVlXCIsIHNhbnMtc2VyaWY7XG4kZm9udC1mYW1pbHktc2FucyAgICAgICAgIDogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmO1xuJGZvbnQtZmFtaWx5LXNlcmlmICAgICAgICA6IEdlb3JnaWEsIFwiVGltZXMgTmV3IFJvbWFuXCIsIFRpbWVzLCBzZXJpZjtcbiRmb250LWZhbWlseS1tb25vICAgICAgICAgOiBNZW5sbywgTW9uYWNvLCBcIkNvdXJpZXIgTmV3XCIsIG1vbm9zcGFjZTtcblxuJGZvbnQtZmFtaWx5LWJhc2UgICAgICAgICA6ICRmb250LWZhbWlseS1zeXN0ZW07XG4kZm9udC1mYW1pbHktYWx0ICAgICAgICAgIDogJGZvbnQtZmFtaWx5LXNlcmlmO1xuXG4kZm9udC1mYW1pbHktaGVhZGluZ3MgICAgIDogJGZvbnQtZmFtaWx5LWJhc2U7IC8vIHVzaW5nIGluaGVyaXQgd2lsbCB1c2UgJGZvbnQtZmFtaWx5LWJhc2UgZm9yIGFsbCBoZWFkaW5nc1xuJGZvbnQtd2VpZ2h0LWhlYWRpbmdzICAgICA6IGJvbGQ7ICAgIC8vIGluc3RlYWQgb2YgYnJvd3NlciBkZWZhdWx0LCBib2xkXG4kbGluZS1oZWlnaHQtaGVhZGluZ3MgICAgIDogMS4xO1xuXG5cbi8qKlxuICogQnJlYWtwb2ludHNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlcmUgYXJlIG5vIGNvbW1vbiBicmVha3BvaW50cyBzbyB0aGVzZSBhcmUganVzdCBhIHN1Z2dlc3Rpb25zXG4gKiBZb3UnbGwgbmVlZCB0byBkZWZpbmUgeW91ciBvd24gYnJlYWtwb2ludHMgdG8gc3VpdCB5b3VyIGRlc2lnblxuICogQWRkIHlvdXIgYnJlYWtwb2ludHMgdG8gdGhpcyBTYXNzIG1hcFxuICogVXNlZCBpbiB0aGUgS2lja29mZiBncmlkXG4gKi9cbiRicmVha3BvaW50czogKFxuXHRuYXJyb3cgICAgICAgICAgICAgICAgICA6IDQwMHB4LFxuXHRtaWQgICAgICAgICAgICAgICAgICAgICA6IDc1MHB4LFxuXHR3aWRlICAgICAgICAgICAgICAgICAgICA6IDEwMDBweCxcblx0aHVnZSAgICAgICAgICAgICAgICAgICAgOiAxMjUwcHhcbik7XG5cblxuLy8gU2V0dXAgbGF5b3V0IG1heC13aWR0aFxuJGxheW91dC1tYXJnaW4gICAgICAgICAgICAgICAgOiAwOyAvLyBbaW4gcGl4ZWxzXSBTcGFjZSBvdXRzaWRlIHRoZSBncmlkXG4kbGF5b3V0LW1heC13aWR0aCAgICAgICAgICAgICA6IDEwMDA7IC8vIFtpbiBwaXhlbHNdXG4kbGF5b3V0LW1pbi13aWR0aCAgICAgICAgICAgICA6IDk2MDsgIC8vIFtpbiBwaXhlbHNdIE1pbmltdW0gd2lkdGggZm9yIGxheW91dCBpbiA8SUU5XG4kbGF5b3V0LW1heC13aWR0aC0taHVnZSAgICAgICA6IDExMDA7IC8vIFtpbiBwaXhlbHNdXG4kbGF5b3V0LW1pbi13aWR0aC0taHVnZSAgICAgICA6IDExMDA7IC8vIFtpbiBwaXhlbHNdIE1pbmltdW0gd2lkdGggZm9yIGxheW91dCBpbiA8SUU5XG5cblxuLyoqXG4gKiBHcmlkXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIFRoZXNlIHZhcmlhYmxlcyB3aWxsIGNvbnRyb2wgdGhlIGdyaWQgbW9kdWxlLlxuICpcbiAqIGlmIHlvdXIgcHJvamVjdCBkb2VzbnQgdXNlIEtpY2tvZmbigJlzIGRlZmF1bHQgZ3JpZCwgeW91IGNhbiBkZWxldGUgdGhlc2VcbiAqL1xuXG4kZ3JpZC1jb2x1bW4tY291bnQgICAgICAgIDogMTI7IC8vIFRvdGFsIGNvbHVtbiBjb3VudFxuJGdyaWQtZ3V0dGVyLXdpZHRoICAgICAgICA6IDIwOyAvLyBbaW4gcGl4ZWxzXVxuXG4vL1NldHRpbmdzIGhlcmUgb3ZlcnJpZGUgJiBhZmZlY3QgdGhlIGdyaWQgY2xhc3NlcyBvdXRwdXRcbiRyZXNwb25zaXZlLWdyaWQtc2l6ZXMgICAgOiB0cnVlOyAvLyBEaXNhYmxlIHRoaXMgaWYgeW91IGRvbid0IHdhbnQgZ3JpZCBzaXplcyBmb3IgZWFjaCBicmVha3BvaW50XG4kdXNlLWxlZ2FjeS1ncmlkICAgICAgICAgIDogdHJ1ZTsgLy8gRGlzYWJsZSB0aGlzIGlzIHlvdSBvbuKAmXQgd2FudCB0byBvdXRwdXQgLm5vLWZsZXhib3ggY2xhc3NlcyBmb3Igb2xkZXIgYnJvd3NlcnMgdG8gdXNlXG5cblxuLyoqXG4gKiBQYXRoIHZhcmlhYmxlc1xuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKi9cbiRpbWctcGF0aCAgICAgICAgICAgICAgICAgOiBcIi9hc3NldHMvZGlzdC9pbWdcIjsgLy8gVXNhZ2U6IGJhY2tncm91bmQ6IHVybCgnI3skaW1nLXBhdGh9L2ltZy5qcGcnKSAwIDAgbm8tcmVwZWF0O1xuXG5cbi8qKlxuICogWi1pbmRleCB2YXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICovXG4kei1sb3cgICAgICAgICAgICAgICAgICAgICAgIDogMTA7XG4kei1taWQgICAgICAgICAgICAgICAgICAgICAgIDogMTAwO1xuJHotaGlnaCAgICAgICAgICAgICAgICAgICAgICA6IDEwMDA7XG5cblxuLyoqXG4gKiBBcHAtc3BlY2lmaWMgdmFyaWFibGVzXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqL1xuJGRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmcgICA6IGN1YmljLWJlemllcigwLjc3LCAwLCAwLjE3NSwgMSk7XG4kZGVmYXVsdC10cmFuc2l0aW9uLWR1cmF0aW9uIDogMzAwbXM7XG4kZGVmYXVsdC10cmFuc2l0aW9uICAgICAgICAgIDogYWxsICRkZWZhdWx0LXRyYW5zaXRpb24tZHVyYXRpb24gJGRlZmF1bHQtdHJhbnNpdGlvbi10aW1pbmc7XG5cbi8vIEFkZCB5b3VyIG93biA6KVxuIiwiLyoqXG4gKiBUaGUgS2lja29mZiBGbGV4Ym94IEdyaWRcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogRGVmYXVsdCBncmlkIGNsYXNzZXNcbiAqIEdyaWQgZ3V0dGVyIG9wdGlvbnNcbiAqIE1vZGlmaWVyIENsYXNzZXMgKGNvbHVtbiBoZWlnaHQgYW5kIGNlbGwgYWxpZ25tZW50KVxuICogTGVnYWN5IGZhbGxiYWNrcyBmb3IgZmxleGJveFxuICogR3JpZCBzcGFuIGNsYXNzZXNcbiAqIEJyZWFrcG9pbnQgc3RhY2tpbmdcbiAqL1xuXG5AaW1wb3J0IFwia2lja29mZi11dGlsc1wiOyAvLyBodHRwczovL2dpdGh1Yi5jb20vVHJ5S2lja29mZi9raWNrb2ZmLXV0aWxzLnNjc3NcblxuLyogSW1wb3J0IEdyaWQgaGVscGVycyBhbmQgbWl4aW5zICovXG5AaW1wb3J0ICdncmlkLXZhcmlhYmxlcyc7XG5AaW1wb3J0IFwiaW5jbHVkZS1tZWRpYVwiOyAvLyBodHRwOi8vaW5jbHVkZS1tZWRpYS5jb21cbkBpbXBvcnQgJ2dyaWQtaGVscGVycyc7XG5cbi8qKlxuICogQmFzaWMgVXNhZ2U6XG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0PGRpdiBjbGFzcz1cImdcIj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuNCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZy1jb2wgZy1zcGFuOCBnLXNwYW42LS1taWRcIj48L2Rpdj5cblx0PC9kaXY+XG4gKi9cbi5nIHtcblx0ZGlzcGxheTogZmxleCAhaW1wb3J0YW50OyAvLyBmb3JjZSBkaXNwbGF5OiBmbGV4LCBhcyBvdGhlcndpc2UgbWF5IGNsYXNoIHdpdGggb3RoZXIgY29tcG9uZW50cyBkaXNwbGF5IHByb3BlcnRpZXMgKGFuZCB0aGUgZ3JpZCB3b27igJl0IHdvcmspXG5cdGZsZXgtd3JhcDogd3JhcDtcblx0ZmxleC1kaXJlY3Rpb246IHJvdztcblxuXHQvLyBhbnkgaW1hZ2UgaW4gdGhlIGdyaWQgc2hvdWxkIGhhdmUgYSBtYXgtd2lkdGggb2YgaXTigJlzIGNvbnRhaW5lclxuICAgICYgaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuXHQuZy1jb2wge1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXG5cdFx0Ly8gQnkgZGVmYXVsdCwgZXZlbmx5IGRpc3RyaWJ1dGUgY29sdW1uc1xuXHRcdC8vIG4uYi4gdG8gc3VwcG9ydCBub24tZmxleGJveCBicm93c2VycywgeW91IHNob3VsZCBhbHdheXMgYWRkIC5nLXNwYW54XG5cdFx0ZmxleDogMSAwIDA7XG5cdFx0bWluLXdpZHRoOiAwOyAvLyB0aGlzIGlzIHRvIG1ha2Ugc3VyZSB0aGF0IGxvbmcgd29yZHMgZG9u4oCZdCBnZXQgY3V0IG9mZiwgYnV0IHdyYXAgYXMgZXhwZWN0ZWRcblx0fVxuXG4vKipcbiAqIEd1dHRlciBjYWxjcyDigJMgYXBwbGllZCB0byBncmlkIGNvbHVtbnMgaW4gb3VyIGdyaWQgKGRpcmVjdCBkZXNjZW5kYW50cyBvbmx5KVxuICogRGVmYXVsdDogcGl4ZWxzIChjYW4gbG9vayBhdCBjaGFuZ2luZyB0byBwZXJjZW50YWdlKVxuICogVXNhZ2U6IGd1dHRlckNhbGMoKSBvciBndXR0ZXJDYWxjKGZhbHNlKVxuICovXG5cbi8vIFR3byB0eXBlcyBvZiBndXR0ZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIC5nLS1ndXR0ZXJcbi8vIFVzZXMgcGFkZGluZyBhbmQgZml4ZWQgZ3V0dGVyIHB4IHZhbHVlcy5cbi8vIFByb3MgPSBNYXJnaW5zIHdpbGwgYmUgZXF1YWwgdG8geW91ciAkZ3JpZC1ndXR0ZXItd2lkdGggKGV2ZW4gYXQgbGFyZ2VyL3NtYWxsZXIgY29udGFpbmVyIHNpemVzKSwgaWYgdGhhdOKAmXMgd2hhdCB5b3UgcmVxdWlyZVxuLy8gQ29ucyA9IENhbuKAmXQgc2V0IGEgYm9yZGVyIGRpcmVjdGx5IHRvIGdyaWQgY29udGFpbmVycywgYXMgdXNlcyBuZWdhdGl2ZSBtYXJnaW5zLiAgTmVlZCBleHRyYSBlbGVtZW50IHRvIGdldCB0aGUgZGVzaXJlZCBlZmZlY3RcblxuJGctZ3V0dGVyLWhhbGY6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKSArIHB4O1xuXG4uZy0tZ3V0dGVyIHtcblx0bWFyZ2luLWxlZnQ6IC0kZy1ndXR0ZXItaGFsZjtcblx0bWFyZ2luLXJpZ2h0OiAtJGctZ3V0dGVyLWhhbGY7XG5cblx0JiA+IC5nLWNvbCB7XG5cdFx0cGFkZGluZy1sZWZ0OiAkZy1ndXR0ZXItaGFsZjtcblx0XHRwYWRkaW5nLXJpZ2h0OiAkZy1ndXR0ZXItaGFsZjtcblx0fVxufVxuXG4vLyAuZy0tZ3V0dGVyLS1zY2FsZWRcbi8vIFVzZXMgbWFyZ2luIGFuZCBwZXJjZW50YWdlIHZhbHVlcy4gIFNjYWxlcyB0aGUgbWFyZ2luIGFzIHRoZSB2aWV3cG9ydCBnZXRzIHNtYWxsZXIgKGZvciBSV0QpXG4vLyBQcm8gPSBHb29kIGZvciB3aGVuIHlvdXIgY29udGFpbmVyIGlzIGFsd2F5cyB0aGUgJGxheW91dC1tYXgtd2lkdGguICBNZWFucyBjYW4gYXBwbHkgYm9yZGVycyB0byBncmlkIGVsZW1lbnRzIHdpdGhvdXQgbW9yZSBtYXJrdXBcbi8vIENvbnMgPSBJZiBjb250YWluZXIgaXNu4oCZdCBzYW1lIHNpemUgYXMgJGxheW91dC1tYXgtd2lkdGgsIHRoZSBndXR0ZXJzIHdpbGwgYWxzbyBzY2FsZSAoc28gbGFyZ2VyIGNvbnRhaW5lciB3aWR0aCA9PT0gbGFyZ2VyIGd1dHRlcnMgYW5kIHZpY2UgdmVyc2EpXG5cbi5nLS1ndXR0ZXItLXNjYWxlZCB7XG5cdCYgPiAuZy1jb2wge1xuXHRcdG1hcmdpbi1sZWZ0OiBrby1ndXR0ZXJDYWxjKCk7XG5cdFx0bWFyZ2luLXJpZ2h0OiAwO1xuXG5cdFx0JjpmaXJzdC1jaGlsZCB7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDtcblx0XHR9XG5cdH1cbn1cblxuLmctLXN0YWNrIHtcblx0JiA+IC5nLWNvbCB7XG5cdFx0ZmxleC1iYXNpczogMTAwJTtcblx0XHRtYXgtd2lkdGg6IDEwMCU7XG5cdH1cbiAgICAmLmctLWd1dHRlci0tc2NhbGVkID4gLmctY29sIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxufVxuXG5cbi8qKlxuICogLmctLWVxdWFsSGVpZ2h0IOKAkyBFcXVhbCBIZWlnaHQgQ2hpbGQgRWxlbWVudHNcbiAqL1xuLmctLWVxdWFsSGVpZ2h0IHtcblx0PiAuZy1jb2wge1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cblx0XHQmID4gKiB7XG5cdFx0XHRmbGV4LWJhc2lzOiAxMDAlO1xuXHRcdH1cblx0fVxufVxuXG5cbi8qKlxuICogQWxpZ25tZW50XG4gKiBNb2RpZmllciBjbGFzc2VzIHRvIG1vdmUgb3VyIGdyaWQgZWxlbWVudHMgYXJvdW5kXG4gKi9cbi5nLS1hbGlnblRvcCAgICAgICAgeyBhbGlnbi1pdGVtczogZmxleC1zdGFydDsgfVxuLmctLWFsaWduQm90dG9tICAgICB7IGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuLmctLWFsaWduU2VsZkJvdHRvbSB7IGFsaWduLXNlbGY6IGZsZXgtZW5kOyB9XG4uZy0tYWxpZ25SaWdodCAgICAgIHsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuLmctLWFsaWduQ2VudGVyICAgICB7IGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4uZy0tYWxpZ25DZW50ZXItLXYgIHsgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuXG5cbi8qKlxuICogQ2VudGVyaW5nXG4gKiBDZW50ZXJzIGFuIGluZGl2aWR1YWwgY29sdW1uLCByYXRoZXIgdGhhbiB0aGUgZW50aXJlIGdyaWRcbiAqL1xuLmctY29sLS1jZW50ZXJlZCB7XG5cdG1hcmdpbjogMCBhdXRvO1xufVxuXG4vKipcbiAqIFNocmlua2luZyBDb250ZW50XG4gKiBTaHJpbmsgYSAuZy1jb2wgZG93biB0byBvbmx5IHRoZSBzcGFjZSBpdCBuZWVkcyAoZmxleGJveCBvbmx5KVxuICpcbiAqIEVmZmVjdGl2ZWx5IGp1c3QgY2hhbmdlcyBpdOKAmXMgdmFsdWVzIGJhY2sgdG8gdGhlIGRlZmF1bHQgZmxleCBwcm9wZXJ0aWVzXG4gKi9cbi5nLWNvbC0tc2hyaW5rIHtcblx0ZmxleDogMCAxIGF1dG87XG59XG5cblxuLyoqXG4gKiBBZGQgZmFsbGJhY2tzIGZvciBub24tZmxleGJveCBzdXBwb3J0aW5nIGJyb3dzZXJzIChmb3IgZXhhbXBsZSwgSUU4LzkpXG4gKi9cbkBpZiAkdXNlLWxlZ2FjeS1ncmlkIHtcblx0Lm5vLWZsZXhib3gge1xuXHRcdC5nIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IC8vIG5lZWQgdGhpcyBmb3Igb2xkIFNhZmFyaSwgYXMgaXQgdGhpbmtzIGl0IHVuZGVyc3RhbmRzIGZsZXhib3ggYnV0IGRvZXNu4oCZdCByZWFsbHlcblx0XHRcdEBpbmNsdWRlIGtvLWNsZWFyZml4O1xuXHRcdH1cblxuXHRcdC5nLWNvbCB7XG5cdFx0XHRmbG9hdDogbGVmdDtcblx0XHRcdG1pbi1oZWlnaHQ6IDFweDtcblx0XHRcdGNsZWFyOiBub25lO1xuXHRcdFx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0XHR9XG5cblx0XHQuZy0tc3RhY2sgLmctY29sIHtcblx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdH1cblxuXHRcdC5nLS1lcXVhbEhlaWdodCB7XG5cdFx0XHQ+IC5nLWNvbCB7XG5cdFx0XHRcdGRpc3BsYXk6IGJsb2NrOyAvLyBhZ2FpbiBuZWVkIHRvIG92ZXJpZGUgb2xkIHNhZmFyaSB0aGlua2luZyBpdCBrbm93cyBmbGV4Ym94LCB3aGVuIGl0IGRvZXNu4oCZdCByZWFsbHlcblx0XHRcdH1cblx0XHR9XG5cdH1cblx0Ly9lbmQgLm5vLWZsZXhib3hcbn1cblxuXG5cbi8qKlxuICogR3JpZCBTcGFuIGNsYXNzZXMgKGZvciBkaWZmZXJlbnQgYnJlYWtwb2ludHMpXG4gKlxuICogQXBwbGllZCBieSB1c2luZyAuZy1zcGFueCB0byAuZy1jb2wgZWxlbWVudHMsIHdoZXJlIHggaXMgdGhlIG51bWJlciBvZiBjb2x1bW5zXG4gKi9cblxuQGluY2x1ZGUga28tZ3JpZFNwYW5IZWxwZXI7IC8vIERlZmF1bHQgc2l6ZXNcblxuLy8gUmVzcG9uc2l2ZSBzaXplcyBvbmx5IGdlbmVyYXRlZCBpZiAkcmVzcG9uc2l2ZS1ncmlkLXNpemVzID09IHRydWVcbkBpZiAkcmVzcG9uc2l2ZS1ncmlkLXNpemVzIHtcblx0Ly9sb29wIHRocm91Z2ggb3VyIGJyZWFrcG9pbnRzXG5cdEBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcblx0XHRAaW5jbHVkZSBtZWRpYSgnPj0jeyR2YWx1ZX0nKSB7XG5cdFx0XHRAaW5jbHVkZSBrby1ncmlkU3BhbkhlbHBlcigkbmFtZSk7XG5cdFx0fVxuXHR9XG59XG5cbkBlYWNoICRuYW1lLCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzIHtcblx0LmctLXN0YWNrLS0jeyRuYW1lfSB7XG5cdFx0QGluY2x1ZGUga28tZ3JpZC1zdGFjaygkbmFtZSk7XG5cdH1cbn1cbiIsIi8qKlxuICogR3JpZCBWYXJpYWJsZXNcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogVGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGF0IHRoZSBncmlkIGNhbiBydW4gYXMgYSBzdGFuZGFsb25lIG1vZHVsZSAob3V0c2lkZSBvZiBLaWNrb2ZmKSxcbiAqIGFzIHdlbGwgYXMgYWxsb3dpbmcgdGhlc2UgZmlsZXMgdG8gYmUgZ2VuZXJhdGVkIGludG8gc3RhbmRhcmQgQ1NTLlxuICpcbiAqIFdoZW4gaW1wb3J0aW5nIHRoZSBncmlkIGludG8geW91ciBvd24gcHJvamVjdCwgY29weSB0aGUgdmFyaWFibGVzIGZyb20gdGhpcyBmaWxlIGludG8geW91ciBvd24gdmFyaWFibGVzLnNjc3NcbiAqIFRoZXkgd2lsbCB0aGVuIG92ZXJyaWRlIHRoZSB2YWx1ZXMgc3BlY2lmaWVkIGhlcmUgKGFzIGxvbmcgYXMgdGhlIGdyaWQgaXMgaW1wb3J0ZWQgYmVsb3cgd2hlcmUgeW91ciBvd24gdmFyaWFibGVzIGFyZSBkZWZpbmVkKS5cbiAqL1xuXG4kYnJlYWtwb2ludHM6IGtvLW1hcC10by1lbSgoXG5cdG5hcnJvdyAgICAgICAgICAgICAgICAgIDogNDAwcHgsXG5cdG1pZCAgICAgICAgICAgICAgICAgICAgIDogNzUwcHgsXG5cdHdpZGUgICAgICAgICAgICAgICAgICAgIDogMTAwMHB4LFxuXHRodWdlICAgICAgICAgICAgICAgICAgICA6IDEyNTBweFxuKSwgMTYpICFkZWZhdWx0O1xuXG5cbi8vIFNldHVwIGxheW91dCBtYXgtd2lkdGhcbiRsYXlvdXQtbWF4LXdpZHRoICAgICAgICAgICAgIDogMTAwMCAhZGVmYXVsdDsgLy8gW2luIHBpeGVsc11cblxuLy8gR3JpZCBzcGVjaWZpYyB2YXJpYWJsZXNcbiRncmlkLWNvbHVtbi1jb3VudCAgICAgICAgOiAxMiAgICAhZGVmYXVsdDsgLy8gVG90YWwgY29sdW1uIGNvdW50XG4kZ3JpZC1ndXR0ZXItd2lkdGggICAgICAgIDogMjAgICAgIWRlZmF1bHQ7IC8vIFtpbiBwaXhlbHNdXG5cbi8vU2V0dGluZ3MgaGVyZSBvdmVycmlkZSAmIGFmZmVjdCB0aGUgZ3JpZCBjbGFzc2VzIG91dHB1dFxuJHJlc3BvbnNpdmUtZ3JpZC1zaXplcyAgICA6IHRydWUgICFkZWZhdWx0OyAvLyBEaXNhYmxlIHRoaXMgaWYgeW91IGRvbid0IHdhbnQgZ3JpZCBzaXplcyBmb3IgZWFjaCBicmVha3BvaW50XG4kdXNlLWxlZ2FjeS1ncmlkICAgICAgICAgIDogdHJ1ZSAgIWRlZmF1bHQ7IC8vIERpc2FibGUgdGhpcyBpZiB5b3UgZG9u4oCZdCB3YW50IHRvIG91dHB1dCAubm8tZmxleGJveCBjbGFzc2VzIGZvciBvbGRlciBicm93c2VycyB0byB1c2VcbiIsIi8qKlxuICogS2lja29mZiBncmlkIGhlbHBlcnNcbiAqL1xuXG5AbWl4aW4ga28tZ3JpZFNwYW5IZWxwZXIoJGJyZWFrcG9pbnQ6IG51bGwpIHtcblx0JHN1ZmZpeDogbnVsbDtcblxuXHRAaWYgJGJyZWFrcG9pbnQge1xuXHRcdCRzdWZmaXg6IC0tI3skYnJlYWtwb2ludH07XG5cdH1cblxuXHRAZm9yICRpIGZyb20gMSB0byAkZ3JpZC1jb2x1bW4tY291bnQgKyAxIHtcblx0XHQkY29sLXdpZHRoOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRpLCB0cnVlKTtcblx0XHQkY29sLXdpZHRoLWd1dHRlcmVkOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRpLCB0cnVlLCB0cnVlKTtcblxuXHRcdC5nLXNwYW4jeyRpfSN7JHN1ZmZpeH0ge1xuXHRcdFx0ZmxleC1iYXNpczogJGNvbC13aWR0aCAhaW1wb3J0YW50O1xuXHRcdFx0ZmxleC1ncm93OiAwO1xuXHRcdFx0Ly8gbmVlZCB0aGlzIG5leHQgbGluZSBmb3IgYSB3ZWlyZCBJRTkvMTAvMTEgYnVnLCB3aGVyZSBhZGRpbmcgcGFkZGluZyB0byBhIGZsZXgtaXRlbSBjYW4gdGhyb3cgb3V0IHRoZSBmbGV4LWJhc2lzIGFuZCB3cmFwIHRoZSBjb2x1bW5zIGluY29ycmVjdGx5XG5cdFx0XHQvLyBzZWUgdGhpcyBmb3IgbW9yZSBkZXRhaWwg4oCTIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzNcblx0XHRcdG1heC13aWR0aDogJGNvbC13aWR0aCAhaW1wb3J0YW50O1xuXG5cdFx0XHQvLyBtYXliZSBoYXZlIGFuIG9wdGlvbiB0byBpbmNsdWRlIHRoaXMgaW4gYSB2YXJpYWJsZVxuXHRcdFx0Ji5nLWhvbGRXaWR0aCN7JHN1ZmZpeH0ge1xuXHRcdFx0XHRAaW5jbHVkZSBrby1waXhlbE1pbldpZHRoKCRpKTtcblxuXHRcdFx0XHQuZy0tZ3V0dGVyLS1zY2FsZWQgJiB7XG5cdFx0XHRcdFx0QGluY2x1ZGUga28tcGl4ZWxNaW5XaWR0aCgkaSwgdHJ1ZSk7IC8vIGdldCB0aGUgaG9sZC13aWR0aCBtaW51cyB0aGUgZ3V0dGVyXG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0LmctLWd1dHRlci0tc2NhbGVkICYge1xuXHRcdFx0XHRmbGV4LWJhc2lzOiAkY29sLXdpZHRoLWd1dHRlcmVkICFpbXBvcnRhbnQ7XG5cdFx0XHRcdC8vIG5lZWQgdGhpcyBuZXh0IGxpbmUgZm9yIGEgd2VpcmQgSUU5LzEwLzExIGJ1Zywgd2hlcmUgYWRkaW5nIHBhZGRpbmcgdG8gYSBmbGV4LWl0ZW0gY2FuIHRocm93IG91dCB0aGUgZmxleC1iYXNpcyBhbmQgd3JhcCB0aGUgY29sdW1ucyBpbmNvcnJlY3RseVxuXHRcdFx0XHQvLyBzZWUgdGhpcyBmb3IgbW9yZSBkZXRhaWwg4oCTIGh0dHBzOi8vZ2l0aHViLmNvbS9waGlsaXB3YWx0b24vZmxleGJ1Z3MvaXNzdWVzLzNcblx0XHRcdFx0bWF4LXdpZHRoOiAkY29sLXdpZHRoLWd1dHRlcmVkO1xuXG5cdFx0XHRcdEBpZiAkaSA8ICRncmlkLWNvbHVtbi1jb3VudCB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IGtvLWd1dHRlckNhbGMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRAZWxzZSB7XG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6IDA7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0QGlmICR1c2UtbGVnYWN5LWdyaWQge1xuXG5cdFx0XHRcdC8vIHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBtb2Rlcm5penIgb3IgYW5vdGhlciBkZXRlY3Rpb24gbWVjaGFuaXNtXG5cdFx0XHRcdC5uby1mbGV4Ym94ICYge1xuXHRcdFx0XHRcdHdpZHRoOiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRpLCB0cnVlKSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cblx0XHRcdH1cblx0XHRcdC8vIEBpZiAkdXNlLWxlZ2FjeS1ncmlkXG5cblx0XHR9XG5cdFx0QGlmICRpIDwgMTIge1xuXHRcdFx0Lmctb2Zmc2V0I3skaX0jeyRzdWZmaXh9IHtcblx0XHRcdFx0bWFyZ2luLWxlZnQ6ICRjb2wtd2lkdGggIWltcG9ydGFudDtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBHcmlkIHN0YWNraW5nXG4gKiBTdGFjayBncmlkcyBiYXNlZCBvbiBhIGdpdmVuIGJyZWFrcG9pbnRcbiAqXG4gKiBVc2FnZTpcbiAqIC5nLS1zdGFjay0tbmFycm93XG4gKiAuZy0tc3RhY2stLXdpZGVcbiAqL1xuQG1peGluIGtvLWdyaWQtc3RhY2soJGJyZWFrcG9pbnQ6ICd3aWRlJykge1xuXHRAaW5jbHVkZSBtZWRpYSgnPCN7JGJyZWFrcG9pbnR9Jykge1xuXHRcdGZsZXgtZmxvdzogY29sdW1uIG5vd3JhcDtcblxuXHRcdCYgPiAuZy1jb2wge1xuXHRcdFx0ZmxleC1iYXNpczogYXV0byAhaW1wb3J0YW50O1xuXHRcdFx0bWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG5cdFx0XHRtYXJnaW4tbGVmdDogMDsgLy8gZ2V0IHJpZCBvZiBhbnkgZ3JpZCBtYXJnaW5zIGlmIHRoZXJlIGFyZSBhbnlcblxuXHRcdFx0QGlmICR1c2UtbGVnYWN5LWdyaWQge1xuXHRcdFx0XHQubm8tZmxleGJveCAmIHtcblx0XHRcdFx0XHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogR3V0dGVyIENhbGN1bGF0aW9uc1xuICogRGVmYXVsdDogcGVyY2VudFxuICogVXNhZ2U6IGtvLWd1dHRlckNhbGMoKSBvciBrby1ndXR0ZXJDYWxjKGZhbHNlKVxuICogV2hlbiBzaG93LXVuaXQgaXMgdHJ1ZSwgcmV0dXJucyB0aGUgcGVyY2VudGFnZSwgb3RoZXJ3aXNlIHJldHVybiBhIGRlY2ltYWxcbiAqL1xuQGZ1bmN0aW9uIGtvLWd1dHRlckNhbGMoJHNob3ctdW5pdDogdHJ1ZSkge1xuXHRAaWYgJHNob3ctdW5pdCA9PSB0cnVlIHtcblx0XHRAcmV0dXJuIHBlcmNlbnRhZ2Uoa28tc3RyaXAtdW5pdHMoJGdyaWQtZ3V0dGVyLXdpZHRoKSAvIGtvLXN0cmlwLXVuaXRzKCRsYXlvdXQtbWF4LXdpZHRoKSk7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gJGdyaWQtZ3V0dGVyLXdpZHRoIC8gJGxheW91dC1tYXgtd2lkdGg7XG5cdH1cbn1cblxuXG5cbi8qKlxuICogR3JpZCBjb2x1bW5zIHdpZHRoIGNhbGN1bGF0aW9uc1xuICogVGhpcyBpcyB3aGVyZSB0aGUgbWFnaWMgb2Ygd29ya2luZyBvdXQgdGhlIGNvbHVtbiB3aWR0aHMgaGFwcGVuc1xuICpcbiAqICRjb2x1bW4tc3BhbjogZGVmaW5lIHRoZSB3aWR0aCBmb3IgdGhlIG51bWJlciBvZiBjb2x1bW5zIHJlcXVpcmVkXG4gKiAkc2hvdy11bml0OiBTd2l0Y2ggcmV0dXJuIHZhbHVlIGJldHdlZW4gcGVyY2VudGFnZSAoZGVmYXVsdCkgYW5kIGRlY2ltYWxcbiAqICRpbmNsdWRlLWd1dHRlcnM6IGlmIGd1dHRlcnMgc2hvdWxkIGJlIGluY2x1ZGVkIGluIHRoZSBjYWxjdWxhdGlvbnMuIERlZmF1bHQgPSBmYWxzZVxuICogJGxlZ2FjeS1jYWxjOiBpZiB3ZSBhcmUgd29ya2luZyBvdXQgYSBsZWdhY3kgY29sdW1uIHdpZHRoIGNhbGN1bGF0aW9uLCBvciBub3QuIERlZmF1bHQgPSBmYWxzZVxuICovXG5AZnVuY3Rpb24ga28tZ3JpZENvbHVtbldpZHRoQ2FsYygkY29sdW1uLXNwYW46IDEsICRzaG93LXVuaXQ6IHRydWUsICRpbmNsdWRlLWd1dHRlcnM6IGZhbHNlKSB7XG5cdCRudW1iZXItb2YtYmxvY2tzLWluLWNvbnRhaW5lciA6ICRncmlkLWNvbHVtbi1jb3VudCAvICRjb2x1bW4tc3Bhbjtcblx0JHRvdGFsLXdpZHRoLW9mLWFsbC1ibG9ja3MgICAgIDogMTtcblxuXHQvLyB3aGVuIGluY2x1ZGluZyBndXR0ZXJzLCB3ZSBuZWVkIHRvIGFkanVzdCBvdXIgJSB3aWR0aCBvciBmbGV4LWJhc2lzIGFwcHJvcHJpYXRlbHlcblx0QGlmICRpbmNsdWRlLWd1dHRlcnMge1xuXHRcdCR0b3RhbC13aWR0aC1vZi1hbGwtZ3V0dGVycyAgICA6IGtvLWd1dHRlckNhbGMoZmFsc2UpICogKCRudW1iZXItb2YtYmxvY2tzLWluLWNvbnRhaW5lciAtIDEpO1xuXHRcdCR0b3RhbC13aWR0aC1vZi1hbGwtYmxvY2tzICAgICA6IDEgLSAkdG90YWwtd2lkdGgtb2YtYWxsLWd1dHRlcnM7XG5cdH1cblxuXHQkd2lkdGgtb2YtYS1zaW5nbGUtYmxvY2sgICAgICAgOiAkdG90YWwtd2lkdGgtb2YtYWxsLWJsb2NrcyAvICRudW1iZXItb2YtYmxvY2tzLWluLWNvbnRhaW5lcjtcblxuXHRAaWYgJHNob3ctdW5pdCA9PSB0cnVlIHtcblx0XHRAcmV0dXJuIHBlcmNlbnRhZ2Uoa28tc3RyaXAtdW5pdHMoJHdpZHRoLW9mLWEtc2luZ2xlLWJsb2NrKSk7XG5cdH0gQGVsc2Uge1xuXHRcdEByZXR1cm4gJHdpZHRoLW9mLWEtc2luZ2xlLWJsb2NrO1xuXHR9XG59XG5cbkBtaXhpbiBrby1waXhlbE1pbldpZHRoKCRjb2x1bW4tc3BhbjogMSwgJG1pbnVzR3V0dGVyOiBmYWxzZSkge1xuXHRAaWYgJG1pbnVzR3V0dGVyID09IHRydWUge1xuXHRcdG1pbi13aWR0aDogKCRsYXlvdXQtbWF4LXdpZHRoICoga28tZ3JpZENvbHVtbldpZHRoQ2FsYygkY29sdW1uLXNwYW4sIGZhbHNlKSkgLSAoJGxheW91dC1tYXgtd2lkdGggKiBrby1ndXR0ZXJDYWxjKGZhbHNlKSkgKyBweDtcblx0fVxuXHRAZWxzZSB7XG5cdFx0bWluLXdpZHRoOiAoJGxheW91dC1tYXgtd2lkdGggKiBrby1ncmlkQ29sdW1uV2lkdGhDYWxjKCRjb2x1bW4tc3BhbiwgZmFsc2UpKSArIHB4O1xuXHR9XG59XG5cblxuLyoqXG4gKiBDb2x1bW4gd2lkdGggbWl4aW5cbiAqIFVzYWdlOlxuICogQGluY2x1ZGUgY29sdW1uKDIpO1xuICovXG5AbWl4aW4gY29sdW1uKCRjb2x1bW4tc3BhbjogMSkge1xuXHR3aWR0aDoga28tZ3JpZENvbHVtbldpZHRoQ2FsYygkY29sdW1uLXNwYW4sIHRydWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLyAgICAgXyAgICAgICAgICAgIF8gICAgICAgICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICBfIF9cbi8vICAgIChfKSAgICAgICAgICB8IHwgICAgICAgICB8IHwgICAgICAgICAgICAgICAgICAgICAgICAgfCAoXylcbi8vICAgICBfIF8gX18gICBfX198IHxfICAgXyAgX198IHwgX19fICAgXyBfXyBfX18gICBfX18gIF9ffCB8XyAgX18gX1xuLy8gICAgfCB8ICdfIFxcIC8gX198IHwgfCB8IHwvIF9gIHwvIF8gXFwgfCAnXyBgIF8gXFwgLyBfIFxcLyBfYCB8IHwvIF9gIHxcbi8vICAgIHwgfCB8IHwgfCAoX198IHwgfF98IHwgKF98IHwgIF9fLyB8IHwgfCB8IHwgfCAgX18vIChffCB8IHwgKF98IHxcbi8vICAgIHxffF98IHxffFxcX19ffF98XFxfXyxffFxcX18sX3xcXF9fX3wgfF98IHxffCB8X3xcXF9fX3xcXF9fLF98X3xcXF9fLF98XG4vL1xuLy8gICAgICBTaW1wbGUsIGVsZWdhbnQgYW5kIG1haW50YWluYWJsZSBtZWRpYSBxdWVyaWVzIGluIFNhc3Ncbi8vICAgICAgICAgICAgICAgICAgICAgICAgdjEuNC45XG4vL1xuLy8gICAgICAgICAgICAgICAgaHR0cDovL2luY2x1ZGUtbWVkaWEuY29tXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEh1Z28gR2lyYXVkZWwgKEBodWdvZ2lyYXVkZWwpXG4vL1xuLy8gICAgICBUaGlzIHByb2plY3QgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNSVQgbGljZW5zZVxuXG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIExvZyBhIG1lc3NhZ2UgZWl0aGVyIHdpdGggYEBlcnJvcmAgaWYgc3VwcG9ydGVkXG4vLy8gZWxzZSB3aXRoIGBAd2FybmAsIHVzaW5nIGBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKWBcbi8vLyB0byBkZXRlY3Qgc3VwcG9ydC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBmdW5jdGlvbiBpbS1sb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpIHtcbiAgICBAZXJyb3IgJG1lc3NhZ2U7XG4gIH0gQGVsc2Uge1xuICAgIEB3YXJuICRtZXNzYWdlO1xuICAgICRfOiBub29wKCk7XG4gIH1cblxuICBAcmV0dXJuICRtZXNzYWdlO1xufVxuXG5cbi8vL1xuLy8vIFdyYXBwZXIgbWl4aW4gZm9yIHRoZSBsb2cgZnVuY3Rpb24gc28gaXQgY2FuIGJlIHVzZWQgd2l0aCBhIG1vcmUgZnJpZW5kbHlcbi8vLyBBUEkgdGhhbiBgQGlmIGltLWxvZygnLi4nKSB7fWAgb3IgYCRfOiBpbS1sb2coJy4uJylgLiBCYXNpY2FsbHksIHVzZSB0aGUgZnVuY3Rpb25cbi8vLyB3aXRoaW4gZnVuY3Rpb25zIGJlY2F1c2UgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbiBhIGZ1bmN0aW9uXG4vLy8gYW5kIHVzZSB0aGUgbWl4aW4gZXZlcnl3aGVyZSBlbHNlIGJlY2F1c2UgaXQncyBtdWNoIG1vcmUgZWxlZ2FudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkbWVzc2FnZSAtIE1lc3NhZ2UgdG8gbG9nXG4vLy9cbkBtaXhpbiBsb2coJG1lc3NhZ2UpIHtcbiAgQGlmIGltLWxvZygkbWVzc2FnZSkge31cbn1cblxuXG4vLy9cbi8vLyBGdW5jdGlvbiB3aXRoIG5vIGBAcmV0dXJuYCBjYWxsZWQgbmV4dCB0byBgQHdhcm5gIGluIFNhc3MgMy4zXG4vLy8gdG8gdHJpZ2dlciBhIGNvbXBpbGluZyBlcnJvciBhbmQgc3RvcCB0aGUgcHJvY2Vzcy5cbi8vL1xuQGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4vLy9cbi8vLyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBsaXN0IG9mIGNvbmRpdGlvbnMgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50LlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2xlYW59IC0gUmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb25zIGFyZSBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnRcbi8vL1xuQGZ1bmN0aW9uIGltLWludGVyY2VwdHMtc3RhdGljLWJyZWFrcG9pbnQoJGNvbmRpdGlvbnMuLi4pIHtcbiAgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludCk7XG5cbiAgQGlmIG5vdCAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSB7XG4gICAgQGlmIGltLWxvZygnYCN7JGltLW5vLW1lZGlhLWJyZWFrcG9pbnR9YCBpcyBub3QgYSB2YWxpZCBicmVha3BvaW50LicpIHt9XG4gIH1cblxuICBAZWFjaCAkY29uZGl0aW9uIGluICRjb25kaXRpb25zIHtcbiAgICBAaWYgbm90IG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgJG9wZXJhdG9yOiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkY29uZGl0aW9uKTtcbiAgICAgICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAgICAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkY29uZGl0aW9uLCAkb3BlcmF0b3IpO1xuXG4gICAgICAvLyBzY3NzLWxpbnQ6ZGlzYWJsZSBTcGFjZUFyb3VuZE9wZXJhdG9yXG4gICAgICBAaWYgKCRwcmVmaXggPT0gJ21heCcgYW5kICR2YWx1ZSA8PSAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkgb3JcbiAgICAgICAgICAoJHByZWZpeCA9PSAnbWluJyBhbmQgJHZhbHVlID4gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIHtcbiAgICAgICAgQHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmIG5vdCBpbmRleCgkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuXG4vLy8vXG4vLy8gUGFyc2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4vLy9cbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrcG9pbnRzIFsoKV0gLSBNYXAgb2YgdHdlYWtwb2ludHMgdG8gYmUgbWVyZ2VkIHdpdGggYCRicmVha3BvaW50c2Bcbi8vLyBAcGFyYW0ge01hcH0gJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zIFsoKV0gLSBNYXAgb2YgdHdlYWtlZCBtZWRpYSBleHByZXNzaW9ucyB0byBiZSBtZXJnZWQgd2l0aCBgJG1lZGlhLWV4cHJlc3Npb25gXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgYnJlYWtwb2ludHMgd2l0aCBhIHR3ZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBtZWRpYSBleHByZXNzaW9ucyB3aXRoIGEgY3VzdG9tIG9uZVxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCBib3RoIGNvbmZpZ3VyYXRpb24gbWFwc1xuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpLCAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbkBtaXhpbiBtZWRpYS1jb250ZXh0KCR0d2Vha3BvaW50czogKCksICR0d2Vhay1tZWRpYS1leHByZXNzaW9uczogKCkpIHtcbiAgLy8gU2F2ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkZ2xvYmFsLWJyZWFrcG9pbnRzOiAkYnJlYWtwb2ludHM7XG4gICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnM6ICRtZWRpYS1leHByZXNzaW9ucztcblxuICAvLyBVcGRhdGUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiBtYXAtbWVyZ2UoJGJyZWFrcG9pbnRzLCAkdHdlYWtwb2ludHMpICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogbWFwLW1lcmdlKCRtZWRpYS1leHByZXNzaW9ucywgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zKSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gIC8vIFJlc3RvcmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGJyZWFrcG9pbnRzOiAkZ2xvYmFsLWJyZWFrcG9pbnRzICFnbG9iYWw7XG4gICRtZWRpYS1leHByZXNzaW9uczogJGdsb2JhbC1tZWRpYS1leHByZXNzaW9ucyAhZ2xvYmFsO1xufVxuXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBwdWJsaWMgZXhwb3NlZCBBUElcbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBHZW5lcmF0ZXMgYSBtZWRpYSBxdWVyeSBiYXNlZCBvbiBhIGxpc3Qgb2YgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAgICRjb25kaXRpb25zICAtIE1lZGlhIHF1ZXJ5IGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc2luZ2xlIHNldCBicmVha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHR3byBzZXQgYnJlYWtwb2ludHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScsICc8PXRhYmxldCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNThweCcsICc8ODUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIHNldCBicmVha3BvaW50cyB3aXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5kZXNrdG9wJywgJzw9MTM1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHN0YXRpYyBleHByZXNzaW9uXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCdyZXRpbmEyeCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIE1peGluZyBldmVyeXRoaW5nXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1MHB4JywgJzx0YWJsZXQnLCAncmV0aW5hM3gnKSB7IH1cbi8vL1xuQG1peGluIG1lZGlhKCRjb25kaXRpb25zLi4uKSB7XG4gIC8vIHNjc3MtbGludDpkaXNhYmxlIFNwYWNlQXJvdW5kT3BlcmF0b3JcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qKlxuICogQ29sb3VyIHN3YXRjaGVzXG4gKi9cbi5zZy1zd2F0Y2gge1xuXHRib3JkZXI6IDFweCBzb2xpZCByZ2JhKCMwMDAsIC4yKTtcblx0Ym9yZGVyLXJhZGl1czogNHB4O1xuXHRwYWRkaW5nOiAxNXB4O1xuXHRtYXJnaW46IDE1cHg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0dHJhbnNpdGlvbjogJGRlZmF1bHQtdHJhbnNpdGlvbjtcblx0Y3Vyc29yOiBwb2ludGVyO1xuXG5cdCY6aG92ZXIge1xuXHRcdGJvcmRlci1jb2xvcjogcmdiYSgjMDAwLCAuNik7XG5cdH1cblxuXHQmLmlzLWFjdGl2ZSB7XG5cdFx0YW5pbWF0aW9uOiBzZ1N3YXRjaCA1MDBtcyBlYXNlLWluLW91dDtcblx0fVxufVxuXG5Aa2V5ZnJhbWVzIHNnU3dhdGNoIHtcblx0NTAlIHsgb3BhY2l0eTogLjM7IH1cbn1cblxuLnNnLXN3YXRjaC1jb2xvciB7XG5cdHdpZHRoOiA1MHB4O1xuXHRoZWlnaHQ6IDUwcHg7XG5cdGJvcmRlci1yYWRpdXM6IDUwJTtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHRtYXJnaW46IDAgMTBweDtcbn1cblxuLnNnLXN3YXRjaC10ZXh0IHtcblx0Zm9udC13ZWlnaHQ6IGJvbGQ7XG5cdEBpbmNsdWRlIGtvLWZvbnQtc2l6ZSg2MCk7XG5cdGxpbmUtaGVpZ2h0OiAxO1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdG1hcmdpbjogMCAxMHB4O1xufVxuXG4uc2ctc3dhdGNoLXZhciB7XG5cdHdpZHRoOiAxMDAlO1xuXHRmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LW1vbm87XG5cdG1hcmdpbi10b3A6IDE1cHg7XG5cdGZvbnQtc2l6ZTogMTJweDtcblx0ZGlzcGxheTogYmxvY2s7XG59XG5cbkBtaXhpbiBrby1zd2F0Y2goJGNvbG9yLCAkYmc6ICNmZmYpIHtcblx0YmFja2dyb3VuZC1jb2xvcjogJGJnO1xuXG5cdC5zZy1zd2F0Y2gtY29sb3Ige1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblx0fVxuXG5cdC5zZy1zd2F0Y2gtdGV4dCB7XG5cdFx0Y29sb3I6ICRjb2xvcjtcblx0fVxuXG5cdC5zZy1zd2F0Y2gtdmFyIHtcblx0XHQmOmFmdGVyIHtcblx0XHRcdGNvbnRlbnQ6ICcjeyRjb2xvcn0nO1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0fVxuXHR9XG59XG5cbi5zZy1jb2xvci1saW5rLWhvdmVyIHtcblx0QGluY2x1ZGUga28tc3dhdGNoKCRjb2xvci1saW5rLWhvdmVyKTtcbn1cbi5zZy1jb2xvci1wcmltYXJ5IHtcblx0QGluY2x1ZGUga28tc3dhdGNoKCRjb2xvci1wcmltYXJ5KTtcbn1cbi5zZy1jb2xvci1zZWNvbmRhcnkge1xuXHRAaW5jbHVkZSBrby1zd2F0Y2goJGNvbG9yLXNlY29uZGFyeSk7XG59XG4uc2ctY29sb3ItaGlnaGxpZ2h0IHtcblx0QGluY2x1ZGUga28tc3dhdGNoKCRjb2xvci1oaWdobGlnaHQpO1xufVxuLnNnLWNvbG9yLXRleHQge1xuXHRAaW5jbHVkZSBrby1zd2F0Y2goJGNvbG9yLXRleHQsICRjb2xvci1iZyk7XG59XG4uc2ctY29sb3ItYmFja2dyb3VuZCB7XG5cdEBpbmNsdWRlIGtvLXN3YXRjaCgkY29sb3ItYmcpO1xufVxuLnNnLWNvbG9yLWJvcmRlciB7XG5cdEBpbmNsdWRlIGtvLXN3YXRjaCgkY29sb3ItYm9yZGVyKTtcbn1cbi5zZy1jb2xvci1saW5rIHtcblx0QGluY2x1ZGUga28tc3dhdGNoKCRjb2xvci1saW5rLWRlZmF1bHQpO1xufVxuIl19 */