/**
 * Minified by jsDelivr using clean-css v4.1.9.
 * Original file: /npm/bootstrap-grid-only@1.0.0/bootstrap.css
 * 
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
/*!
 * Bootstrap v3.3.5 (http://getbootstrap.com)
 * Copyright 2011-2016 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*!
 * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=dd756061b99b30782a31)
 * Config saved to config.json and https://gist.github.com/dd756061b99b30782a31
 */
/*!
 * Bootstrap v3.3.6 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
body{margin:0}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto}.row{width:100%}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.row:after,.row:before{content:" ";display:table}.clearfix:after,.container-fluid:after,.container:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
/*# sourceMappingURL=/sm/fe674635f7481d2fa4acee3e9b00c350abe2944bc688e7eb754063ea6804ea13.map *//*
formBuilder - https://formbuilder.online/
Version: 1.24.2
Author: Kevin Chappell <kevin.b.chappell@gmail.com>
*/
@charset "UTF-8";
@font-face {
    font-family: 'form-builder-font';
    src: url(data:application/vnd.ms-fontobject;base64,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FAUBAgEMFA4YAQQEGg0REAQFDE7EAgIGDLJODAYCDBYOGAEEBBoNERAEBQ1N/fJCDAYEEhAOGAAAAQAA/7ECyQMLACsALkArHQgCAQIBRwACAAEAAmUDAQEBbgAEAAAEVAAEBABYAAAEAEw9MxM4IwUFGSsBFRQGIyIHBgcGFREUBisBIiY1ESMRFAYrASImNREmJyYnJjU0Njc2MyEyFgLJFA4cAg8DAhQOPA4UUBIQPA4UUjdGJSRjQz6rAQsOFALpKRAkAQMOBh79fQ4UFA4CqP1YDhQUDgEVBxohQ0FQXIUXFRQAAAACAAD/agNrA1IAGwAfAEdARAQCAgAPEA0DBQYABV4ODAIGCwkCBwgGB14DAQEBDEgKAQgIDQhJAAAfHh0cABsAGxoZGBcWFRQTEREREREREREREQUdKwE1IzcjByM3IwcjFTMHIxUzBzM3MwczNzM1IzcHIzczA2ucH30f+h99H9vLH6ycH30f+h99H9vLH5z6H/oB2336+vr6ffp9+vr6+n36+voAAAABAAAAAQAAH+a/t18PPPUACwPoAAAAANOqshAAAAAA06qyEAAA/2oD6ANSAAAACAACAAAAAAAAAAEAAANS/2oAAAPoAAD//wPoAAEAAAAAAAAAAAAAAAAAAAATA+gAAAPoAAADoAAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAANZAAAD6AAAA+gAAAGsAAAD6AAAAxEAAAPoAAACygAAA2sAAAAAAAABygK4AxQDhgSMBuIH6giCCOwJcAmyCpgK4AxCDLgNjA3kDjcAAQAAABMAiAAWAAAAAAACAI4AngBzAAABWwtwAAAAAAAAABIA3gABAAAAAAAAADUAAAABAAAAAAABABEANQABAAAAAAACAAcARgABAAAAAAADABEATQABAAAAAAAEABEAXgABAAAAAAAFAAsAbwABAAAAAAAGABEAegABAAAAAAAKACsAiwABAAAAAAALABMAtgADAAEECQAAAGoAyQADAAEECQABACIBMwADAAEECQACAA4BVQADAAEECQADACIBYwADAAEECQAEACIBhQADAAEECQAFABYBpwADAAEECQAGACIBvQADAAEECQAKAFYB3wADAAEECQALACYCNUNvcHlyaWdodCAoQykgMjAxNiBieSBvcmlnaW5hbCBhdXRob3Jz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);
    src: url(data:application/vnd.ms-fontobject;base64,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FAUBAgEMFA4YAQQEGg0REAQFDE7EAgIGDLJODAYCDBYOGAEEBBoNERAEBQ1N/fJCDAYEEhAOGAAAAQAA/7ECyQMLACsALkArHQgCAQIBRwACAAEAAmUDAQEBbgAEAAAEVAAEBABYAAAEAEw9MxM4IwUFGSsBFRQGIyIHBgcGFREUBisBIiY1ESMRFAYrASImNREmJyYnJjU0Njc2MyEyFgLJFA4cAg8DAhQOPA4UUBIQPA4UUjdGJSRjQz6rAQsOFALpKRAkAQMOBh79fQ4UFA4CqP1YDhQUDgEVBxohQ0FQXIUXFRQAAAACAAD/agNrA1IAGwAfAEdARAQCAgAPEA0DBQYABV4ODAIGCwkCBwgGB14DAQEBDEgKAQgIDQhJAAAfHh0cABsAGxoZGBcWFRQTEREREREREREREQUdKwE1IzcjByM3IwcjFTMHIxUzBzM3MwczNzM1IzcHIzczA2ucH30f+h99H9vLH6ycH30f+h99H9vLH5z6H/oB2336+vr6ffp9+vr6+n36+voAAAABAAAAAQAAH+a/t18PPPUACwPoAAAAANOqshAAAAAA06qyEAAA/2oD6ANSAAAACAACAAAAAAAAAAEAAANS/2oAAAPoAAD//wPoAAEAAAAAAAAAAAAAAAAAAAATA+gAAAPoAAADoAAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAANZAAAD6AAAA+gAAAGsAAAD6AAAAxEAAAPoAAACygAAA2sAAAAAAAABygK4AxQDhgSMBuIH6giCCOwJcAmyCpgK4AxCDLgNjA3kDjcAAQAAABMAiAAWAAAAAAACAI4AngBzAAABWwtwAAAAAAAAABIA3gABAAAAAAAAADUAAAABAAAAAAABABEANQABAAAAAAACAAcARgABAAAAAAADABEATQABAAAAAAAEABEAXgABAAAAAAAFAAsAbwABAAAAAAAGABEAegABAAAAAAAKACsAiwABAAAAAAALABMAtgADAAEECQAAAGoAyQADAAEECQABACIBMwADAAEECQACAA4BVQADAAEECQADACIBYwADAAEECQAEACIBhQADAAEECQAFABYBpwADAAEECQAGACIBvQADAAEECQAKAFYB3wADAAEECQALACYCNUNvcHlyaWdodCAoQykgMjAxNiBieSBvcmlnaW5hbCBhdXRob3Jz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) format("embedded-opentype"), url(data:application/octet-stream;base64,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) format("woff2"), url(data:application/font-woff;base64,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) format("woff"), url(data:application/x-font-ttf;base64,AAEAAAAPAIAAAwBwR1NVQrD+s+0AAAD8AAAAQk9TLzI+IEk+AAABQAAAAFZjbWFwizvtkQAAAZgAAAJeY3Z0IAbV/wQAACWkAAAAIGZwZ22KkZBZAAAlxAAAC3BnYXNwAAAAEAAAJZwAAAAIZ2x5ZtJ0mIoAAAP4AAAcbmhlYWQKXKfBAAAgaAAAADZoaGVhBz0DZQAAIKAAAAAkaG10eESzAAAAACDEAAAATGxvY2FJblGvAAAhEAAAAChtYXhwAoYMmAAAITgAAAAgbmFtZdVcxKAAACFYAAADOXBvc3QTOILlAAAklAAAAQZwcmVw5UErvAAAMTQAAACGAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOeAZAABQAAAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6ADoEQNS/2oAWgNSAJYAAAABAAAAAAAAAAAABQAAAAMAAAAsAAAABAAAAXYAAQAAAAAAcAADAAEAAAAsAAMACgAAAXYABABEAAAABAAEAAEAAOgR//8AAOgA//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAEgAAAQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAA6AAAAAAAAAASAADoAAAA6AAAAAABAADoAQAA6AEAAAACAADoAgAA6AIAAAADAADoAwAA6AMAAAAEAADoBAAA6AQAAAAFAADoBQAA6AUAAAAGAADoBgAA6AYAAAAHAADoBwAA6AcAAAAIAADoCAAA6AgAAAAJAADoCQAA6AkAAAAKAADoCgAA6AoAAAALAADoCwAA6AsAAAAMAADoDAAA6AwAAAANAADoDQAA6A0AAAAOAADoDgAA6A4AAAAPAADoDwAA6A8AAAAQAADoEAAA6BAAAAARAADoEQAA6BEAAAASAAAAEAAA/2oD6ANSAAMABwALAA8AEwAXABsAHwAjACcAKwBLAFAAVABYAHwCPEuwFFBYQJEEAQIjKCMCZQoBCCUkJQgkbQAkKiUkKmshAR8WLBYfZQAsICAsYxQTEQMPHQ4dD2UVEhADDh4eDmMcARgpASMCGCNgACgnMA0vBAcAKAdeBQMCAAsJAgEGAAFeJgwCBgAlCAYlXi4BKi0rAhYfKhZfMiIxAyAAHQ8gHV8bARkZGlYAGhoMSAAeHhdZABcXDRdJG0uwFVBYQJQEAQIjKCMCKG0KAQglJCUIJG0AJColJCprIQEfFiwWHyxtACwgICxjFBMRAw8dDh0PZRUSEAMOHh0OHmscARgpASMCGCNgACgnMA0vBAcAKAdeBQMCAAsJAgEGAAFeJgwCBgAlCAYlXi4BKi0rAhYfKhZfMiIxAyAAHQ8gHV8bARkZGlYAGhoMSAAeHhdZABcXDRdJG0CWBAECIygjAihtCgEIJSQlCCRtACQqJSQqayEBHxYsFh8sbQAsIBYsIGsUExEDDx0OHQ8ObRUSEAMOHh0OHmscARgpASMCGCNgACgnMA0vBAcAKAdeBQMCAAsJAgEGAAFeJgwCBgAlCAYlXi4BKi0rAhYfKhZfMiIxAyAAHQ8gHV8bARkZGlYAGhoMSAAeHhdZABcXDRdJWVlAalVVUVEYGAwMenh3dnV0c3Jxb2poZ2ZlZGNiYWBfXl1bVVhVWFdWUVRRVFNSUE9OTElHRkVEQ0JBQD44NTIwKyopKCcmJSQjIiEgHx4dHBgbGBsaGRcWFRQTEhEQDA8MDxIRERERERAzBRsrATMVIycjFTM3IxUzIxUzNRUzNSMXMzUjJxUzNQMzNSMXMzUjFzM1IzMjFTMBFRQOASsBERQGIyEiJjURND4BMyE1IzUhFSMVITIeAQMpARUhJTUjFTM1IxUBNCYjIREjNSM1MzUjNTM1ISIGHQEUFjMhFSMVITUjNSEyNjUBdz8/fT4+fT4++j8+Pn0+Pj8/vD8/fT8/fT8/vD8/AbUaKxkfIhz9EhwjGisZAZZ9ATl9AVcZKxq7/on+iQLu/Y8/vD8CsBIO/qk/Pj4+Pv5qDhERDgGWfQE5fQFXDhICGj99Pj4+Pz99Pj4+Pz8//c0/Pz8/Pz8CkPoZKhr+iBwiIhwCzxkrGj8+Pj8aK/3UvPs+Pj4+AdQOEv7HPz4/Pj8SDvoOET4/Pz4RDgAAAA8AAP9qA6EDUgADAAcACwAPABMAFwAbAB8AIwAzADcAOwA/AE8AcwCYQJVBJQIdEkktJAMTHQJHIR8CHRMJHVQbARMZFw0DCQgTCV8YFgwDCBURBwMFBAgFXhQQBgMEDwsDAwEABAFeGgESEh5YIAEeHgxIDgoCAwAAHFgAHBwNHElycG1qZ2ZjYF1bVlNNTEVEPz49PDs6OTg3NjU0MS8pJyMiISAfHh0cGxoZGBcWFRQTEhERERERERERECIFHSsXMzUjFzM1IyczNSMXMzUjJzM1IwEzNSMnMzUjATM1IyczNSMDNTQmJyMiBgcVFBY3MzI2ATM1IyczNSMXMzUjNzU0JicjIgYdARQWNzMyNjcRFAYjISImNRE0NjsBNTQ2OwEyFh0BMzU0NjsBMhYXFTMyFkehocWyssWhocWyssWhoQGbs7PWsrIBrKGh1rOzxAwGJAcKAQwGJAcKAZuhodazs9ahoRIKCCMICgoIIwgK1ywc/O4dKiodSDQlJCU01jYkIyU0AUcdKk+hoaEksrKyJKH9xKH6of3EoSSyATChBwoBDAahBwwBCv4msiShoaFroQcKAQwGoQcMAQos/TUdKiodAssdKjYlNDQlNjYlNDQlNioAAAAAAgAA/8gD4gLCABQAKQAyQC8ZGBcWFRMABwMCAUcUAQFFAAEAAgMBAmAAAwAAA1QAAwMAWAAAAwBMNTs3NAQFGCsBERQOASMhIi4BNRE0PgEzITIWFzcHCQEFJTU0JiMhIgYVERQWMyEyNjUDTBorGf3OGSsaGisZAjIhMwqW1f7U/s4BMgEsEQ79zg4SEg4CMg4RAhr+DBkrGhorGQIyGSsaKiFX8/6VAZZktgwOEREO/c4OEhIOAAgAAP+oA+gDUgADAAcACwAPABMAFwAbAB8AbkBrHQEEBR8BCQQZAQgJGwEGCBUBBwYFRx4BBRoBCRYBBgNGFwEHRAADAAIFAwJeCgEFAAQJBQReAAkACAYJCF4ABgsBBwYHWgAAAAFWAAEBDABJDAwICBMSERAMDwwPDg0ICwgLEhERERAMBRkrESE1IRUhNSEFFSE1ETUhFTUhNSEPAScXEwcnFxMHJxcD6PwYA+j8GAF3AjP9zQIz/c19nF5enJxeXpycXl4DFD67Prs/P/3NPz/6P7xeIH4Btl4gfQG1XiB9AAsAAP+oA+gDUgADAAcACwAPABMAIAApADUAPgBLAFQBBUuwFFBYQFoACwIFAgtlGwESCRJwAAMAAgsDAl4YDAIFDQEECgUEYBcBCgAPBgoPYAAGAAcRBgdeGgEQABEOEBFgGQEOABMIDhNgHBQCCBUWAgkSCAlgAAAAAVYAAQEMAEkbQFsACwIFAgsFbRsBEgkScAADAAILAwJeGAwCBQ0BBAoFBGAXAQoADwYKD2AABgAHEQYHXhoBEAARDhARYBkBDgATCA4TYBwUAggVFgIJEggJYAAAAAFWAAEBDABJWUBCTUxAPzc2KyoiIRUUEBBRUExUTVRGRT9LQEs7OjY+Nz4yMCo1KzUmJSEpIikbGhQgFSAQExATEhEREREREREQHQUdKxEhNSEVITUhBSE1IQUhFSEVNSEVAyIuATQ+ATIeARQOASciBhQWMjY0JgMiLgE0PgEzMhYUBiciBhQWMjY0JgMiLgE0PgEyHgEUDgEnIgYUFjI2NCYD6PwYA+j8GAE5AnH9jwJx/Y8Ccf2P2xkrGhorMisaGisZDhERHBERDhkrGhorGSc3NycOEREbEhINGSsaGisyKxoaKxkOEREcEREDFD67Pvo/+j/6Pz8BthoqMisaGisyKhp9EhwRERwS/oIaKzIrGjVSNX0RHBEVFBX+jxorMisaGisyKxp+EhwRERwSAAAAFQAA/6gD6AMUAA8AEwAXABsAHwA3ADsAPwBDAEcASwBPAFMAVwBbAF8AdwB7AH8AgwCHA0FLsAlQWECdADwHOwc8ZUYBODcGBjhlPQEAADY1ADZeADUANCo1NF4zMS8tBCspJCAcGAUCAysCXyhFJUMhQR0/GQkDJ0QjQh9AGz4XCQQFAwReJiIeGhYFBRUTEQ8NBQsMBQteMjAuLAQqFBIQDgQMCioMXgAKAAkICgleAAgABzwIB14AOwA6OTs6XgA5ADc4OTdeAAYBAQZSAAYGAVkAAQYBTRtLsApQWECiADwHOwc8ZUYBODcGBjhlPQEAADY1ADZeADUANCw1NF4AKisCKlIzMS8tBCspJCAcGAUCAysCXyhFJUMhQR0/GQkDJ0QjQh9AGz4XCQQFAwReJiIeGhYFBRUTEQ8NBQsMBQteMjAuAywUEhAOBAwKLAxeAAoACQgKCV4ACAAHPAgHXgA7ADo5OzpeADkANzg5N14ABgEBBlIABgYBWQABBgFNG0uwC1BYQJ4APAc7BzxlRgE4NwY3OAZtPQEAADY1ADZeADUANCo1NF4zMS8tBCspJCAcGAUCAysCXyhFJUMhQR0/GQkDJ0QjQh9AGz4XCQQFAwReJiIeGhYFBRUTEQ8NBQsMBQteMjAuLAQqFBIQDgQMCioMXgAKAAkICgleAAgABzwIB14AOwA6OTs6XgA5ADc4OTdeAAYBAQZSAAYGAVkAAQYBTRtAnwA8BzsHPDttRgE4NwY3OAZtPQEAADY1ADZeADUANCo1NF4zMS8tBCspJCAcGAUCAysCXyhFJUMhQR0/GQkDJ0QjQh9AGz4XCQQFAwReJiIeGhYFBRUTEQ8NBQsMBQteMjAuLAQqFBIQDgQMCioMXgAKAAkICgleAAgABzwIB14AOwA6OTs6XgA5ADc4OTdeAAYBAQZSAAYGAVkAAQYBTVlZWUClfHxUVFBQTExISEREQEA8PDg4AgCHhoWEg4KBgHx/fH9+fXt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNgX15dXFtaWVhUV1RXVlVQU1BTUlFMT0xPTk1IS0hLSklER0RHRkVAQ0BDQkE8Pzw/Pj04Ozg7Ojk3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQCgcADwIPRwUUKwEhIgYVERQWMyEyNjURNCYFMxUjFTMVIwEhESE1ITUhNSE1MxUzNTMVMzUzFTM1MxUzNTMVMzUzJRUjPQIzFRcVIz0CMxUXFSM9AjMVFxUjPQIzFRcjNTM1IzUzNSM1IxUjNSMVIzUjFSM1IxUjNSMVIzUhNSE1IQE1IRU1ITUhJyE1IQOq/JUcIyMcA2scIiL8eTIyMjIDa/yVA2v8lQNr/JUyXVJXUV5LXlFeLP1vS1KoUVGpS0uvUVGKMjIyMjJeUVhLXlFeS10yA2v8lQNr/RICcf2PAnF9/gwB9AMUIh39EhwjIxwC7hwjhBINE/2JAiwNEwwTDQ0NDQ0NDQ0NDR8TEw0SEg0TEw0SEg0TEw0SEg0TEw0SEiATDRINBgwMDAwMDAwMDBkME/2VPz99Pz4/AAAQAAD/qAPoA1IADAAQABQAGAAcACAAJAAoACwAMAA0ADgAPAA/AEMARwE1S7AUUFhAZhsBCwMMAwtlAAwEBAxjGRcCFQUWBRVlGhgCFgYGFmMiFBEPBA0HDgcNZRMSEAMOCAgOYwkBBB4cAgEdBAFfJB8jAx0ABRUdBV4ABgAHDQYHXyEBCAAACABdCgEDAwJWIAECAgwDSRtAbBsBCwMMAwsMbQAMBAMMBGsZFwIVBRYFFRZtGhgCFgYFFgZrIhQRDwQNBw4HDQ5tExIQAw4IBw4IawkBBB4cAgEdBAFfJB8jAx0ABRUdBV4ABgAHDQYHXyEBCAAACABdCgEDAwJWIAECAgwDSVlAVUREQEAtLRUVAABER0RHRkVAQ0BDQkE/Pjw7Ojk4NzY1NDMyMS0wLTAvLiwrKikoJyYlJCMiISAfHh0cGxoZFRgVGBcWFBMSERAPDg0ADAAMEzQlBRYrGQExFBYzITI2NREzEQUhFSEVIRUhFTUhFRMjNTMFMxUjETMVIzczFSM3MxUjNxUjNSUzFSM3MxUjNzMVIwEnMwU1MxUzNTMVIxwCcRwi+vxXAnH9jwJx/Y8Ccfq8vPzTPz8/P30/P30/P7w//ok/P30/P30/PwHVP3f8+T8+PwNS/JUcIyMcAjMBOD68u7z6vLwCcbw/Pv3NPj4+Pj4+Pj76Pj4+Pj4BcEX6Pz8/PwAGAAD/qAPoAxQAAwAHAAsADwAfACMAt0uwFFBYQEEAAAQBBABlDAEBCgQBCmsACA4BCwYIC14ABgAHAwYHXgADAAIFAwJeDQEFAAQABQReAAoJCQpSAAoKCVkACQoJTRtAQgAABAEEAAFtDAEBCgQBCmsACA4BCwYIC14ABgAHAwYHXgADAAIFAwJeDQEFAAQABQReAAoJCQpSAAoKCVkACQoJTVlAJiAgCAgAACAjICMiIR4bFhMPDg0MCAsICwoJBwYFBAADAAMRDwUVKzc1IRUlITUhHQEhPQEhFSETETQmIyEiBhURFBYzITI2AxEhEbwB9P4MAnH9jwJx/Y8CcbsiHPyVHCMjHANrHCI+/JWjPj76Pn0+Pvo+/c0C7hwjIh39EhwjIwMK/RIC7gAAAwAA/+cD6ALVAB8AIwAnAFtAWAACAwEBAAIBXgQOAgANAQoLAApeDA8CCwkBBQYLBWAIAQYHBwZSCAEGBgdWAAcGB0ogIAEAJyYlJCAjICMiIRoYFxYVFBMSEQ8KCAcGBQQDAgAfAR8QBRQrASE1MzUjFTMVIyIGFREUFjsBFSMVMzUjNSEyNjURNCYBETMRKQERIQOq/W9e+l6cGyQjHJxe+l4CkRwiI/x6nALP/W8CkQJYPz4+PyYY/okcIz4/Pz4jHAF3GCb+SwF3/okBdwAAAAAEAAD/sQNNAv8ABgAUABkAJACGQBceAQIFHRYOBwQDAhkDAgMAAwEBAQAER0uwElBYQCcABQIFbwACAwJvAAMAA28AAAEBAGMGAQEEBAFSBgEBAQRXAAQBBEsbQCYABQIFbwACAwJvAAMAA28AAAEAbwYBAQQEAVIGAQEBBFcABAEES1lAEgAAISAYFxAPCQgABgAGFAcFFSsXNycHFTMVATQjIgcBBhUUMzI3ATYnFwEjNQEUDwEnNzYyHwEWyzKDM0gBXwwFBP7RBA0FBAEvAx7o/jDoA00UXehdFDsWgxQHM4MzPEcCBgwE/tIEBgwEAS4Ecej+L+kBmh0VXelcFRWDFgAAAAADAAD/qAOqAxQABAAIAA8ARUBCCgEERQgGAgQFBG8ABQAFbwcBAAADAgADXgACAQECUgACAgFWAAECAUoJCQEACQ8JDw4NDAsIBwYFAwIABAEECQUUKyUhFSE1ByM1MwE3FyMRIxEB1f4rA6o/fX39cPr6nLyj+/t9PgG2+vr+xwE5AAAWAAAAAAPoAlgAAwAHAAsADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwBDAEcASwBPAFMAVwDAQL0pDQsJBwUDBwEoDAoIBgQCBwAPAQBeAA8ADhEPDl4AEQAQExEQXgATABIVExJeABUAFBcVFF4AFwAWGRcWXgAZABgbGRheKyclIyEfHQcbGhobUisnJSMhHx0HGxsaViomJCIgHhwHGhsaSldWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIRERERERERERAsBR0rEzM1IxczNSMXMzUjFzM1IxczNSMXMzUjFzM1IwUzNSMFMzUjBTM1IwUzNSMFMzUjBTM1IwUzNSMXMzUjFzM1IxczNSMXMzUjFzM1IxczNSMTMzUjATM1Iz8+Pn0+Pn0+Pn0+Pn0+Pn0+Pn0+PvzTPz8Dqj4+/FY/PwOqPj78Vj8/A6o+PvzTPz99Pz99Pz99Pz99Pz99Pz99Pz8/Pj78Vj8/Aho+Pj4+Pj4+Pj4+Pj4+fT99Pn0/fT59P30+fT8/Pz8/Pz8/Pz8/Pz8Bdz7+DD8AAAAAAQAA/2oBigNSACAAKEAlBAEABQEFAAFtAwEBAgUBAmsABQUMSAACAg0CSRUhJRUhEwYFGisBFAYnIxEzMh4BDwEGIi8BJjQ2OwERIyImNj8BNjIfARYBiRYOR0cPFAIMjwoeCo8KFA9ISA4WAgmPCxwLjwsCnw4WAf3EFB4LjgsLjgseFAI8FB4LjgsLjgsABwAAAAAD6AJYAAMABwALAA8AGAAhACwCMbcqJyQDCQgBR0uwClBYQE4HAQMACgADCm0RAQoMAApjDQEMCAAMYw8BDgkLBQ5lAAsCBQtjBgECBQkCBWsAAQAAAwEAXhABCAAJDggJYAAFBAQFUgAFBQRXAAQFBEsbS7ALUFhARAcBAwAKAAMKbQ0MEQMKCAAKYw8OAgsJAgULZQYBAgUJAgVrAAEAAAMBAF4QAQgACQsICWAABQQEBVIABQUEVwAEBQRLG0uwEVBYQE4HAQMACgADCm0RAQoMAApjDQEMCAAMYw8BDgkLBQ5lAAsCBQtjBgECBQkCBWsAAQAAAwEAXhABCAAJDggJYAAFBAQFUgAFBQRXAAQFBEsbS7ASUFhAUAcBAwAKAAMKbREBCgwACmMNAQwIAAwIaw8BDgkLCQ4LbQALAgULYwYBAgUJAgVrAAEAAAMBAF4QAQgACQ4ICWAABQQEBVIABQUEVwAEBQRLG0uwE1BYQFEHAQMACgADCm0RAQoMAAoMaw0BDAgADAhrDwEOCQsJDgttAAsCBQtjBgECBQkCBWsAAQAAAwEAXhABCAAJDggJYAAFBAQFUgAFBQRXAAQFBEsbQFIHAQMACgADCm0RAQoMAAoMaw0BDAgADAhrDwEOCQsJDgttAAsCCQsCawYBAgUJAgVrAAEAAAMBAF4QAQgACQ4ICWAABQQEBVIABQUEVwAEBQRLWVlZWVlAIxoZERAsKykoJiUjIh4dGSEaIRUUEBgRGBEREREREREQEgUcKxMhNSEDMxEjEyE1KQEzESMFIgYUFjI2NCYnMhYUBiImNDYXMxU3MwcXIycVIz4Da/yVPj8/PwNr/JUDaz4+/dgiJydDJychMDk5YDo6yR9mKHF5KW0fAho+/ksBd/5KPwF3XzJWMjJWMhlAbEBAbEAEYGBqem5uAAAAAQAA/7QDDwMIADYAPUA6AAIFBgUCBm0ABgQFBgRrAAEAAwcBA2AABwAFAgcFYAAEAAAEVAAEBABYAAAEAEwmFyYlExUVIggFHCslFAYjIicBJjQ2MhcBFhQGIicBJiIGFhcBFjMyNjc0JwEmIyIGFB8BFhQGIi8BJjU0NjMyFwEWAw9YQUs4/k4/fLBAAVIFIhAG/q4sdFIBKgGxIy4kLgEk/rwOExAWDuUGJA8F5SNALTEiAUU3TUFYNwGyQK98P/6uBRAiBQFTK1R1K/5PJDAjLiMBRA4WIg/kBhAiBeUiMS5AJP68NgAAAAABAAD/sQPFAwsAfgBQQE1ZVDMDCAUXAQECAkcKAQYLCQcDBQgGBWAACAACAQgCYAwDAgEAAAFUDAMCAQEAWAQBAAEATHp5cG9rZWBfWFVPTkpEPjxlFjgUYA0FGSsFIiYiBiMiJjU0NjI2NzY9ATQnJiMhIg8BFBceATIWFxQGByImIgYjIiY1ND4CNzY1JxE3NiY0LgIjJi8BLgE3NDY3MhYyNjMyFhUUBiIGBwYVFxYzITI3Nj0BNCcuAjU0NjcyFjI2MzIWFRQGIgYHBhUTFBceATIWFxQGA6sZYjJiGQ4OEhogCRIBBxX+iBYHARUJIh4UAQ4NGmgxXhgNDhIWHgkSAQEBAgQECAUIER0MFgEMDhpoMGAWDg4SGh4JEwEHDwGGDgcBEwouHA4OGGQvYBgODhQYIgcUARMJIBwSAQxPBAQYDRESCAULQ9oMBQMD4E8NBQQQEg4YAQQEGA0REAQEBw1DHwHGDgwSGBgQFAUBAgEMFA4YAQQEGg0REAQFDE7EAgIGDLJODAYCDBYOGAEEBBoNERAEBQ1N/fJCDAYEEhAOGAAAAQAA/7ECyQMLACsALkArHQgCAQIBRwACAAEAAmUDAQEBbgAEAAAEVAAEBABYAAAEAEw9MxM4IwUFGSsBFRQGIyIHBgcGFREUBisBIiY1ESMRFAYrASImNREmJyYnJjU0Njc2MyEyFgLJFA4cAg8DAhQOPA4UUBIQPA4UUjdGJSRjQz6rAQsOFALpKRAkAQMOBh79fQ4UFA4CqP1YDhQUDgEVBxohQ0FQXIUXFRQAAAACAAD/agNrA1IAGwAfAEdARAQCAgAPEA0DBQYABV4ODAIGCwkCBwgGB14DAQEBDEgKAQgIDQhJAAAfHh0cABsAGxoZGBcWFRQTEREREREREREREQUdKwE1IzcjByM3IwcjFTMHIxUzBzM3MwczNzM1IzcHIzczA2ucH30f+h99H9vLH6ycH30f+h99H9vLH5z6H/oB2336+vr6ffp9+vr6+n36+voAAAABAAAAAQAAH+a/t18PPPUACwPoAAAAANOqshAAAAAA06qyEAAA/2oD6ANSAAAACAACAAAAAAAAAAEAAANS/2oAAAPoAAD//wPoAAEAAAAAAAAAAAAAAAAAAAATA+gAAAPoAAADoAAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAANZAAAD6AAAA+gAAAGsAAAD6AAAAxEAAAPoAAACygAAA2sAAAAAAAABygK4AxQDhgSMBuIH6giCCOwJcAmyCpgK4AxCDLgNjA3kDjcAAQAAABMAiAAWAAAAAAACAI4AngBzAAABWwtwAAAAAAAAABIA3gABAAAAAAAAADUAAAABAAAAAAABABEANQABAAAAAAACAAcARgABAAAAAAADABEATQABAAAAAAAEABEAXgABAAAAAAAFAAsAbwABAAAAAAAGABEAegABAAAAAAAKACsAiwABAAAAAAALABMAtgADAAEECQAAAGoAyQADAAEECQABACIBMwADAAEECQACAA4BVQADAAEECQADACIBYwADAAEECQAEACIBhQADAAEECQAFABYBpwADAAEECQAGACIBvQADAAEECQAKAFYB3wADAAEECQALACYCNUNvcHlyaWdodCAoQykgMjAxNiBieSBvcmlnaW5hbCBhdXRob3JzIEAgZm9udGVsbG8uY29tZm9ybS1idWlsZGVyLWZvbnRSZWd1bGFyZm9ybS1idWlsZGVyLWZvbnRmb3JtLWJ1aWxkZXItZm9udFZlcnNpb24gMS4wZm9ybS1idWlsZGVyLWZvbnRHZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgACgAQwApACAAMgAwADEANgAgAGIAeQAgAG8AcgBpAGcAaQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAHIAbQAtAGIAdQBpAGwAZABlAHIALQBmAG8AbgB0AFIAZQBnAHUAbABhAHIAZgBvAHIAbQAtAGIAdQBpAGwAZABlAHIALQBmAG8AbgB0AGYAbwByAG0ALQBiAHUAaQBsAGQAZQByAC0AZgBvAG4AdABWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAHIAbQAtAGIAdQBpAGwAZABlAHIALQBmAG8AbgB0AEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMBAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAAMYXV0b2NvbXBsZXRlCGNhbGVuZGFyCGNoZWNrYm94DmNoZWNrYm94LWdyb3VwC3JhZGlvLWdyb3VwCXJpY2gtdGV4dAZzZWxlY3QJdGV4dC1hcmVhCnRleHQtaW5wdXQGcGVuY2lsCmZpbGUtaW5wdXQMaGlkZGVuLWlucHV0D3Jlc2l6ZS12ZXJ0aWNhbAxidXR0b24taW5wdXQGYXR0YWNoBmhlYWRlcglwYXJhZ3JhcGgGbnVtYmVyAAAAAAABAAH//wAPAAAAAAAAAAAAAAAAAAAAAAAYABgAGAAYA1L/agNS/2qwACwgsABVWEVZICBLuAAOUUuwBlNaWLA0G7AoWWBmIIpVWLACJWG5CAAIAGNjI2IbISGwAFmwAEMjRLIAAQBDYEItsAEssCBgZi2wAiwgZCCwwFCwBCZasigBCkNFY0VSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQpDRWNFYWSwKFBYIbEBCkNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ABK1lZI7AAUFhlWVktsAMsIEUgsAQlYWQgsAVDUFiwBSNCsAYjQhshIVmwAWAtsAQsIyEjISBksQViQiCwBiNCsQEKQ0VjsQEKQ7ABYEVjsAMqISCwBkMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZISCwQFNYsAErGyGwQFkjsABQWGVZLbAFLLAHQyuyAAIAQ2BCLbAGLLAHI0IjILAAI0JhsAJiZrABY7ABYLAFKi2wBywgIEUgsAtDY7gEAGIgsABQWLBAYFlmsAFjYESwAWAtsAgssgcLAENFQiohsgABAENgQi2wCSywAEMjRLIAAQBDYEItsAosICBFILABKyOwAEOwBCVgIEWKI2EgZCCwIFBYIbAAG7AwUFiwIBuwQFlZI7AAUFhlWbADJSNhRESwAWAtsAssICBFILABKyOwAEOwBCVgIEWKI2EgZLAkUFiwABuwQFkjsABQWGVZsAMlI2FERLABYC2wDCwgsAAjQrILCgNFWCEbIyFZKiEtsA0ssQICRbBkYUQtsA4ssAFgICCwDENKsABQWCCwDCNCWbANQ0qwAFJYILANI0JZLbAPLCCwEGJmsAFjILgEAGOKI2GwDkNgIIpgILAOI0IjLbAQLEtUWLEEZERZJLANZSN4LbARLEtRWEtTWLEEZERZGyFZJLATZSN4LbASLLEAD0NVWLEPD0OwAWFCsA8rWbAAQ7ACJUKxDAIlQrENAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAOKiEjsAFhIIojYbAOKiEbsQEAQ2CwAiVCsAIlYbAOKiFZsAxDR7ANQ0dgsAJiILAAUFiwQGBZZrABYyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wEywAsQACRVRYsA8jQiBFsAsjQrAKI7ABYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wFCyxABMrLbAVLLEBEystsBYssQITKy2wFyyxAxMrLbAYLLEEEystsBkssQUTKy2wGiyxBhMrLbAbLLEHEystsBwssQgTKy2wHSyxCRMrLbAeLACwDSuxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAfLLEAHistsCAssQEeKy2wISyxAh4rLbAiLLEDHistsCMssQQeKy2wJCyxBR4rLbAlLLEGHistsCYssQceKy2wJyyxCB4rLbAoLLEJHistsCksIDywAWAtsCosIGCwEGAgQyOwAWBDsAIlYbABYLApKiEtsCsssCorsCoqLbAsLCAgRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOCMgilVYIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgbIVktsC0sALEAAkVUWLABFrAsKrABFTAbIlktsC4sALANK7EAAkVUWLABFrAsKrABFTAbIlktsC8sIDWwAWAtsDAsALABRWO4BABiILAAUFiwQGBZZrABY7ABK7ALQ2O4BABiILAAUFiwQGBZZrABY7ABK7AAFrQAAAAAAEQ+IzixLwEVKi2wMSwgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhOC2wMiwuFzwtsDMsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYbABQ2M4LbA0LLECABYlIC4gR7AAI0KwAiVJiopHI0cjYSBYYhshWbABI0KyMwEBFRQqLbA1LLAAFrAEJbAEJUcjRyNhsAlDK2WKLiMgIDyKOC2wNiywABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyCwCEMgiiNHI0cjYSNGYLAEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AIQ0awAiWwCENHI0cjYWAgsARDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBENgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA3LLAAFiAgILAFJiAuRyNHI2EjPDgtsDgssAAWILAII0IgICBGI0ewASsjYTgtsDkssAAWsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA6LLAAFiCwCEMgLkcjRyNhIGCwIGBmsAJiILAAUFiwQGBZZrABYyMgIDyKOC2wOywjIC5GsAIlRlJYIDxZLrErARQrLbA8LCMgLkawAiVGUFggPFkusSsBFCstsD0sIyAuRrACJUZSWCA8WSMgLkawAiVGUFggPFkusSsBFCstsD4ssDUrIyAuRrACJUZSWCA8WS6xKwEUKy2wPyywNiuKICA8sAQjQoo4IyAuRrACJUZSWCA8WS6xKwEUK7AEQy6wKystsEAssAAWsAQlsAQmIC5HI0cjYbAJQysjIDwgLiM4sSsBFCstsEEssQgEJUKwABawBCWwBCUgLkcjRyNhILAEI0KwCUMrILBgUFggsEBRWLMCIAMgG7MCJgMaWUJCIyBHsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxKwEUKy2wQiywNSsusSsBFCstsEMssDYrISMgIDywBCNCIzixKwEUK7AEQy6wKystsEQssAAVIEewACNCsgABARUUEy6wMSotsEUssAAVIEewACNCsgABARUUEy6wMSotsEYssQABFBOwMiotsEcssDQqLbBILLAAFkUjIC4gRoojYTixKwEUKy2wSSywCCNCsEgrLbBKLLIAAEErLbBLLLIAAUErLbBMLLIBAEErLbBNLLIBAUErLbBOLLIAAEIrLbBPLLIAAUIrLbBQLLIBAEIrLbBRLLIBAUIrLbBSLLIAAD4rLbBTLLIAAT4rLbBULLIBAD4rLbBVLLIBAT4rLbBWLLIAAEArLbBXLLIAAUArLbBYLLIBAEArLbBZLLIBAUArLbBaLLIAAEMrLbBbLLIAAUMrLbBcLLIBAEMrLbBdLLIBAUMrLbBeLLIAAD8rLbBfLLIAAT8rLbBgLLIBAD8rLbBhLLIBAT8rLbBiLLA3Ky6xKwEUKy2wYyywNyuwOystsGQssDcrsDwrLbBlLLAAFrA3K7A9Ky2wZiywOCsusSsBFCstsGcssDgrsDsrLbBoLLA4K7A8Ky2waSywOCuwPSstsGossDkrLrErARQrLbBrLLA5K7A7Ky2wbCywOSuwPCstsG0ssDkrsD0rLbBuLLA6Ky6xKwEUKy2wbyywOiuwOystsHAssDorsDwrLbBxLLA6K7A9Ky2wciyzCQQCA0VYIRsjIVlCK7AIZbADJFB4sAEVMC0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAVCsgABACqxAAVCswoCAQgqsQAFQrMOAAEIKrEABkK6AsAAAQAJKrEAB0K6AEAAAQAJKrEDAESxJAGIUViwQIhYsQNkRLEmAYhRWLoIgAABBECIY1RYsQMARFlZWVmzDAIBDCq4Af+FsASNsQIARAAA) format("truetype"), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMTYgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9ybS1idWlsZGVyLWZvbnQiIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvcm0tYnVpbGRlci1mb250IiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJhdXRvY29tcGxldGUiIHVuaWNvZGU9IiYjeGU4MDA7IiBkPSJNMzc1IDUzOGg2M3YtNjNoLTYzdjYzeiBtLTEyNSA2MmgtNjJ2LTYyaDYydjYyeiBtMTI1IDBoLTYydi02Mmg2MnY2MnogbS0yNTAtNjJ2LTYzaDYzdjYzaC02M3ogbTYzLTEyNWg2MnY2MmgtNjJ2LTYyeiBtMTI1IDBoNjJ2NjJoLTYydi02MnogbS02MyAxMjV2LTYzaDYzdjYzaC02M3ogbS0xMjUtNTYzaDYzdjYzaC02M3YtNjN6IG0xMjUgMGg2M3Y2M2gtNjN2LTYzeiBtMTI1IDBoNjN2NjNoLTYzdi02M3ogbTE4OCA2M2gtNjN2LTYzaDYzdjYzeiBtNDM3IDU5M3YtMjUwYzAtNTAtNDQtOTMtOTQtOTNoLTMxdi0xODgtMTg4YzAtMzctMjUtNjItNjItNjJoLTc1MGMtMzggMC02MyAyNS02MyA2MnY3MTljMCA1MCA0NCA5NCA5NCA5NGgxODcgMjE5djMxIDMyaC02Mi02M3YzMSAzMWgxNTYgMTU3di0zMS0zMWgtNjMtNjJ2LTMyLTMxaDE4NyAxNTZjNTAgMCA5NC00NCA5NC05NHogbS0xODctNTMxaC0zNzUtMzc1di0xODhoNzUwdjE4OHogbS02MjUgNjN2NjJoLTYzdi02Mmg2M3ogbTEyNSAwdjYyaC02M3YtNjJoNjN6IG02MjUgNDY4YzAgMTktMTMgMzItMzIgMzJoLTM0M3YtMTU3LTE1NmgtMzItMzF2MzEgMzJoLTYydjYyaDYydjMxIDMyaC02MnY2Mmg2MnYzMSAzMmgtNDA2Yy0xOSAwLTMxLTEzLTMxLTMydi0yNTBjMC0xOCAxMi0zMSAzMS0zMWg0MDZ2LTYyaC0xMjV2LTMyLTMxaDE1NiAxNTd2MzEgMzJoLTEyNXY2MmgzNDNjMTkgMCAzMiAxMyAzMiAzMXYyNTB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjYWxlbmRhciIgdW5pY29kZT0iJiN4ZTgwMTsiIGQ9Ik03MS03OWgxNjF2MTYxaC0xNjF2LTE2MXogbTE5NyAwaDE3OHYxNjFoLTE3OHYtMTYxeiBtLTE5NyAxOTdoMTYxdjE3OGgtMTYxdi0xNzh6IG0xOTcgMGgxNzh2MTc4aC0xNzh2LTE3OHogbS0xOTcgMjE0aDE2MXYxNjFoLTE2MXYtMTYxeiBtNDExLTQxMWgxNzl2MTYxaC0xNzl2LTE2MXogbS0yMTQgNDExaDE3OHYxNjFoLTE3OHYtMTYxeiBtNDI4LTQxMWgxNjF2MTYxaC0xNjF2LTE2MXogbS0yMTQgMTk3aDE3OXYxNzhoLTE3OXYtMTc4eiBtLTE5NiA0ODJ2MTYxcTAgNy02IDEydC0xMiA2aC0zNnEtNyAwLTEyLTZ0LTYtMTJ2LTE2MXEwLTcgNi0xM3QxMi01aDM2cTcgMCAxMiA1dDYgMTN6IG00MTAtNDgyaDE2MXYxNzhoLTE2MXYtMTc4eiBtLTIxNCAyMTRoMTc5djE2MWgtMTc5di0xNjF6IG0yMTQgMGgxNjF2MTYxaC0xNjF2LTE2MXogbTE4IDI2OHYxNjFxMCA3LTUgMTJ0LTEzIDZoLTM1cS04IDAtMTMtNnQtNS0xMnYtMTYxcTAtNyA1LTEzdDEzLTVoMzVxOCAwIDEzIDV0NSAxM3ogbTIxNSAzNnYtNzE1cTAtMjktMjItNTB0LTUwLTIxaC03ODZxLTI5IDAtNTAgMjF0LTIxIDUwdjcxNXEwIDI5IDIxIDUwdDUwIDIxaDcydjU0cTAgMzcgMjYgNjN0NjMgMjZoMzZxMzcgMCA2My0yNnQyNi02M3YtNTRoMjE0djU0cTAgMzcgMjcgNjN0NjMgMjZoMzVxMzcgMCA2My0yNnQyNy02M3YtNTRoNzFxMjkgMCA1MC0yMXQyMi01MHoiIGhvcml6LWFkdi14PSI5MjguNiIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjaGVja2JveCIgdW5pY29kZT0iJiN4ZTgwMjsiIGQ9Ik04NDQgNTM4di01MDBjMC01MS00NC05NC05NC05NGgtNTYyYy01MCAwLTk0IDQzLTk0IDk0djU2MmMwIDUwIDQ0IDk0IDk0IDk0aDU2MmM0NCAwIDgxLTMxIDk0LTc1bDE1MCA4Ny0xNTAtMTY4eiBtLTYzLTc1bC0zMDAtMzYzLTMwNiA0MDYgMzA2LTEwMCAzMDAgMTgydjEyYzAgMTktMTIgMzEtMzEgMzFoLTU2MmMtMTkgMC0zMi0xMi0zMi0zMXYtNTYyYzAtMTkgMTMtMzIgMzItMzJoNTYyYzE5IDAgMzEgMTMgMzEgMzJ2NDI1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2tib3gtZ3JvdXAiIHVuaWNvZGU9IiYjeGU4MDM7IiBkPSJNMCA3ODhoMTAwMHY2MmgtMTAwMHYtNjJ6IG0wLTEyNWgxMDAwdjYyaC0xMDAwdi02MnogbTM3NS0xMjV2LTYzaDU2M3Y2M2gtNTYzeiBtNTYzLTU2M3Y2M2gtNTYzdi02M2g1NjN6IG0tNTYzIDI1MGg1NjN2NjNoLTU2M3YtNjN6IG0tMTI1LTEyNWwtMTU2LTk0LTk0IDMyIDk0LTEyNiAxNTYgMTg4eiBtMCAyNTBsLTE1Ni05NC05NCAzMiA5NC0xMjUgMTU2IDE4N3ogbTAgMjUwbC0xNTYtOTQtOTQgMzIgOTQtMTI1IDE1NiAxODd6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJyYWRpby1ncm91cCIgdW5pY29kZT0iJiN4ZTgwNDsiIGQ9Ik0wIDc4OGgxMDAwdjYyaC0xMDAwdi02MnogbTAtMTI1aDEwMDB2NjJoLTEwMDB2LTYyeiBtMzEzLTE4OGg2MjV2NjNoLTYyNXYtNjN6IG02MjUtMTg3aC02MjV2LTYzaDYyNXY2M3ogbTAtMzEzdjYzaC02MjV2LTYzaDYyNXogbS04NDQgNDM4Yy01MCAwLTk0IDQzLTk0IDkzczQ0IDk0IDk0IDk0IDk0LTQ0IDk0LTk0LTQ0LTkzLTk0LTkzeiBtMCAxMjVjLTE5IDAtMzEtMTMtMzEtMzJzMTItMzEgMzEtMzEgMzEgMTMgMzEgMzEtMTIgMzItMzEgMzJ6IG0wLTM4MmMtNTAgMC05NCA0NC05NCA5NHM0NCA5NCA5NCA5NCA5NC0zOCA5NC05NC00NC05NC05NC05NHogbTAgMTI1Yy0xOSAwLTMxLTEyLTMxLTMxczEyLTMxIDMxLTMxIDMxIDE5IDMxIDMxLTEyIDMxLTMxIDMxeiBtMC0zNjljLTUwIDAtOTQgNDQtOTQgOTRzNDQgOTQgOTQgOTQgOTQtNDQgOTQtOTQtNDQtOTQtOTQtOTR6IG0wIDEyNmMtMTkgMC0zMS0xMy0zMS0zMnMxMi0zMSAzMS0zMSAzMSAxMiAzMSAzMS0xMiAzMi0zMSAzMnoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InJpY2gtdGV4dCIgdW5pY29kZT0iJiN4ZTgwNTsiIGQ9Ik05MzggNzg4aC04NzVjLTM4IDAtNjMtMjUtNjMtNjN2LTc1MGMwLTM4IDI1LTYzIDYzLTYzaDg3NWMzNyAwIDYyIDI1IDYyIDYzdjc1MGMwIDM4LTI1IDYzLTYyIDYzeiBtLTg3NS0xMzJoNTB2LTE4aC01MHYxOHogbTAtMzFoNTB2LTE5aC01MHYxOXogbTg3NS02NTBoLTg3NXY1NTZoODc1di01NTZ6IG0wIDU2OWgtODc1djE5aDg3NXYtMTl6IG0wIDMxaC04NzV2MTloNTB2LTEzaDkzdjEzaDgydi0xM2g4N3YxM2g4MXYtMTNoOTR2MTNoNzV2LTEzaDk0djEzaDgxdi0xM2g5NHYxM2g0NHYtMTl6IG0tNjU3IDUwdi0xOWgtNzV2MTloNzV6IG0tNzUgMTN2MThoODJ2LTE4aC04MnogbTI1MC0xM3YtMTloLTgxdjE5aDgxeiBtLTgxIDEzdjE4aDgxdi0xOGgtODF6IG0yNTAtMTN2LTE5aC03NXYxOWg3NXogbS03NSAxM3YxOGg3NXYtMThoLTc1eiBtMjUwLTEzdi0xOWgtODF2MTloODF6IG0tODEgMTN2MThoODF2LTE4aC04MXogbTIxOS0zMmgtNTB2MTloNTB2LTE5eiBtMCAzMmgtNTB2MThoNTB2LTE4eiBtMCAzMWgtNTB2NmgtOTR2LTEyaC04MXYxMmgtODh2LTEyaC03NXYxMmgtOTR2LTEyaC04MXYxMmgtOTR2LTEyaC03NXYxMmgtOTN2LTEyaC01MHYyNWg4NzV2LTE5eiBtMCAzMWgtODc1djE5aDg3NXYtMTl6IG0tNzUwLTYwMHY2M2g2MjV2LTYzaC02MjV6IG02MjUgMTI1aC02MjV2NjNoNjI1di02M3ogbS0xMjUgMTI1aC01MDB2NjNoNTAwdi02M3oiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InNlbGVjdCIgdW5pY29kZT0iJiN4ZTgwNjsiIGQ9Ik0wIDg1MHYtODc1aDBjMC0zOCAyNS02MyA2My02M2g2MjVjMzcgMCA2MiAyNSA2MiA2M2gwdjU2M2gyNTB2MzEyaC0xMDAweiBtNjMtNjJoNjI1di0xODhoLTYyNXYxODh6IG0wLTM3NWg2MjV2LTE4OGgtNjI1djE4OHogbTAtNDM4djE4OGg2MjV2LTE4OGgtNjI1eiBtODc1IDYyNWgtMTg4djE4OGgxODh2LTE4OHogbS04MTMgMTI1aDYzdi02MmgtNjN2NjJ6IG0wLTYyNWg2M3YtNjJoLTYzdjYyeiBtMTI1IDBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xODggMHYtNjJoLTYzdjYyaDYzeiBtLTQzOCAyNTBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xMjUgMGg2M3YtNjJoLTYzdjYyeiBtNDY5IDMwNmwtNjMgNjloMTE5bC01Ni02OXogbS03MTktMTgxdjYzaDYzdi02M2gtNjNsMCAweiBtMTI1IDB2NjNoNjN2LTYzaC02M2wwIDB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJ0ZXh0LWFyZWEiIHVuaWNvZGU9IiYjeGU4MDc7IiBkPSJNMTg4IDE2M3Y2Mmg1MDB2LTYyaC01MDBsMCAweiBtMCAyNTBoNjI1djYyaC02MjV2LTYybDAgMHogbTAtNjN2LTYyaDYyNXY2MmgtNjI1bDAgMHogbTYyNSAyNTBoLTYyNXYtNjJoNjI1djYybDAgMHogbTE4Ny02MjV2NzUwYzAgMzgtMjUgNjMtNjIgNjNoLTg3NWMtMzggMC02My0yNS02My02M3YtNzUwYzAtMzggMjUtNjMgNjMtNjNoODc1YzM3IDAgNjIgMjUgNjIgNjN6IG0tNjIgNzUwdi03NTBoLTg3NXY3NTBoODc1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0idGV4dC1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwODsiIGQ9Ik05MzggNjAwaC02NTd2NjNoOTR2NjJoLTk0LTYyLTk0di02Mmg5NHYtNjNoLTE1NmMtMzggMC02My0zMS02My02MnYtMzc1YzAtMzggMjUtNjMgNjMtNjNoMTU2di02MmgtOTR2LTYzaDI1MHY2M2gtOTR2NjJoNjU3YzM3IDAgNjIgMjUgNjIgNjN2Mzc1YzAgMzEtMjUgNjItNjIgNjJ6IG0tODc1LTQzN3YzNzVoMTU2di0zNzVoLTE1NnogbTg3NSAwaC02NTd2Mzc1aDY1N3YtMzc1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0icGVuY2lsIiB1bmljb2RlPSImI3hlODA5OyIgZD0iTTIwMy03bDUwIDUxLTEzMSAxMzEtNTEtNTF2LTYwaDcydi03MWg2MHogbTI5MSA1MThxMCAxMi0xMiAxMi01IDAtOS00bC0zMDMtMzAycS00LTQtNC0xMCAwLTEyIDEzLTEyIDUgMCA5IDRsMzAzIDMwMnEzIDQgMyAxMHogbS0zMCAxMDdsMjMyLTIzMi00NjQtNDY1aC0yMzJ2MjMzeiBtMzgxLTU0cTAtMjktMjAtNTBsLTkzLTkzLTIzMiAyMzMgOTMgOTJxMjAgMjEgNTAgMjEgMjkgMCA1MS0yMWwxMzEtMTMxcTIwLTIyIDIwLTUxeiIgaG9yaXotYWR2LXg9Ijg1Ny4xIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImZpbGUtaW5wdXQiIHVuaWNvZGU9IiYjeGU4MGE7IiBkPSJNNDY5IDE2M2gtNDY5di0yNTFoOTM4djI1MWgtNDY5eiBtNDA2LTEyNWgtMTI1djYyaDEyNXYtNjJ6IG0tNjU2IDUwMGwyNTAgMjUwIDI1MC0yNTBoLTE1NnYtMzEzaC0xODh2MzEzeiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iaGlkZGVuLWlucHV0IiB1bmljb2RlPSImI3hlODBiOyIgZD0iTTYzIDUzOGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbS04MTMtNjNsNjMgMCAwIDYzLTYzIDB6IG05MzgtNjJsNjIgMCAwIDYyLTYyIDB6IG0tOTM4LTYzbDYzIDAgMCA2My02MyAweiBtOTM4LTYybDYyIDAgMCA2Mi02MiAweiBtLTkzOC02M2w2MyAwIDAgNjMtNjMgMHogbTkzOC02Mmw2MiAwIDAgNjItNjIgMHogbS04MTMtNjNsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG02MyA0MzhsNjIgMCAwIDYyLTYyIDB6IG0tOTM4LTQzOGw2MyAwIDAgNjMtNjMgMHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InJlc2l6ZS12ZXJ0aWNhbCIgdW5pY29kZT0iJiN4ZTgwYzsiIGQ9Ik0zOTMgNjcxcTAtMTQtMTEtMjV0LTI1LTEwaC03MXYtNTcyaDcxcTE1IDAgMjUtMTB0MTEtMjUtMTEtMjZsLTE0My0xNDJxLTEwLTExLTI1LTExdC0yNSAxMWwtMTQzIDE0MnEtMTAgMTEtMTAgMjZ0MTAgMjUgMjUgMTBoNzJ2NTcyaC03MnEtMTQgMC0yNSAxMHQtMTAgMjUgMTAgMjZsMTQzIDE0MnExMSAxMSAyNSAxMXQyNS0xMWwxNDMtMTQycTExLTExIDExLTI2eiIgaG9yaXotYWR2LXg9IjQyOC42IiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImJ1dHRvbi1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwZDsiIGQ9Ik02MiA1MzhsODc1IDAgMCA2Mi04NzUgMHogbS02Mi0zNzVsNjMgMCAwIDM3NS02MyAweiBtNjMtNjNsODc1IDAgMCA2My04NzUgMHogbTg3NSA2M2w2MiAwIDAgMzc1LTYyIDB6IG0tNTUyIDI4MHEtMzQgMC01NC0yNS0xOS0yNS0xOS02OCAwLTQzIDE5LTY4IDIwLTI1IDU0LTI1IDMzIDAgNTMgMjUgMTkgMjUgMTkgNjggMCA0My0xOSA2OC0yMCAyNS01MyAyNXogbTAgMjVxNDggMCA3Ni0zMiAyOS0zMiAyOS04NiAwLTU0LTI5LTg2LTI4LTMyLTc2LTMyLTQ4IDAtNzcgMzItMjkgMzItMjkgODYgMCA1NCAyOSA4NiAyOSAzMiA3NyAzMnogbTE1My00bDMxIDAgMC05NiAxMDIgOTYgNDAgMC0xMTMtMTA2IDEyMS0xMjItNDEgMC0xMDkgMTEwIDAtMTEwLTMxIDAgMCAyMjh6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJhdHRhY2giIHVuaWNvZGU9IiYjeGU4MGU7IiBkPSJNNzgzIDc3cTAtNjUtNDQtMTA5dC0xMDktNDRxLTc1IDAtMTMxIDU1bC00MzQgNDM0cS02MyA2NC02MyAxNTEgMCA4OCA2MiAxNTB0MTUwIDYycTg4IDAgMTUyLTYzbDMzOC0zMzhxNS01IDUtMTIgMC05LTE3LTI2dC0yNi0xN3EtNyAwLTEzIDVsLTMzOCAzMzlxLTQ0IDQzLTEwMSA0My01OSAwLTEwMC00MnQtNDAtMTAxcTAtNTggNDItMTAxbDQzMy00MzNxMzUtMzYgODEtMzYgMzYgMCA1OSAyNHQyNCA1OXEwIDQ2LTM2IDgxbC0zMjQgMzI0cS0xNCAxNC0zMyAxNC0xNiAwLTI3LTExdC0xMS0yN3EwLTE4IDE0LTMzbDIyOS0yMjhxNi02IDYtMTMgMC05LTE4LTI2dC0yNi0xN3EtNyAwLTEyIDVsLTIyOSAyMjlxLTM1IDM0LTM1IDgzIDAgNDYgMzIgNzh0NzcgMzJxNDkgMCA4My0zNmwzMjUtMzI0cTU1LTU0IDU1LTEzMXoiIGhvcml6LWFkdi14PSI3ODUuNyIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJoZWFkZXIiIHVuaWNvZGU9IiYjeGU4MGY7IiBkPSJNOTM5LTc5cS0yNSAwLTc0IDJ0LTc1IDJxLTI0IDAtNzMtMnQtNzQtMnEtMTQgMC0yMSAxMnQtNyAyNXEwIDE3IDkgMjZ0MjIgOSAyOSA0IDI1IDlxMTggMTEgMTggNzhsMCAyMThxMCAxMi0xIDE3LTcgMy0yOCAzaC0zNzZxLTIyIDAtMjktMyAwLTUgMC0xN2wtMS0yMDdxMC03OSAyMS05MiA5LTUgMjYtN3QzMi0yIDI1LTggMTEtMjZxMC0xNC03LTI2dC0yMC0xM3EtMjYgMC03OCAydC03NyAycS0yNCAwLTcxLTJ0LTcxLTJxLTEzIDAtMjAgMTJ0LTcgMjVxMCAxNyA5IDI1dDIwIDEwIDI2IDQgMjQgOXExOCAxMyAxOCA4MGwtMSAzMXY0NTRxMCAyIDEgMTR0MCAyMS0xIDIxLTIgMjQtNCAyMC02IDE4LTkgMTBxLTggNS0yNSA2dC0yOSAyLTIzIDctMTAgMjZxMCAxNCA2IDI2dDIwIDEzcTI2IDAgNzgtMnQ3Ny0ycTIzIDAgNzEgMnQ3MCAycTE0IDAgMjEtMTN0Ny0yNnEwLTE3LTktMjV0LTIyLTgtMjgtMi0yNC03cS0xOS0xMi0xOS05MGwxLTE3OHEwLTEyIDAtMTggNy0yIDIyLTJoMzkwcTE0IDAgMjEgMiAxIDYgMSAxOGwwIDE3OHEwIDc4LTE5IDkwLTEwIDYtMzMgN3QtMzcgNy0xNCAyOHEwIDE0IDcgMjZ0MjEgMTNxMjQgMCA3NC0ydDczLTJxMjQgMCA3MiAydDcyIDJxMTQgMCAyMS0xM3Q3LTI2cTAtMTctMTAtMjV0LTIyLTgtMjktMi0yNC03cS0yMC0xMy0yMC05MGwxLTUyNnEwLTY2IDE5LTc4IDktNiAyNS04dDMwLTIgMjMtOSAxMC0yNXEwLTE0LTYtMjZ0LTIwLTEzeiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0icGFyYWdyYXBoIiB1bmljb2RlPSImI3hlODEwOyIgZD0iTTcxMyA3NDV2LTQxcTAtMTYtMTAtMzR0LTI0LTE4cS0yOCAwLTMwLTEtMTUtMy0xOC0xNy0yLTYtMi0zNnYtNjQzcTAtMTQtMTAtMjR0LTI0LTEwaC02MHEtMTQgMC0yNCAxMHQtMTAgMjR2NjgwaC04MHYtNjgwcTAtMTQtOS0yNHQtMjUtMTBoLTYwcS0xNCAwLTI0IDEwdC0xMCAyNHYyNzdxLTgyIDctMTM3IDMzLTcwIDMzLTEwNyAxMDAtMzYgNjUtMzYgMTQ1IDAgOTIgNTAgMTU5IDQ5IDY2IDExNiA4OSA2MiAyMSAyMzMgMjFoMjY3cTE0IDAgMjQtMTB0MTAtMjR6IiBob3Jpei1hZHYteD0iNzE0LjMiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0ibnVtYmVyIiB1bmljb2RlPSImI3hlODExOyIgZD0iTTg3NSA0NzV2MTI1aC0xNTZsMzEgMjUwaC0xMjVsLTMxLTI1MGgtMjUwbDMxIDI1MGgtMTI1bC0zMS0yNTBoLTIxOXYtMTI1aDIwM2wtMzEtMjUwaC0xNzJ2LTEyNWgxNTZsLTMxLTI1MGgxMjVsMzEgMjUwaDI1MGwtMzEtMjUwaDEyNWwzMSAyNTBoMjE5djEyNWgtMjAzbDMxIDI1MGgxNzJ6IG0tMzI4LTI1MGgtMjUwbDMxIDI1MGgyNTBsLTMxLTI1MHoiIGhvcml6LWFkdi14PSI4NzUiIC8+CjwvZm9udD4KPC9kZWZzPgo8L3N2Zz4=) format("svg");
    font-weight: normal;
    font-style: normal;
}

/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
/*
@media screen and (-webkit-min-device-pixel-ratio:0) {
  @font-face {
    font-family: 'form-builder-font';
    src: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxtZXRhZGF0YT5Db3B5cmlnaHQgKEMpIDIwMTYgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbTwvbWV0YWRhdGE+CjxkZWZzPgo8Zm9udCBpZD0iZm9ybS1idWlsZGVyLWZvbnQiIGhvcml6LWFkdi14PSIxMDAwIiA+Cjxmb250LWZhY2UgZm9udC1mYW1pbHk9ImZvcm0tYnVpbGRlci1mb250IiBmb250LXdlaWdodD0iNDAwIiBmb250LXN0cmV0Y2g9Im5vcm1hbCIgdW5pdHMtcGVyLWVtPSIxMDAwIiBhc2NlbnQ9Ijg1MCIgZGVzY2VudD0iLTE1MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjEwMDAiIC8+CjxnbHlwaCBnbHlwaC1uYW1lPSJhdXRvY29tcGxldGUiIHVuaWNvZGU9IiYjeGU4MDA7IiBkPSJNMzc1IDUzOGg2M3YtNjNoLTYzdjYzeiBtLTEyNSA2MmgtNjJ2LTYyaDYydjYyeiBtMTI1IDBoLTYydi02Mmg2MnY2MnogbS0yNTAtNjJ2LTYzaDYzdjYzaC02M3ogbTYzLTEyNWg2MnY2MmgtNjJ2LTYyeiBtMTI1IDBoNjJ2NjJoLTYydi02MnogbS02MyAxMjV2LTYzaDYzdjYzaC02M3ogbS0xMjUtNTYzaDYzdjYzaC02M3YtNjN6IG0xMjUgMGg2M3Y2M2gtNjN2LTYzeiBtMTI1IDBoNjN2NjNoLTYzdi02M3ogbTE4OCA2M2gtNjN2LTYzaDYzdjYzeiBtNDM3IDU5M3YtMjUwYzAtNTAtNDQtOTMtOTQtOTNoLTMxdi0xODgtMTg4YzAtMzctMjUtNjItNjItNjJoLTc1MGMtMzggMC02MyAyNS02MyA2MnY3MTljMCA1MCA0NCA5NCA5NCA5NGgxODcgMjE5djMxIDMyaC02Mi02M3YzMSAzMWgxNTYgMTU3di0zMS0zMWgtNjMtNjJ2LTMyLTMxaDE4NyAxNTZjNTAgMCA5NC00NCA5NC05NHogbS0xODctNTMxaC0zNzUtMzc1di0xODhoNzUwdjE4OHogbS02MjUgNjN2NjJoLTYzdi02Mmg2M3ogbTEyNSAwdjYyaC02M3YtNjJoNjN6IG02MjUgNDY4YzAgMTktMTMgMzItMzIgMzJoLTM0M3YtMTU3LTE1NmgtMzItMzF2MzEgMzJoLTYydjYyaDYydjMxIDMyaC02MnY2Mmg2MnYzMSAzMmgtNDA2Yy0xOSAwLTMxLTEzLTMxLTMydi0yNTBjMC0xOCAxMi0zMSAzMS0zMWg0MDZ2LTYyaC0xMjV2LTMyLTMxaDE1NiAxNTd2MzEgMzJoLTEyNXY2MmgzNDNjMTkgMCAzMiAxMyAzMiAzMXYyNTB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjYWxlbmRhciIgdW5pY29kZT0iJiN4ZTgwMTsiIGQ9Ik03MS03OWgxNjF2MTYxaC0xNjF2LTE2MXogbTE5NyAwaDE3OHYxNjFoLTE3OHYtMTYxeiBtLTE5NyAxOTdoMTYxdjE3OGgtMTYxdi0xNzh6IG0xOTcgMGgxNzh2MTc4aC0xNzh2LTE3OHogbS0xOTcgMjE0aDE2MXYxNjFoLTE2MXYtMTYxeiBtNDExLTQxMWgxNzl2MTYxaC0xNzl2LTE2MXogbS0yMTQgNDExaDE3OHYxNjFoLTE3OHYtMTYxeiBtNDI4LTQxMWgxNjF2MTYxaC0xNjF2LTE2MXogbS0yMTQgMTk3aDE3OXYxNzhoLTE3OXYtMTc4eiBtLTE5NiA0ODJ2MTYxcTAgNy02IDEydC0xMiA2aC0zNnEtNyAwLTEyLTZ0LTYtMTJ2LTE2MXEwLTcgNi0xM3QxMi01aDM2cTcgMCAxMiA1dDYgMTN6IG00MTAtNDgyaDE2MXYxNzhoLTE2MXYtMTc4eiBtLTIxNCAyMTRoMTc5djE2MWgtMTc5di0xNjF6IG0yMTQgMGgxNjF2MTYxaC0xNjF2LTE2MXogbTE4IDI2OHYxNjFxMCA3LTUgMTJ0LTEzIDZoLTM1cS04IDAtMTMtNnQtNS0xMnYtMTYxcTAtNyA1LTEzdDEzLTVoMzVxOCAwIDEzIDV0NSAxM3ogbTIxNSAzNnYtNzE1cTAtMjktMjItNTB0LTUwLTIxaC03ODZxLTI5IDAtNTAgMjF0LTIxIDUwdjcxNXEwIDI5IDIxIDUwdDUwIDIxaDcydjU0cTAgMzcgMjYgNjN0NjMgMjZoMzZxMzcgMCA2My0yNnQyNi02M3YtNTRoMjE0djU0cTAgMzcgMjcgNjN0NjMgMjZoMzVxMzcgMCA2My0yNnQyNy02M3YtNTRoNzFxMjkgMCA1MC0yMXQyMi01MHoiIGhvcml6LWFkdi14PSI5MjguNiIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJjaGVja2JveCIgdW5pY29kZT0iJiN4ZTgwMjsiIGQ9Ik04NDQgNTM4di01MDBjMC01MS00NC05NC05NC05NGgtNTYyYy01MCAwLTk0IDQzLTk0IDk0djU2MmMwIDUwIDQ0IDk0IDk0IDk0aDU2MmM0NCAwIDgxLTMxIDk0LTc1bDE1MCA4Ny0xNTAtMTY4eiBtLTYzLTc1bC0zMDAtMzYzLTMwNiA0MDYgMzA2LTEwMCAzMDAgMTgydjEyYzAgMTktMTIgMzEtMzEgMzFoLTU2MmMtMTkgMC0zMi0xMi0zMi0zMXYtNTYyYzAtMTkgMTMtMzIgMzItMzJoNTYyYzE5IDAgMzEgMTMgMzEgMzJ2NDI1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iY2hlY2tib3gtZ3JvdXAiIHVuaWNvZGU9IiYjeGU4MDM7IiBkPSJNMCA3ODhoMTAwMHY2MmgtMTAwMHYtNjJ6IG0wLTEyNWgxMDAwdjYyaC0xMDAwdi02MnogbTM3NS0xMjV2LTYzaDU2M3Y2M2gtNTYzeiBtNTYzLTU2M3Y2M2gtNTYzdi02M2g1NjN6IG0tNTYzIDI1MGg1NjN2NjNoLTU2M3YtNjN6IG0tMTI1LTEyNWwtMTU2LTk0LTk0IDMyIDk0LTEyNiAxNTYgMTg4eiBtMCAyNTBsLTE1Ni05NC05NCAzMiA5NC0xMjUgMTU2IDE4N3ogbTAgMjUwbC0xNTYtOTQtOTQgMzIgOTQtMTI1IDE1NiAxODd6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJyYWRpby1ncm91cCIgdW5pY29kZT0iJiN4ZTgwNDsiIGQ9Ik0wIDc4OGgxMDAwdjYyaC0xMDAwdi02MnogbTAtMTI1aDEwMDB2NjJoLTEwMDB2LTYyeiBtMzEzLTE4OGg2MjV2NjNoLTYyNXYtNjN6IG02MjUtMTg3aC02MjV2LTYzaDYyNXY2M3ogbTAtMzEzdjYzaC02MjV2LTYzaDYyNXogbS04NDQgNDM4Yy01MCAwLTk0IDQzLTk0IDkzczQ0IDk0IDk0IDk0IDk0LTQ0IDk0LTk0LTQ0LTkzLTk0LTkzeiBtMCAxMjVjLTE5IDAtMzEtMTMtMzEtMzJzMTItMzEgMzEtMzEgMzEgMTMgMzEgMzEtMTIgMzItMzEgMzJ6IG0wLTM4MmMtNTAgMC05NCA0NC05NCA5NHM0NCA5NCA5NCA5NCA5NC0zOCA5NC05NC00NC05NC05NC05NHogbTAgMTI1Yy0xOSAwLTMxLTEyLTMxLTMxczEyLTMxIDMxLTMxIDMxIDE5IDMxIDMxLTEyIDMxLTMxIDMxeiBtMC0zNjljLTUwIDAtOTQgNDQtOTQgOTRzNDQgOTQgOTQgOTQgOTQtNDQgOTQtOTQtNDQtOTQtOTQtOTR6IG0wIDEyNmMtMTkgMC0zMS0xMy0zMS0zMnMxMi0zMSAzMS0zMSAzMSAxMiAzMSAzMS0xMiAzMi0zMSAzMnoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InJpY2gtdGV4dCIgdW5pY29kZT0iJiN4ZTgwNTsiIGQ9Ik05MzggNzg4aC04NzVjLTM4IDAtNjMtMjUtNjMtNjN2LTc1MGMwLTM4IDI1LTYzIDYzLTYzaDg3NWMzNyAwIDYyIDI1IDYyIDYzdjc1MGMwIDM4LTI1IDYzLTYyIDYzeiBtLTg3NS0xMzJoNTB2LTE4aC01MHYxOHogbTAtMzFoNTB2LTE5aC01MHYxOXogbTg3NS02NTBoLTg3NXY1NTZoODc1di01NTZ6IG0wIDU2OWgtODc1djE5aDg3NXYtMTl6IG0wIDMxaC04NzV2MTloNTB2LTEzaDkzdjEzaDgydi0xM2g4N3YxM2g4MXYtMTNoOTR2MTNoNzV2LTEzaDk0djEzaDgxdi0xM2g5NHYxM2g0NHYtMTl6IG0tNjU3IDUwdi0xOWgtNzV2MTloNzV6IG0tNzUgMTN2MThoODJ2LTE4aC04MnogbTI1MC0xM3YtMTloLTgxdjE5aDgxeiBtLTgxIDEzdjE4aDgxdi0xOGgtODF6IG0yNTAtMTN2LTE5aC03NXYxOWg3NXogbS03NSAxM3YxOGg3NXYtMThoLTc1eiBtMjUwLTEzdi0xOWgtODF2MTloODF6IG0tODEgMTN2MThoODF2LTE4aC04MXogbTIxOS0zMmgtNTB2MTloNTB2LTE5eiBtMCAzMmgtNTB2MThoNTB2LTE4eiBtMCAzMWgtNTB2NmgtOTR2LTEyaC04MXYxMmgtODh2LTEyaC03NXYxMmgtOTR2LTEyaC04MXYxMmgtOTR2LTEyaC03NXYxMmgtOTN2LTEyaC01MHYyNWg4NzV2LTE5eiBtMCAzMWgtODc1djE5aDg3NXYtMTl6IG0tNzUwLTYwMHY2M2g2MjV2LTYzaC02MjV6IG02MjUgMTI1aC02MjV2NjNoNjI1di02M3ogbS0xMjUgMTI1aC01MDB2NjNoNTAwdi02M3oiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InNlbGVjdCIgdW5pY29kZT0iJiN4ZTgwNjsiIGQ9Ik0wIDg1MHYtODc1aDBjMC0zOCAyNS02MyA2My02M2g2MjVjMzcgMCA2MiAyNSA2MiA2M2gwdjU2M2gyNTB2MzEyaC0xMDAweiBtNjMtNjJoNjI1di0xODhoLTYyNXYxODh6IG0wLTM3NWg2MjV2LTE4OGgtNjI1djE4OHogbTAtNDM4djE4OGg2MjV2LTE4OGgtNjI1eiBtODc1IDYyNWgtMTg4djE4OGgxODh2LTE4OHogbS04MTMgMTI1aDYzdi02MmgtNjN2NjJ6IG0wLTYyNWg2M3YtNjJoLTYzdjYyeiBtMTI1IDBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xODggMHYtNjJoLTYzdjYyaDYzeiBtLTQzOCAyNTBoNjN2LTYyaC02M3Y2MnogbTEyNSAwaDYzdi02MmgtNjN2NjJ6IG0xMjUgMGg2M3YtNjJoLTYzdjYyeiBtNDY5IDMwNmwtNjMgNjloMTE5bC01Ni02OXogbS03MTktMTgxdjYzaDYzdi02M2gtNjNsMCAweiBtMTI1IDB2NjNoNjN2LTYzaC02M2wwIDB6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJ0ZXh0LWFyZWEiIHVuaWNvZGU9IiYjeGU4MDc7IiBkPSJNMTg4IDE2M3Y2Mmg1MDB2LTYyaC01MDBsMCAweiBtMCAyNTBoNjI1djYyaC02MjV2LTYybDAgMHogbTAtNjN2LTYyaDYyNXY2MmgtNjI1bDAgMHogbTYyNSAyNTBoLTYyNXYtNjJoNjI1djYybDAgMHogbTE4Ny02MjV2NzUwYzAgMzgtMjUgNjMtNjIgNjNoLTg3NWMtMzggMC02My0yNS02My02M3YtNzUwYzAtMzggMjUtNjMgNjMtNjNoODc1YzM3IDAgNjIgMjUgNjIgNjN6IG0tNjIgNzUwdi03NTBoLTg3NXY3NTBoODc1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0idGV4dC1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwODsiIGQ9Ik05MzggNjAwaC02NTd2NjNoOTR2NjJoLTk0LTYyLTk0di02Mmg5NHYtNjNoLTE1NmMtMzggMC02My0zMS02My02MnYtMzc1YzAtMzggMjUtNjMgNjMtNjNoMTU2di02MmgtOTR2LTYzaDI1MHY2M2gtOTR2NjJoNjU3YzM3IDAgNjIgMjUgNjIgNjN2Mzc1YzAgMzEtMjUgNjItNjIgNjJ6IG0tODc1LTQzN3YzNzVoMTU2di0zNzVoLTE1NnogbTg3NSAwaC02NTd2Mzc1aDY1N3YtMzc1eiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0icGVuY2lsIiB1bmljb2RlPSImI3hlODA5OyIgZD0iTTIwMy03bDUwIDUxLTEzMSAxMzEtNTEtNTF2LTYwaDcydi03MWg2MHogbTI5MSA1MThxMCAxMi0xMiAxMi01IDAtOS00bC0zMDMtMzAycS00LTQtNC0xMCAwLTEyIDEzLTEyIDUgMCA5IDRsMzAzIDMwMnEzIDQgMyAxMHogbS0zMCAxMDdsMjMyLTIzMi00NjQtNDY1aC0yMzJ2MjMzeiBtMzgxLTU0cTAtMjktMjAtNTBsLTkzLTkzLTIzMiAyMzMgOTMgOTJxMjAgMjEgNTAgMjEgMjkgMCA1MS0yMWwxMzEtMTMxcTIwLTIyIDIwLTUxeiIgaG9yaXotYWR2LXg9Ijg1Ny4xIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImZpbGUtaW5wdXQiIHVuaWNvZGU9IiYjeGU4MGE7IiBkPSJNNDY5IDE2M2gtNDY5di0yNTFoOTM4djI1MWgtNDY5eiBtNDA2LTEyNWgtMTI1djYyaDEyNXYtNjJ6IG0tNjU2IDUwMGwyNTAgMjUwIDI1MC0yNTBoLTE1NnYtMzEzaC0xODh2MzEzeiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0iaGlkZGVuLWlucHV0IiB1bmljb2RlPSImI3hlODBiOyIgZD0iTTYzIDUzOGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbTEyNSAwbDYyIDAgMCA2Mi02MiAweiBtMTI1IDBsNjIgMCAwIDYyLTYyIDB6IG0xMjUgMGw2MiAwIDAgNjItNjIgMHogbS04MTMtNjNsNjMgMCAwIDYzLTYzIDB6IG05MzgtNjJsNjIgMCAwIDYyLTYyIDB6IG0tOTM4LTYzbDYzIDAgMCA2My02MyAweiBtOTM4LTYybDYyIDAgMCA2Mi02MiAweiBtLTkzOC02M2w2MyAwIDAgNjMtNjMgMHogbTkzOC02Mmw2MiAwIDAgNjItNjIgMHogbS04MTMtNjNsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG0xMjUgMGw2MyAwIDAgNjMtNjMgMHogbTEyNSAwbDYzIDAgMCA2My02MyAweiBtMTI1IDBsNjMgMCAwIDYzLTYzIDB6IG02MyA0MzhsNjIgMCAwIDYyLTYyIDB6IG0tOTM4LTQzOGw2MyAwIDAgNjMtNjMgMHoiIGhvcml6LWFkdi14PSIxMDAwIiAvPgoKPGdseXBoIGdseXBoLW5hbWU9InJlc2l6ZS12ZXJ0aWNhbCIgdW5pY29kZT0iJiN4ZTgwYzsiIGQ9Ik0zOTMgNjcxcTAtMTQtMTEtMjV0LTI1LTEwaC03MXYtNTcyaDcxcTE1IDAgMjUtMTB0MTEtMjUtMTEtMjZsLTE0My0xNDJxLTEwLTExLTI1LTExdC0yNSAxMWwtMTQzIDE0MnEtMTAgMTEtMTAgMjZ0MTAgMjUgMjUgMTBoNzJ2NTcyaC03MnEtMTQgMC0yNSAxMHQtMTAgMjUgMTAgMjZsMTQzIDE0MnExMSAxMSAyNSAxMXQyNS0xMWwxNDMtMTQycTExLTExIDExLTI2eiIgaG9yaXotYWR2LXg9IjQyOC42IiAvPgoKPGdseXBoIGdseXBoLW5hbWU9ImJ1dHRvbi1pbnB1dCIgdW5pY29kZT0iJiN4ZTgwZDsiIGQ9Ik02MiA1MzhsODc1IDAgMCA2Mi04NzUgMHogbS02Mi0zNzVsNjMgMCAwIDM3NS02MyAweiBtNjMtNjNsODc1IDAgMCA2My04NzUgMHogbTg3NSA2M2w2MiAwIDAgMzc1LTYyIDB6IG0tNTUyIDI4MHEtMzQgMC01NC0yNS0xOS0yNS0xOS02OCAwLTQzIDE5LTY4IDIwLTI1IDU0LTI1IDMzIDAgNTMgMjUgMTkgMjUgMTkgNjggMCA0My0xOSA2OC0yMCAyNS01MyAyNXogbTAgMjVxNDggMCA3Ni0zMiAyOS0zMiAyOS04NiAwLTU0LTI5LTg2LTI4LTMyLTc2LTMyLTQ4IDAtNzcgMzItMjkgMzItMjkgODYgMCA1NCAyOSA4NiAyOSAzMiA3NyAzMnogbTE1My00bDMxIDAgMC05NiAxMDIgOTYgNDAgMC0xMTMtMTA2IDEyMS0xMjItNDEgMC0xMDkgMTEwIDAtMTEwLTMxIDAgMCAyMjh6IiBob3Jpei1hZHYteD0iMTAwMCIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJhdHRhY2giIHVuaWNvZGU9IiYjeGU4MGU7IiBkPSJNNzgzIDc3cTAtNjUtNDQtMTA5dC0xMDktNDRxLTc1IDAtMTMxIDU1bC00MzQgNDM0cS02MyA2NC02MyAxNTEgMCA4OCA2MiAxNTB0MTUwIDYycTg4IDAgMTUyLTYzbDMzOC0zMzhxNS01IDUtMTIgMC05LTE3LTI2dC0yNi0xN3EtNyAwLTEzIDVsLTMzOCAzMzlxLTQ0IDQzLTEwMSA0My01OSAwLTEwMC00MnQtNDAtMTAxcTAtNTggNDItMTAxbDQzMy00MzNxMzUtMzYgODEtMzYgMzYgMCA1OSAyNHQyNCA1OXEwIDQ2LTM2IDgxbC0zMjQgMzI0cS0xNCAxNC0zMyAxNC0xNiAwLTI3LTExdC0xMS0yN3EwLTE4IDE0LTMzbDIyOS0yMjhxNi02IDYtMTMgMC05LTE4LTI2dC0yNi0xN3EtNyAwLTEyIDVsLTIyOSAyMjlxLTM1IDM0LTM1IDgzIDAgNDYgMzIgNzh0NzcgMzJxNDkgMCA4My0zNmwzMjUtMzI0cTU1LTU0IDU1LTEzMXoiIGhvcml6LWFkdi14PSI3ODUuNyIgLz4KCjxnbHlwaCBnbHlwaC1uYW1lPSJoZWFkZXIiIHVuaWNvZGU9IiYjeGU4MGY7IiBkPSJNOTM5LTc5cS0yNSAwLTc0IDJ0LTc1IDJxLTI0IDAtNzMtMnQtNzQtMnEtMTQgMC0yMSAxMnQtNyAyNXEwIDE3IDkgMjZ0MjIgOSAyOSA0IDI1IDlxMTggMTEgMTggNzhsMCAyMThxMCAxMi0xIDE3LTcgMy0yOCAzaC0zNzZxLTIyIDAtMjktMyAwLTUgMC0xN2wtMS0yMDdxMC03OSAyMS05MiA5LTUgMjYtN3QzMi0yIDI1LTggMTEtMjZxMC0xNC03LTI2dC0yMC0xM3EtMjYgMC03OCAydC03NyAycS0yNCAwLTcxLTJ0LTcxLTJxLTEzIDAtMjAgMTJ0LTcgMjVxMCAxNyA5IDI1dDIwIDEwIDI2IDQgMjQgOXExOCAxMyAxOCA4MGwtMSAzMXY0NTRxMCAyIDEgMTR0MCAyMS0xIDIxLTIgMjQtNCAyMC02IDE4LTkgMTBxLTggNS0yNSA2dC0yOSAyLTIzIDctMTAgMjZxMCAxNCA2IDI2dDIwIDEzcTI2IDAgNzgtMnQ3Ny0ycTIzIDAgNzEgMnQ3MCAycTE0IDAgMjEtMTN0Ny0yNnEwLTE3LTktMjV0LTIyLTgtMjgtMi0yNC03cS0xOS0xMi0xOS05MGwxLTE3OHEwLTEyIDAtMTggNy0yIDIyLTJoMzkwcTE0IDAgMjEgMiAxIDYgMSAxOGwwIDE3OHEwIDc4LTE5IDkwLTEwIDYtMzMgN3QtMzcgNy0xNCAyOHEwIDE0IDcgMjZ0MjEgMTNxMjQgMCA3NC0ydDczLTJxMjQgMCA3MiAydDcyIDJxMTQgMCAyMS0xM3Q3LTI2cTAtMTctMTAtMjV0LTIyLTgtMjktMi0yNC03cS0yMC0xMy0yMC05MGwxLTUyNnEwLTY2IDE5LTc4IDktNiAyNS04dDMwLTIgMjMtOSAxMC0yNXEwLTE0LTYtMjZ0LTIwLTEzeiIgaG9yaXotYWR2LXg9IjEwMDAiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0icGFyYWdyYXBoIiB1bmljb2RlPSImI3hlODEwOyIgZD0iTTcxMyA3NDV2LTQxcTAtMTYtMTAtMzR0LTI0LTE4cS0yOCAwLTMwLTEtMTUtMy0xOC0xNy0yLTYtMi0zNnYtNjQzcTAtMTQtMTAtMjR0LTI0LTEwaC02MHEtMTQgMC0yNCAxMHQtMTAgMjR2NjgwaC04MHYtNjgwcTAtMTQtOS0yNHQtMjUtMTBoLTYwcS0xNCAwLTI0IDEwdC0xMCAyNHYyNzdxLTgyIDctMTM3IDMzLTcwIDMzLTEwNyAxMDAtMzYgNjUtMzYgMTQ1IDAgOTIgNTAgMTU5IDQ5IDY2IDExNiA4OSA2MiAyMSAyMzMgMjFoMjY3cTE0IDAgMjQtMTB0MTAtMjR6IiBob3Jpei1hZHYteD0iNzE0LjMiIC8+Cgo8Z2x5cGggZ2x5cGgtbmFtZT0ibnVtYmVyIiB1bmljb2RlPSImI3hlODExOyIgZD0iTTg3NSA0NzV2MTI1aC0xNTZsMzEgMjUwaC0xMjVsLTMxLTI1MGgtMjUwbDMxIDI1MGgtMTI1bC0zMS0yNTBoLTIxOXYtMTI1aDIwM2wtMzEtMjUwaC0xNzJ2LTEyNWgxNTZsLTMxLTI1MGgxMjVsMzEgMjUwaDI1MGwtMzEtMjUwaDEyNWwzMSAyNTBoMjE5djEyNWgtMjAzbDMxIDI1MGgxNzJ6IG0tMzI4LTI1MGgtMjUwbDMxIDI1MGgyNTBsLTMxLTI1MHoiIGhvcml6LWFkdi14PSI4NzUiIC8+CjwvZm9udD4KPC9kZWZzPgo8L3N2Zz4=) format('svg');
  }
}
*/
.form-builder-wrap [class^="icon-"]:before,
.form-builder-wrap [class*=" icon-"]:before,
.amform-form [class^="icon-"]:before,
.amform-form [class*=" icon-"]:before {
    font-family: "form-builder-font";
    font-style: normal;
    font-weight: normal;
    speak: none;
    display: inline-block;
    text-decoration: inherit;
    width: 1em;
    margin-right: .2em;
    text-align: center;
    /* opacity: .8; */
    /* For safety - reset parent styles, that can break glyph codes*/
    font-variant: normal;
    text-transform: none;
    /* fix buttons height, for twitter bootstrap */
    line-height: 1em;
    /* Animation center compensation - margins should be symmetric */
    /* remove if not needed */
    margin-left: .2em;
    /* you can be more comfortable with increased icons size */
    /* font-size: 120%; */
    /* Font smoothing. That was taken from TWBS */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* Uncomment for 3D effect */
    /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
}

.icon-autocomplete:before {
    content: '\e800';
}

/* '' */
.icon-calendar:before {
    content: '\e801';
}

/* '' */
.icon-checkbox:before {
    content: '\e802';
}

/* '' */
.icon-checkbox-group:before {
    content: '\e803';
}

/* '' */
.icon-radio-group:before {
    content: '\e804';
}

/* '' */
.icon-rich-text:before {
    content: '\e805';
}

/* '' */
.icon-select:before {
    content: '\e806';
}

/* '' */
.icon-text-area:before {
    content: '\e807';
}

/* '' */
.icon-text-input:before {
    content: '\e808';
}

/* '' */
.icon-pencil:before {
    content: '\e809';
}

/* '' */
.icon-file-input:before {
    content: '\e80a';
}

/* '' */
.icon-hidden-input:before {
    content: '\e80b';
}

/* '' */
.icon-resize-vertical:before {
    content: '\e80c';
}

/* '' */
.icon-button-input:before {
    content: '\e80d';
}

/* '' */
.icon-attach:before {
    content: '\e80e';
}

/* '' */
.icon-header:before {
    content: '\e80f';
}

/* '' */
.icon-paragraph:before {
    content: '\e810';
}

/* '' */
.icon-number:before {
    content: '\e811';
}

/* '' */
/*
  Mixins
*/
/*
  Animations
*/
@-webkit-keyframes PLACEHOLDER {
    0% {
        height: 1px;
    }
    100% {
        height: 15px;
    }
}

@keyframes PLACEHOLDER {
    0% {
        height: 1px;
    }
    100% {
        height: 15px;
    }
}

.cb-wrap {
    float: right;
    width: 50%;
    -webkit-transition: -webkit-transform 250ms;
    transition: -webkit-transform 250ms;
    transition: transform 250ms;
    transition: transform 250ms, -webkit-transform 250ms;
    /* smartphones, Android phones, landscape iPhone */
}

.cb-wrap.pull-left .form-actions {
    float: left;
}

.cb-wrap h4 {
    margin-top: 0;
    color: #666;
}

.cb-wrap .save:hover {
    color: #08fe00;
}

@media (max-width: 481px) {
    .cb-wrap {
        width: 64px;
    }

    .cb-wrap h4 {
        display: none;
    }
}

.frmb-control.sort-enabled li.ui-state-highlight {
    box-shadow: none;
    height: 0;
    width: 100%;
    background: -webkit-radial-gradient(center ellipse, #545454 0%, transparent 75%);
    background: radial-gradient(ellipse at center, #545454 0%, transparent 75%);
    border: 0 none;
    -webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    visibility: visible;
    overflow: hidden;
    margin: 1px 0 3px;
    -webkit-animation: PLACEHOLDER 250ms forwards;
    animation: PLACEHOLDER 250ms forwards;
}

.frmb-control li {
    cursor: move;
    list-style: none;
    box-shadow: 0 0 1px 0 inset;
    padding: 10px;
    text-align: left;
    background: #fff;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    /* smartphones, Android phones, landscape iPhone */
}

.frmb-control li:hover {
    background-color: #f2f2f2;
}

.frmb-control li.ui-sortable-helper {
    border-radius: 5px;
    -webkit-transition: box-shadow 250ms;
    transition: box-shadow 250ms;
    box-shadow: 2px 2px 6px 0 #666;
    border: 1px solid #fff;
}

.frmb-control li.ui-state-highlight {
    width: 0;
    overflow: hidden;
    padding: 0;
    margin: 0;
    border: 0 none;
}

.frmb-control li.moving {
    opacity: 0.6;
}

.frmb-control li.fb-separator {
    background-color: transparent;
    box-shadow: none;
    padding: 0;
    cursor: default;
}

@media (max-width: 481px) {
    .frmb-control li:before {
        font-size: 30px;
    }

    .frmb-control li span {
        display: none;
    }
}

.frmb-control {
    margin: 0;
    padding: 0;
}

.fb-mobile .form-actions {
    width: 100%;
}

.fb-mobile .form-actions button {
    width: 100%;
    font-size: .85em !important;
    display: block !important;
    border-radius: 0 !important;
    margin-top: -1px;
    margin-left: 0 !important;
}

.fb-mobile .form-actions button:first-child {
    border-radius: 5px 5px 0 0 !important;
    margin-top: 0 !important;
    border-bottom: 0 none;
}

.fb-mobile .form-actions button:last-child {
    border-radius: 0 0 5px 5px !important;
}

.form-actions {
    float: right;
    margin-top: 5px;
    /* smartphones, Android phones, landscape iPhone */
}

.form-actions .clear-all:hover {
    color: #fff !important;
}

[id^='frmb-'][id$='-form-wrap'] {
    /*   ------------   TOOLTIP   ------------   */
}

[id^='frmb-'][id$='-form-wrap'] .empty .frmb {
    border: 3px dashed #ccc;
    margin-right: 5px;
    background-color: rgba(255, 255, 255, 0.25);
}

[id^='frmb-'][id$='-form-wrap'] .stage-wrap {
    position: relative;
    float: left;
    width: 49%;
    margin-right: 1%;
    /* smartphones, Android phones, landscape iPhone */
}

[id^='frmb-'][id$='-form-wrap'] .stage-wrap.pull-right .frmb {
    margin: 0 0 0 6px;
}

@media (max-width: 481px) {
    [id^='frmb-'][id$='-form-wrap'] .stage-wrap {
        width: calc(100% - 64px);
    }
}

[id^='frmb-'][id$='-form-wrap'] .stage-wrap .action-links {
    width: calc(100% - 141px);
    display: none;
    float: right;
    overflow: hidden;
    text-align: right;
}

[id^='frmb-'][id$='-form-wrap'] .stage-wrap.empty:after {
    content: attr(data-content);
    position: absolute;
    text-align: center;
    top: 50%;
    left: 0;
    width: 100%;
    margin-top: -1em;
}

[id^='frmb-'][id$='-form-wrap'] .stage-wrap .action-links .active {
    font-weight: 700;
    color: #000;
}

.field-label-container {
    min-height: 20px;
}

li.editing .field-label-container {
    background-color: #41475d;
    min-height: 40px;
    color: white;
    padding: 10px 15px;
    font-weight: bold;
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
}

li.editing .field-actions {
    display: none !important;
}

[id^='frmb-'][id$='-form-wrap'] .frmb {
    list-style-type: none;
    min-height: 200px;
    margin: 0 6px 0 0;
    padding: 0;
    -webkit-transition: background-color 500ms ease-in-out;
    transition: background-color 500ms ease-in-out;
}

[id^='frmb-'][id$='-form-wrap'] .frmb.removing {
    overflow: hidden;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li {
    position: relative;
    padding: 0;
    min-height: 33px;
    clear: both;
    margin-left: 0;
    margin-bottom: 3px;
    background-color: #fff;
    -webkit-transition: background-color 250ms ease-in-out, margin-top 400ms;
    transition: background-color 250ms ease-in-out, margin-top 400ms;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li:hover .field-actions {
    opacity: 1;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.hidden-field {
    background-color: rgba(255, 255, 255, 0.6);
}

[id^='frmb-'][id$='-form-wrap'] .frmb li:first-child {
    border-top-right-radius: 5px;
    border-top-left-radius: 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li:first-child .field-actions .btn:last-child {
    border-radius: 0 5px 0 0;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li:last-child {
    border-bottom-right-radius: 5px;
    border-bottom-left-radius: 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li:hover {
    border-color: #66afe9;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}

[id^='frmb-'][id$='-form-wrap'] .frmb li:hover li :hover {
    background-color: #fefefe;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.no-fields label {
    font-weight: 400;
}

@keyframes PLACEHOLDER {
    0% {
        height: 0;
    }
    100% {
        height: 15px;
    }
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.frmb-placeholder, [id^='frmb-'][id$='-form-wrap'] .frmb li.ui-state-highlight {
    height: 0;
    padding: 0;
    background: -webkit-radial-gradient(center ellipse, #545454 0%, transparent 75%);
    background: radial-gradient(ellipse at center, #545454 0%, transparent 75%);
    border: 0 none;
    -webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    visibility: visible;
    overflow: hidden;
    margin-bottom: 3px;
    -webkit-animation: PLACEHOLDER 250ms forwards;
    animation: PLACEHOLDER 250ms forwards;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.moving, [id^='frmb-'][id$='-form-wrap'] .frmb li.ui-sortable-helper {
    -webkit-transition: box-shadow 500ms ease-in-out;
    transition: box-shadow 500ms ease-in-out;
    box-shadow: 2px 2px 6px 0 #666;
    border: 1px solid #fff;
    border-radius: 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.disabled {
    z-index: 1;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.disabled [type=checkbox] {
    float: left;
    margin-right: 10px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.disabled h2 {
    border-bottom: 0 none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.disabled label {
    font-size: 12px;
    font-weight: 400;
    color: #666;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.disabled .prev-holder {
    cursor: default;
    line-height: 28px;
    padding-left: 5px;
}

.frmb li .top-close-field{
    display: none;
}

.frmb li.editing .top-close-field{
    color: white;
    border: 1px solid white;
    position: absolute;
    top: 10px;
    right: 10px;
    display: inline-block;
    width: 20px;
    padding: 0 5px 2px;
    cursor: pointer;
    border-radius: 1px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li .form-elements .close-field {
    position: absolute;
    padding: 5px 20px;
    background-color: #1f8295;
    color: white;
    font-size: larger;
    left: 50%;
    bottom: 12px;
    border-top: 1px solid #d7d7d7;
    border-left: 1px solid #d7d7d7;
    border-right: 1px solid #D7D7D7;
    -webkit-transform: translateX(-50%);
    transform: translateX(-50%);
    border-top-right-radius: 3px;
    border-top-left-radius: 3px;
    cursor: pointer;
    -webkit-transition: background-color 250ms ease-in-out;
    transition: background-color 250ms ease-in-out;
    -webkit-border-radius: 3;
    -moz-border-radius: 3;
    border-radius: 3px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li .form-elements .close-field:hover {
    background: #2a9cb0;
    text-decoration: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li .close-field:hover {
    text-decoration: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field h1,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field h2,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field h3,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field p,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field canvas,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field output,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field address,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field blockquote,
[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field .prev-holder, [id^='frmb-'][id$='-form-wrap'] .frmb li.header-field h1,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field h2,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field h3,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field p,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field canvas,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field output,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field address,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field blockquote,
[id^='frmb-'][id$='-form-wrap'] .frmb li.header-field .prev-holder, [id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field h1,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field h2,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field h3,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field p,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field canvas,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field output,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field address,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field blockquote,
[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field .prev-holder {
    margin: 0;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field .field-label, [id^='frmb-'][id$='-form-wrap'] .frmb li.header-field .field-label, [id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field .field-label {
    display: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.button-field.editing .field-label, [id^='frmb-'][id$='-form-wrap'] .frmb li.header-field.editing .field-label, [id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field.editing .field-label {
    display: block;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.paragraph-field .fld-label {
    min-height: 150px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.deleting,
[id^='frmb-'][id$='-form-wrap'] .frmb li.delete:hover,
[id^='frmb-'][id$='-form-wrap'] .frmb li:hover li.delete:hover {
    background-color: #fdd;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.deleting .close-field,
[id^='frmb-'][id$='-form-wrap'] .frmb li.delete:hover .close-field,
[id^='frmb-'][id$='-form-wrap'] .frmb li:hover li.delete:hover .close-field {
    background-color: #fdd;
}

[id^='frmb-'][id$='-form-wrap'] .frmb li.deleting {
    z-index: 20;
    pointer-events: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb.disabled {
    padding: 0 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb.disabled :hover {
    border-color: transparent;
}

[id^='frmb-'][id$='-form-wrap'] .frmb.disabled .form-element {
    float: none;
    margin-bottom: 10px;
    overflow: visible;
    padding: 5px 0;
    position: relative;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .frm-holder {
    display: none;
    position: relative;
    top: -12px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .tooltip {
    left: 20px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder {
    display: block;
    margin-top: 12px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder .form-group > label{
    display: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder input[type='color'] {
    width: 60px;
    padding: 2px;
    display: inline-block;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder input[type='date'] {
    width: auto;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder select[multiple] {
    height: auto;
    overflow: auto;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder label {
    font-weight: normal;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder input[type='number'] {
    width: auto;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder input[type='checkbox'],
[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder input[type='radio'] {
    margin-right: 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .prev-holder input[type='color'] {
    width: 60px;
    padding: 2px;
    display: inline-block;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .required-asterisk {
    display: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .legend {
    color: #666;
    margin-bottom: 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .disabled .field-label {
    display: block;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions {
    position: absolute;
    top: 0;
    right: 0;
    opacity: 0;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions a:hover {
    text-decoration: none;
    color: #000;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions .btn {
    display: inline-block;
    width: 32px;
    height: 32px;
    padding: 0;
    border-radius: 0;
    border-color: #b3b3b3;
    background-color: rgba(255, 255, 255, 0.75);
    color: #b3b3b3;
    line-height: 32px;
    font-size: 16px;
    border-width: 0 0 1px 1px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions .btn:first-child {
    border-bottom-left-radius: 5px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions .toggle-form {
    font-size: .85em;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions .toggle-form:hover {
    background-color: #65aac6;
    color: #fff;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions .copy-button:hover {
    background-color: #6fc665;
    color: #fff;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-actions .del-button:hover {
    background-color: #c66865;
    color: #fff;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .option-actions {
    text-align: left;
    margin-top: 10px;
    width: 99%;
    margin-left: 11px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .option-actions button,
[id^='frmb-'][id$='-form-wrap'] .frmb .option-actions a {
    background: #fff;
    padding: 5px 10px;
    border: 1px solid #b3b3b3;
    font-size: 14px;
    border-radius: 5px;
    cursor: pointer;
    color: black;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .option-actions button:hover,
[id^='frmb-'][id$='-form-wrap'] .frmb .option-actions a:hover {
    background: #f1f1f1;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .option-actions a:hover {
    text-decoration: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .sortable-options-wrap {
    width: 74%;
    display: inline-block;
    /* smartphones, Android phones, landscape iPhone */
}

[id^='frmb-'][id$='-form-wrap'] .frmb .sortable-options-wrap label {
    font-weight: normal;
}

@media (max-width: 481px) {
    [id^='frmb-'][id$='-form-wrap'] .frmb .sortable-options-wrap {
        display: block;
        width: 100%;
    }
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options {
    display: inline-block;
    width: 99%;
    max-height: 500px;
    overflow-y: auto;
    margin-left: 11px;
    background: #b3b3b3;
    margin-bottom: 0;
    border-radius: 5px;
    list-style: none;
    padding: 0;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options li:not(.touch-disabled) {
    cursor: move;
    margin: 1px;
}

.touch-disabled {
    cursor: default;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options li:nth-child(1) .remove {
    display: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options li.dependent-field .remove {
    display: block;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options li .remove {
    position: absolute;
    opacity: 1;
    right: 7px;
    height: 17px;
    width: 17px;
    line-height: 17px;
    text-align: center;
    top: 8px;
    font-size: 18px;
    padding: 0;
    color: #C10000;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options li .remove:hover {
    background-color: #C10000;
    text-decoration: none;
    color: #fff;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options input[type=checkbox],
[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options input[type=radio] {
    margin: 0 0 3px 3px;
    width: 5%;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options input[type='text'] {
    width: calc(44.5% - 17px);
    margin: 0 1%;
    float: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-field .form-group {
    width: 100%;
    clear: left;
    float: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .field-options .add-area .add {
    clear: both;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .col-md-6 .form-elements,
[id^='frmb-'][id$='-form-wrap'] .frmb .col-md-8 .form-elements {
    width: 100%;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .field-options .add-area .add {
    clear: both;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements {
    padding: 10px 10px 40px;
    background: #f7f7f7;
    border-radius: 3px;
    margin: 12px 0 0;
    border: 1px solid #d7d7d7;
    /* smartphones, Android phones, landscape iPhone */
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .input-wrap {
    width: 73%;
    margin-left: 2%;
    float: left;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .input-wrap > input[type=checkbox] {
    margin-top: 8px;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .btn-group {
    margin-left: 2%;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements input[type='text'],
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements input[type='number'],
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements input[type='date'],
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements input[type='color'],
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements textarea,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements select {
    -webkit-transition: background 250ms ease-in-out;
    transition: background 250ms ease-in-out;
    padding: 6px 12px;
    border: 1px solid #AFAFAB;
    background-color: #fff;
}

@media (max-width: 481px) {
    [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .input-wrap {
        width: 100%;
        margin-left: 0;
        float: none;
    }
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements input[type='number'] {
    width: auto;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .btn-group {
    margin-left: 2%;
}

.col-md-6 [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label,
.col-md-8 [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label, .col-md-6
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label,
.col-md-8
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label {
    display: block;
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label:first-child,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label:first-child {
    width: 25%;
    padding-top: 7px;
    margin-bottom: 0;
    text-align: right;
    font-weight: 700;
    float: left;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-transform: capitalize;
    /* smartphones, Android phones, landscape iPhone */
}

@media (max-width: 481px) {
    [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label:first-child,
    [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label:first-child {
        display: block;
        width: auto;
        float: none;
        text-align: left;
    }

    [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label:first-child.empty-label,
    [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label:first-child.empty-label {
        display: none;
    }
}

[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label.multiple, [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label.required-label, [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label.toggle-label, [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label.roles-label, [id^='frmb-'][id$='-form-wrap'] .frmb .form-elements .false-label.other-label,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label.multiple,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label.required-label,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label.toggle-label,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label.roles-label,
[id^='frmb-'][id$='-form-wrap'] .frmb .form-elements label.other-label {
    text-align: left;
    float: none;
    margin-bottom: -3px;
    font-weight: 400;
    width: calc(81.3333% - 23px);
}

[id^='frmb-'][id$='-form-wrap'].fb-mobile .field-actions {
    opacity: 1;
}

[id^='frmb-'][id$='-form-wrap'] *[tooltip] {
    position: relative;
}

[id^='frmb-'][id$='-form-wrap'] *[tooltip]:hover:after {
    background: #262626;
    background: rgba(0, 0, 0, 0.9);
    border-radius: 5px 5px 5px 0;
    bottom: 23px;
    color: #fff;
    content: attr(tooltip);
    padding: 10px 5px;
    position: absolute;
    z-index: 98;
    left: 2px;
    width: 230px;
    text-shadow: none;
    font-size: 12px;
    line-height: 1.5em;
    cursor: default;
}

[id^='frmb-'][id$='-form-wrap'] *[tooltip]:hover:before {
    border: solid;
    border-color: #222 transparent;
    border-width: 6px 6px 0 6px;
    bottom: 17px;
    content: '';
    left: 2px;
    position: absolute;
    z-index: 99;
    cursor: default;
}

[id^='frmb-'][id$='-form-wrap'] .tooltip-element {
    display: inline;
    visibility: visible;
    color: #fff;
    background: #000;
    width: 16px;
    height: 16px;
    border-radius: 8px;
    display: inline-block;
    text-align: center;
    line-height: 16px;
    margin: 0 5px;
    font-size: 12px;
    cursor: default;
}

.kc-toggle {
    position: relative;
    margin: 4px 0 0 2px;
    width: 60px;
    height: 21px;
    border-radius: 3px;
    cursor: pointer;
    overflow: hidden;
    display: inline-block;
    background: #e9e9e9;
    border: 1px solid #cbcbcb;
    vertical-align: bottom;
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.kc-toggle .kct-inner {
    position: absolute;
    top: 0;
    left: -28px;
    width: 115px;
    height: 100%;
    -webkit-transition: left 150ms ease;
    transition: left 150ms ease;
}

.kc-toggle.on .kct-inner {
    background: #e2e2e2;
    background: -webkit-linear-gradient(top, #e2e2e2 0%, #ffffff 100%);
    background: linear-gradient(to bottom, #e2e2e2 0%, #ffffff 100%);
    left: 0;
}

.kc-toggle input {
    display: none;
    position: absolute;
    z-index: -1;
    opacity: 0;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}

.kc-toggle .kct-on {
    color: #0e880e;
}

.kct-off {
    color: #666;
}

.kct-on, .kct-off, .kct-handle {
    width: 28px;
    height: 100%;
    font-family: Arial, Tahoma, sans-serif;
    font-size: 12px;
    text-align: center;
    line-height: 22px;
    font-weight: bold;
    float: left;
}

.kct-on, .kct-off {
    position: relative;
}

.kct-handle {
    position: relative;
    height: 17px;
    background: #ffffff;
    background: -webkit-linear-gradient(top, #ffffff 0%, #cecece 100%);
    background: linear-gradient(to bottom, #ffffff 0%, #cecece 100%);
    border: 1px solid #999;
    font-weight: 100;
    color: #4b4b4b;
    text-shadow: none;
    border-radius: 3px;
    margin: 1px;
}

[id^='frmb-'][id$='-form-wrap'] * {
    box-sizing: border-box;
}

[id^='frmb-'][id$='-form-wrap'] button,
[id^='frmb-'][id$='-form-wrap'] input,
[id^='frmb-'][id$='-form-wrap'] select,
[id^='frmb-'][id$='-form-wrap'] textarea {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

[id^='frmb-'][id$='-form-wrap'] input {
    line-height: normal;
}

[id^='frmb-'][id$='-form-wrap'] button,
[id^='frmb-'][id$='-form-wrap'] input,
[id^='frmb-'][id$='-form-wrap'] optgroup,
[id^='frmb-'][id$='-form-wrap'] select,
[id^='frmb-'][id$='-form-wrap'] textarea {
    margin: 0;
    font: inherit;
    color: inherit;
}

[id^='frmb-'][id$='-form-wrap'] textarea {
    overflow: auto;
}

[id^='frmb-'][id$='-form-wrap'] button,
[id^='frmb-'][id$='-form-wrap'] input,
[id^='frmb-'][id$='-form-wrap'] select,
[id^='frmb-'][id$='-form-wrap'] textarea {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

[id^='frmb-'][id$='-form-wrap'] textarea {

    width: 400px;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group {
    position: relative;
    display: inline-block;
    vertical-align: middle;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn {
    position: relative;
    float: left;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
    border-radius: 0;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group .btn + .btn,
[id^='frmb-'][id$='-form-wrap'] .btn-group .btn + .btn-group,
[id^='frmb-'][id$='-form-wrap'] .btn-group .btn-group + .btn,
[id^='frmb-'][id$='-form-wrap'] .btn-group .btn-group + .btn-group {
    margin-left: -1px;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn:last-child:not(:first-child),
[id^='frmb-'][id$='-form-wrap'] .btn-group > .dropdown-toggle:not(:first-child),
[id^='frmb-'][id$='-form-wrap'] .btn-group .input-group .form-control:last-child,
[id^='frmb-'][id$='-form-wrap'] .btn-group .input-group-addon:last-child,
[id^='frmb-'][id$='-form-wrap'] .btn-group .input-group-btn:first-child > .btn-group:not(:first-child) > .btn,
[id^='frmb-'][id$='-form-wrap'] .btn-group .input-group-btn:first-child > .btn:not(:first-child),
[id^='frmb-'][id$='-form-wrap'] .btn-group .input-group-btn:last-child > .btn,
[id^='frmb-'][id$='-form-wrap'] .btn-group .input-group-btn:last-child > .btn-group > .btn, [id^='frmb-'][id$='-form-wrap'] .btn-group .input-group-btn:last-child > .dropdown-toggle {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn.active,
[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn:active,
[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn:focus,
[id^='frmb-'][id$='-form-wrap'] .btn-group > .btn:hover {
    z-index: 2;
}

[id^='frmb-'][id$='-form-wrap'] .btn {
    color: #fff;
    display: inline-block;
    padding: 6px 12px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
}

[id^='frmb-'][id$='-form-wrap'] .btn.btn-default {
    color: #333;
    background-color: #fff;
    border-color: #ccc;
}

[id^='frmb-'][id$='-form-wrap'] .btn.btn-lg {
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.3333333;
    border-radius: 6px;
}

[id^='frmb-'][id$='-form-wrap'] .btn.btn-sm {
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px;
}

[id^='frmb-'][id$='-form-wrap'] .btn.btn-xs {
    padding: 1px 5px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px;
}

[id^='frmb-'][id$='-form-wrap'] .btn.active, [id^='frmb-'][id$='-form-wrap'] .btn.btn-active, [id^='frmb-'][id$='-form-wrap'] .btn:active {
    background-image: none;
}

[id^='frmb-'][id$='-form-wrap'] .btn-primary {
    background-color: #337ab7;
    border-color: #2e6da4;
}

[id^='frmb-'][id$='-form-wrap'] .btn-primary:hover, [id^='frmb-'][id$='-form-wrap'] .btn-primary:active, [id^='frmb-'][id$='-form-wrap'] .btn-primary.active, [id^='frmb-'][id$='-form-wrap'] .btn-primary.btn-active {
    background-color: #286090;
    border-color: #204d74;
}

[id^='frmb-'][id$='-form-wrap'] .btn-danger {
    background-color: #d9534f;
    border-color: #d43f3a;
}

[id^='frmb-'][id$='-form-wrap'] .btn-danger:hover, [id^='frmb-'][id$='-form-wrap'] .form-actions .clear-all:hover, .form-actions [id^='frmb-'][id$='-form-wrap'] .clear-all:hover {
    background-color: #c9302c;
    border-color: #ac2925;
}

[id^='frmb-'][id$='-form-wrap'] .btn-default {
    background-color: #fff;
    border-color: #ccc;
}

[id^='frmb-'][id$='-form-wrap'] .btn-success {
    background-color: #5cb85c;
    border-color: #4cae4c;
}

[id^='frmb-'][id$='-form-wrap'] .btn-success:hover {
    background-color: #449d44;
    border-color: #398439;
}

[id^='frmb-'][id$='-form-wrap'] .btn-info {
    background-color: #5bc0de;
    border-color: #46b8da;
}

[id^='frmb-'][id$='-form-wrap'] .btn-info:hover {
    background-color: #31b0d5;
    border-color: #269abc;
}

[id^='frmb-'][id$='-form-wrap'] .btn-warning {
    background-color: #f0ad4e;
    border-color: #eea236;
}

[id^='frmb-'][id$='-form-wrap'] .btn-warning:hover {
    background-color: #ec971f;
    border-color: #d58512;
}

[id^='frmb-'][id$='-form-wrap'] .input-group .form-control:last-child,
[id^='frmb-'][id$='-form-wrap'] .input-group-addon:last-child,
[id^='frmb-'][id$='-form-wrap'] .input-group-btn:first-child > .btn-group:not(:first-child) > .btn,
[id^='frmb-'][id$='-form-wrap'] .input-group-btn:first-child > .btn:not(:first-child),
[id^='frmb-'][id$='-form-wrap'] .input-group-btn:last-child > .btn,
[id^='frmb-'][id$='-form-wrap'] .input-group-btn:last-child > .btn-group > .btn,
[id^='frmb-'][id$='-form-wrap'] .input-group-btn:last-child > .dropdown-toggle {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

[id^='frmb-'][id$='-form-wrap'] .input-group .form-control,
[id^='frmb-'][id$='-form-wrap'] .input-group-addon,
[id^='frmb-'][id$='-form-wrap'] .input-group-btn {
    display: table-cell;
}

[id^='frmb-'][id$='-form-wrap'] .input-group-lg > .form-control,
[id^='frmb-'][id$='-form-wrap'] .input-group-lg > .input-group-addon,
[id^='frmb-'][id$='-form-wrap'] .input-group-lg > .input-group-btn > .btn {
    height: 46px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.3333333;
    border-radius: 6px;
}

[id^='frmb-'][id$='-form-wrap'] .input-group .form-control {
    position: relative;
    z-index: 2;
    float: left;
    width: 100%;
    margin-bottom: 0;
}

[id^='frmb-'][id$='-form-wrap'] .input-group {
    position: relative;
    display: table;
    border-collapse: separate;
}

[id^='frmb-'][id$='-form-wrap'] .form-control,
[id^='frmb-'][id$='-form-wrap'] output {
    font-size: 14px;
    line-height: 1.42857143;
    color: #555;
    display: block;
}

[id^='frmb-'][id$='-form-wrap'] textarea.form-control {
    height: auto;
}

[id^='frmb-'][id$='-form-wrap'] .form-control {
    min-height: 34px;
    display: inline-block;
    width: 100%;
    padding: 6px 12px;
    font-size: 14px;
    line-height: 1.42857143;
    color: #555;
    background-color: #fff;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
    -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
    transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}

[id^='frmb-'][id$='-form-wrap'] li.dependent-field .form-control {
    display: inline-block;
    width: 50%;
}

[id^='frmb-'][id$='-form-wrap'] .form-control:focus {
    border-color: #66afe9;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
}

[id^='frmb-'][id$='-form-wrap'] .form-group {
    margin-bottom: 15px;
}

[id^='frmb-'][id$='-form-wrap'] .btn,
[id^='frmb-'][id$='-form-wrap'] .form-control:not(select) {
    background-image: none;
}

[id^='frmb-'][id$='-form-wrap'] .pull-right {
    float: right !important;
}

[id^='frmb-'][id$='-form-wrap'] .pull-left {
    float: left !important;
}

textarea.idea-template {
    display: none;
    width: 617px;
    color: #fefefe;
    font: 13px/19px courier;
    padding-left: 40px;
    height: 1055px;
}

.template-textarea-wrap {
    display: none;
}

.form-wrap {
    position: relative;
}

.form-wrap:after {
    content: '';
    display: table;
    clear: both;
}

.cb-wrap,
.stage-wrap {
    vertical-align: top;
}

.action-links .action-links-inner {
    overflow: hidden;
    width: 0;
    height: 20px;
    -webkit-transition: width 250ms;
    transition: width 250ms;
}

.action-links .dev-mode-link {
    -webkit-transition: color 250ms;
    transition: color 250ms;
    color: #666;
    cursor: pointer;
    padding-right: 2px;
}

.stage-wrap h4 {
    margin-top: 0;
    color: #666;
}

.action-links a.clear-all:hover,
.del-button:hover,
ul.frmb span.required {
    color: #C10000;
}

.action-links a {
    color: #666;
}

.form-elements input[type=text].error {
    border-radius: 0;
    border: 1px solid #C10000;
}

.form-elements input[type=text].fld-maxlength {
    width: 10%;
}

.form-elements input.field-error {
    background: #fefefe;
    border: 1px solid #afafab;
}

.form-elements label em {
    display: block;
    font-weight: 400;
    font-size: .75em;
}

.form-elements label.maxlength-label {
    line-height: 1em;
}

.form-group .available-roles {
    display: none;
    padding: 10px;
    margin: 10px 0;
    background: #e6e6e6;
    box-shadow: inset 0 0 2px 0 #999;
    /* smartphones, Android phones, landscape iPhone */
}

@media (max-width: 481px) {
    .form-group .available-roles {
        margin-left: 0;
    }
}

.form-elements .available-roles label {
    font-weight: 400;
    width: auto;
    float: none;
    display: inline;
}

.form-elements .available-roles input {
    display: inline;
    top: auto;
}

.form-elements,
.form-group,
.multi-row span,
textarea {
    display: block;
}

.form-elements:after,
.form-group:after {
    content: '.';
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}

.form-elements .field-options div:hover,
.frmb .legend,
.frmb .field-label-container {
    cursor: move;
}

.frmb-tt {
    position: absolute;
    border: 1px solid #262626;
    background-color: #666;
    border-radius: 5px;
    padding: 5px;
    color: #fff;
    z-index: 20;
    text-align: left;
    font-size: 12px;
    pointer-events: none;
}

.frmb-tt:before {
    border-color: #262626 transparent;
    bottom: -11px;
}

.frmb-tt:before, .frmb-tt:after {
    content: '';
    position: absolute;
    border-style: solid;
    border-width: 10px 10px 0;
    border-color: #666 transparent;
    display: block;
    width: 0;
    z-index: 1;
    margin-left: -10px;
    bottom: -10px;
    left: 20px;
}

.frmb-tt a {
    text-decoration: underline;
    color: #fff;
}

.frmb li:hover .del-button,
.frmb li:hover .toggle-form,
.fb-mobile .frmb li .del-button,
.fb-mobile .frmb li .toggle-form {
    opacity: 1;
}

.fresh .frmb .legend .element-info {
    display: inline-block;
    visibility: visible;
    line-height: 12px;
    margin-left: 6px;
}

.frmb-xml pre.ui-dialog-content {
    white-space: pre-wrap;
    white-space: -moz-pre-wrap;
    white-space: -pre-wrap;
    white-space: -o-pre-wrap;
    word-wrap: break-word;
    font-size: 12px;
    padding: 0 30px;
    margin-top: 0;
}

.action-links a.export-xml:hover,
.toggle-form.closed:hover {
    color: #6fc245;
}

a.btn.toggle-form {
    margin-left: 5px;
    opacity: 0;
}

a.btn.toggle-form:hover {
    border-color: #cccccc;
}

a.btn.toggle-form:before {
    margin: 0;
}

.formb-field-vars .copy-var {
    display: inline-block;
    width: 24px;
    height: 24px;
    background: #999;
    text-indent: -9999px;
}

.ite-warning {
    box-shadow: 1px 1px 4px 0 rgba(50, 50, 50, 0.5);
    border-radius: 0;
    border: 1px solid #ddd;
}

.ite-warning .ui-dialog-buttonpane {
    height: 27px;
}

.ite-warning button {
    color: #4479B9;
    margin: 0;
}

.ite-warning button:focus {
    outline: 0;
    font-weight: 700;
}

.ite-warning button.cancel:before {
    content: '|';
    margin-right: 15px;
    padding: 0;
}

.ite-warning .ui-dialog-content {
    padding: 0 15px 10px;
}

.ite-warning .ui-dialog-titlebar-close {
    display: none;
}

.ite-warning .ui-widget-header {
    height: 15px;
}

.ite-warning {
    font-size: 12px;
    line-height: 1.5em;
}

.ite-warning h3 {
    color: #666;
    margin-bottom: 10px;
}

.ite-warning button {
    background: 0 0;
    padding: 2px 5px;
}

.required-asterisk {
    display: none;
    color: #C10000;
}

.ui-button .ui-button-text {
    line-height: 0;
}

.form-builder-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.5);
    display: none;
    z-index: 10;
}

.form-builder-overlay.visible {
    display: block;
}

.form-builder-dialog {
    position: absolute;
    border-radius: 5px;
    background: #fff;
    z-index: 20;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    top: 0;
    left: 0;
    padding: 10px;
    box-shadow: 0 3px 10px #000;
}

.form-builder-dialog h3 {
    margin-top: 0;
}

.form-builder-dialog.data-dialog {
    width: 65%;
    background-color: #23241f;
}

.form-builder-dialog.data-dialog pre {
    background: none;
    border: 0 none;
    box-shadow: none;
    margin: 0;
    color: #f2f2f2;
}

.form-builder-dialog.positioned {
    -webkit-transform: translate(-50%, -100%);
    transform: translate(-50%, -100%);
}

.form-builder-dialog.positioned .button-wrap:before {
    content: '';
    width: 0;
    height: 0;
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
    border-top: 10px solid #fff;
    position: absolute;
    left: 50%;
    top: 100%;
    -webkit-transform: translate(-50%, 10px);
    transform: translate(-50%, 10px);
}

.form-builder-dialog .button-wrap {
    position: relative;
    margin-top: 10px;
    text-align: right;
    clear: both;
}

.form-builder-dialog .button-wrap .btn {
    margin-left: 10px;
}

.admin__scope-old li select:not([multiple]):focus {
    background-image: none;
}

[id^='frmb-'][id$='-form-wrap'] .frmb ol.sortable-options li.dependent-field {
    padding-right: 34px;
}

.amform-layout-two:not(.editing),
.amform-layout-three:not(.editing) {
    width: 100%;
}

.amelement-content .title {
    margin: 0;
}

.frmb .amform-layout-two:not(.editing),
.frmb .amform-layout-three:not(.editing) {
    display: inline-block;
    margin-right: 2%;
    vertical-align: top;
}

.frmb .field-label-container .field-label {
    font-weight: 600;
}
/*phpcs:ignoreFile*/
/*
formBuilder - https://formbuilder.online/
Version: 1.24.2
Author: Kevin Chappell <kevin.b.chappell@gmail.com>
*/
.kc-toggle {
  position: relative;
  margin: 4px 0 0 2px;
  width: 60px;
  height: 21px;
  border-radius: 3px;
  cursor: pointer;
  overflow: hidden;
  display: inline-block;
  background: #e9e9e9;
  border: 1px solid #cbcbcb;
  vertical-align: bottom;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }
  .kc-toggle .kct-inner {
    position: absolute;
    top: 0;
    left: -28px;
    width: 115px;
    height: 100%;
    -webkit-transition: left 150ms ease;
    transition: left 150ms ease; }
  .kc-toggle.on .kct-inner {
    background: #e2e2e2;
    background: -webkit-linear-gradient(top, #e2e2e2 0%, #ffffff 100%);
    background: linear-gradient(to bottom, #e2e2e2 0%, #ffffff 100%);
    left: 0; }

.kc-toggle input {
  display: none;
  position: absolute;
  z-index: -1;
  opacity: 0;
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%; }

.kc-toggle
.kct-on {
  color: #0e880e;
}

.kct-off {
  color: #666; }

.kct-on, .kct-off, .kct-handle {
  width: 28px;
  height: 100%;
  font-family: Arial, Tahoma, sans-serif;
  font-size: 12px;
  text-align: center;
  line-height: 22px;
  font-weight: bold;
  float: left; }

.kct-on, .kct-off {
  position: relative; }

.kct-handle {
  position: relative;
  height: 17px;
  background: #ffffff;
  background: -webkit-linear-gradient(top, #ffffff 0%, #cecece 100%);
  background: linear-gradient(to bottom, #ffffff 0%, #cecece 100%);
  border: 1px solid #999;
  font-weight: 100;
  color: #4b4b4b;
  text-shadow: none;
  border-radius: 3px;
  margin: 1px; }

.rendered-form * {
  box-sizing: border-box; }

.rendered-form button,
.rendered-form input,
.rendered-form select,
.rendered-form textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }

.rendered-form input {
  line-height: normal; }

.rendered-form button,
.rendered-form input,
.rendered-form optgroup,
.rendered-form select,
.rendered-form textarea {
  margin: 0;
  font: inherit;
  color: inherit; }

.rendered-form textarea {
  overflow: auto; }

.rendered-form button,
.rendered-form input,
.rendered-form select,
.rendered-form textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit; }

.rendered-form .btn-group {
  position: relative;
  display: inline-block;
  vertical-align: middle; }
  .rendered-form .btn-group > .btn {
    position: relative;
    float: left; }
  .rendered-form .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0; }
  .rendered-form .btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
    border-radius: 0; }
  .rendered-form .btn-group .btn + .btn,
  .rendered-form .btn-group .btn + .btn-group,
  .rendered-form .btn-group .btn-group + .btn,
  .rendered-form .btn-group .btn-group + .btn-group {
    margin-left: -1px; }
  .rendered-form .btn-group > .btn:last-child:not(:first-child),
  .rendered-form .btn-group > .dropdown-toggle:not(:first-child),
  .rendered-form .btn-group .input-group .form-control:last-child,
  .rendered-form .btn-group .input-group-addon:last-child,
  .rendered-form .btn-group .input-group-btn:first-child > .btn-group:not(:first-child) > .btn,
  .rendered-form .btn-group .input-group-btn:first-child > .btn:not(:first-child),
  .rendered-form .btn-group .input-group-btn:last-child > .btn,
  .rendered-form .btn-group .input-group-btn:last-child > .btn-group > .btn, .rendered-form .btn-group .input-group-btn:last-child > .dropdown-toggle {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0; }
  .rendered-form .btn-group > .btn.active,
  .rendered-form .btn-group > .btn:active,
  .rendered-form .btn-group > .btn:focus,
  .rendered-form .btn-group > .btn:hover {
    z-index: 2; }

.rendered-form .btn {
  color: #fff;
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px; }
  .rendered-form .btn.btn-default {
    color: #333;
    background-color: #fff;
    border-color: #ccc; }
  .rendered-form .btn.btn-lg {
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.3333333;
    border-radius: 6px; }
  .rendered-form .btn.btn-sm {
    padding: 5px 10px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px; }
  .rendered-form .btn.btn-xs {
    padding: 1px 5px;
    font-size: 12px;
    line-height: 1.5;
    border-radius: 3px; }
  .rendered-form .btn.active, .rendered-form .btn.btn-active, .rendered-form .btn:active {
    background-image: none; }

.rendered-form .btn-primary {
  background-color: #337ab7;
  border-color: #2e6da4; }
  .rendered-form .btn-primary:hover, .rendered-form .btn-primary:active, .rendered-form .btn-primary.active, .rendered-form .btn-primary.btn-active {
    background-color: #286090;
    border-color: #204d74; }

.rendered-form .btn-danger {
  background-color: #d9534f;
  border-color: #d43f3a; }
  .rendered-form .btn-danger:hover {
    background-color: #c9302c;
    border-color: #ac2925; }

.rendered-form .btn-default {
  background-color: #fff;
  border-color: #ccc; }

.rendered-form .btn-success {
  background-color: #5cb85c;
  border-color: #4cae4c; }
  .rendered-form .btn-success:hover {
    background-color: #449d44;
    border-color: #398439; }

.rendered-form .btn-info {
  background-color: #5bc0de;
  border-color: #46b8da; }
  .rendered-form .btn-info:hover {
    background-color: #31b0d5;
    border-color: #269abc; }

.rendered-form .btn-warning {
  background-color: #f0ad4e;
  border-color: #eea236; }
  .rendered-form .btn-warning:hover {
    background-color: #ec971f;
    border-color: #d58512; }

.rendered-form .input-group .form-control:last-child,
.rendered-form .input-group-addon:last-child,
.rendered-form .input-group-btn:first-child > .btn-group:not(:first-child) > .btn,
.rendered-form .input-group-btn:first-child > .btn:not(:first-child),
.rendered-form .input-group-btn:last-child > .btn,
.rendered-form .input-group-btn:last-child > .btn-group > .btn,
.rendered-form .input-group-btn:last-child > .dropdown-toggle {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0; }

.rendered-form .input-group .form-control,
.rendered-form .input-group-addon,
.rendered-form .input-group-btn {
  display: table-cell; }

.rendered-form .input-group-lg > .form-control,
.rendered-form .input-group-lg > .input-group-addon,
.rendered-form .input-group-lg > .input-group-btn > .btn {
  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px; }

.rendered-form .input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0; }

.rendered-form .input-group {
  position: relative;
  display: table;
  border-collapse: separate; }

.rendered-form .form-control,
.rendered-form output {
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  display: block;
}

.rendered-form textarea.form-control {
  height: auto; }

/*
.rendered-form .form-control {
  height: 34px;
  display: block;
  width: 100%;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; }
  .rendered-form .form-control:focus {
    border-color: #66afe9;
    outline: 0;
    box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }*/

.rendered-form .fieldset .fields .field.form-group {
  margin-bottom: 15px;
}

.rendered-form .btn {
  background-image: none;
}

.rendered-form .pull-right {
  float: right !important;
}

.rendered-form .pull-left {
  float: left !important;
}

.form-group .required {
  color: #C10000;
}

.form-control.number {
  width: auto;
}

/*   ------------   TOOLTIP   ------------   */
*[tooltip] {
  position: relative;
}

*[tooltip]:hover:after {
  background: #262626;
  background: rgba(0, 0, 0, 0.9);
  border-radius: 5px 5px 5px 0;
  bottom: 23px;
  color: #fff;
  content: attr(tooltip);
  padding: 10px 5px;
  position: absolute;
  z-index: 98;
  left: 2px;
  width: 230px;
  text-shadow: none;
  font-size: 12px;
  line-height: 1.5em; }

*[tooltip]:hover:before {
  border: solid;
  border-color: #222 transparent;
  border-width: 6px 6px 0 6px;
  bottom: 17px;
  content: '';
  left: 2px;
  position: absolute;
  z-index: 99;
}

.tooltip-element {
  color: #fff;
  background: #000;
  width: 16px;
  height: 16px;
  border-radius: 8px;
  display: inline-block;
  text-align: center;
  line-height: 16px;
  margin: 0 5px;
  font-size: 12px;
}

.form-control[type='color'] {
  width: 60px;
  padding: 2px;
  display: inline-block;
}

.form-control[multiple] {
    height: auto;
    background: none;
}

.amform-form .am-customform-depend {
  display: none;
}

.amform-rating-container {
    display: inline-block;
    font-size: 1rem;
}

.amform-rating-container .amform-versiontwo-label {
    float: right;
    width: 30px;
    height: 30px;
    padding: 0;
    margin: 0;
    cursor: pointer;
    color: #ffb300;
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyMDBweCIgaGVpZ2h0PSIyMDBweCIgdmlld0JveD0iMCAwIDIwMCAyMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwMCAyMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPiAgPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB4PSIwIiB5PSIwIgogICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNZ0FBQURJQ0FRQUFBQUhVV1lWQUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk4KQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQUFtSkxSMFFBLzRlUHpMOEFBQUFIZEVsTgpSUWZpQnhJQU9UdGc1emV6QUFBTnlrbEVRVlI0MnUyZGUzQlZ4UjNIZjN2eWd2QXNJVUY4RkJSRlc2c0prU0NSQkRqbkpybVFCSUk2CmplQ2pQbXFoMG82UDF0S3hZNGRxZFdwbGZPS000S01pNGl0MU9qWFZsRWh1ampvNkhWSHJqUFhSZ205RnJJbFdJSmlZNU82dmY4UkEKUXU2OTU3Vzd2N09YKy9rck9YZlA3dTkzdm5mMzd0bnoyOThCeUpBaFE0WU1HVEpreUpCaEJMR2wxQlprR0VMcnNmWjJhaHZFWWxBYgpFSXpzZWxiV2VneTFGU0xSWEJDakRpRDNMR29yaEhwRWJVQVFXc2ZBUWdETUNCSVdjcXBZSGdCVXRCUlNXeUlPclFWaDlRQUFocEczCmpOb1NjZWdzQ01QYWI1MUlvMEdMVVJ2Z24xaHAxcXNEZi9IZWVGSDFIbXA3eEtCeER4a1lzQUFBak55cytpQTFoUW1OQllHNklYK24KemFDbDdaRFZOaVZyTnp0Z1BmKzZjM0pqTjdWTkl0QzJoN0JhTnVUTFpPUVhMS0syU0F6NkNuTElyMGE2ekxRMEhiS2FjaWQzR3VPRwpIc0d2ZGhTdDZxTzJLemlhOXBEQytjUGxBR0FUVDdDb3JSS0Jwb0pBb21sdVdneGE2U1RJc3JXNmVqTUVMVjJ3VDJJekVyaFNWRG1QCjJyTGdhQ2tJSkxrdnp6cWIyckRnYUNrSTFpVTVmaWExWmNIUmNOcHJUNFFPbHAzNE15d3pYNkcyTHhnYTloQ01KcE1qSFo0ZWFpZ0kKUzdHeXl6S0NxR2F0QVl1VGY4cE9iUHMrdFlYQjBFNlFCZVdzSU5YbldacjNFZTBFZ1RxSHp6V2YrdW9uaU1PelFWYlNlaXkxaVVIUQpUSkRZTk9NVXB6STVXZzlhbWduQ25BWXNBTTBYR1RVVHhHbkFBZ0JnNVZ1blVwdnBINjBFYWM1bnBuTXB4bktXVVZ2cUg2MEVHVlBGClJybHlTdU5CU3l0QlhQMkNBQUFzM0RxSjJsYS9wS1VnTER0UDIzMVZHZ215YlJZN3ltMVpmUmNaTlJMRVM3Z29xN2JIVXR2ckQ0MEUKY1RQbEhZU05Hb3lNMXcxdEJHa3RZbVZleXV1NkVLK05JTG5EUWtkZFVOZVNSMjJ6SDdRUnhNdUFCUURBeHViVlVKdnNCMDBFYWNwRgp6NWRYejl0RFRRUVpHVHJxREM2MXM3MmVRNDhtZ25nZHNBQUFqRW00Z05wc0gxWlRHK0FTZjF2V05CeTB0QkNrL2NSRW9hTXVPRk8vCnVETXRCUEhaUDhDWTJqYVgyblRQTmxNYjRBcmZlMnoxaS9iVlFCQjdJcXZ3ZTY1KzBiNGFDSklxZE5UUnZlUHNFbXI3UFZwTWJZQXoKTEZCU0FOMFc0a012U09yUVVXZDBXMlFNdlNEejU2WU9IWFdDbmR3Mms5b0hMNFJla0dBREZvQnUwYjZoRjhUL2xQY0FXazE5UTM0bgp1KzI3T1I4R3I2VnZXdlZIMUo2NEplUTlSRXphcFd5TjdrWkNMb2lBQVF2MG12cUdlc2hxemgvM2hidFl4ZFJ3M2pjMStqbTFOKzRJCmRROFpFeEVoQjRCaFpEZFErK0xhVm1vRFVoRjh5bnZBVFcwR3JYQUw0amFXMTVuSXRnblUzcmdqeElKNENSMTFndVZrTDZIMnh4MGgKRmtSc3BsRmRabG9oRmtUZ2dBVUFFRzNPcC9iSURhRVZwTFVJNWdoMU5IK3NGbWt5UXl1STU5QlJSL1JZaUErdElHTHUwWWZYMkpSTAo3WlF6SVJYRVQraW9FMnhDUVlUYUwyZENLb2lmMEZFWHptb3dhSVZVRUFrREZnQmdRMU1XdFdOT2hGVVFzVlBlUVdjTEovc09LRklGCnM1ZmpHaFl5V1pBWnA4cXBtWC9LT3FpOUcrSHREcmJhN0J6OGp3RzBSMkd6VVVSdDF1RUtib0hMeks2RC96TUFBUHNJMk1JMG1JR2sKRzdnZmZtNXVHbjRzQ3dEZ3dhN3BXNmIxd1lLd0RWM3BEWCtkMVpodGh4NGRjamRzVitBalJscTlOVFBNNEFhNHl1d1plWHpZOHNUVwpTYmtQR05vbXBkQUgzQU9YbWs4ay9tekVlcEY5QmQ1c2FMREVvQy80RWl3M1AwajI2WWhmRGZNT0xNZDNxSTFPVnhENXVoMlZ5ZVZJCkVuWHk1TGp4ZDdQenFJMVBQL2puN0VKemErb3lTWmU0N1l2Z0xqYUcyb1YwQW1Od3Z2bVpVNm1rRTExekU4em1yMU03a1M1Z25GLzcKYkkyekhBNkJjdllvdk1WWVRlMk0vdkNQNEZ6clJYZGxIWi9LdFovRjdtY1RxVjNTR2Z6ci9rdnEvK2UydEl2SHBMRnA3Rkdqbk5vdApQY0Z2NEdyekxpOW51RmdzaVh6STV2TS9JRkk3cHgvNEg1anJUUTRQd2RaMkZXeGhVNmhkMUFsOHNQZG4wZjFlei9JUTJkRTJ4ZGhzCmFKbURTajNZeFZkSEh2SnpwcmRRRzJhdmdSdjg3eG8vWE9DdjlaOVRzOVBmdVo1am4reTUrS2d4bmRybE1NUHY3RmxUKzQzZnMzMEUKbzlrVDRUNm0xVVpLZGZBdjhlSkljNUFhZkVZSDJqK0YyOFJzcGtrbitBdDk1MFkvRGxhSHoyZUU1b2IrT2ZnMjlRVUlFNXp6MzNjdQpEQ3BIb0QyR3pmbGoxeHVYVUYrSWNNQjM4L09xYkJFMUJReG9qcTFnRzJYRUdPb0YvM3ZQaGJXQ3dvc0NSNWpIWmhpUHNkblVsNFFPCjdNTnJyRnRCMkRwRzREaVR5THNkOC9odGgrdkNDbjh2UHMrNlJad2N3dmFwdDlmQkptTXl6VVdoQXgvdlhsbTdWMnlkd2piRnhJNHkKSG1ZYTVzbjFDKzltbDV2M2lhOVhXRFQ0NW4zVE4wOUhxRHc4Z3Uzd0RWNFRhWlZScytCdFk3SDV4aVBpTmpPSEZYNVA1NVdOM1hMcQpGcDdycEswZ2E1TzREQXpoQS9md24wVCtMSzkrS2NsbjdDdnhqK2taYk1lMzl5MlB2aSt6QlNranZubDdPZ2JiSWZKMU95dmt5aUV4ClBWTzZCZHU1Q1hJVGdkUjhXYkdMamZYcEVXeUhzVzh1V0xSYlJVdFNKNm1SQjlJaDJHNGd5RTJOSEFveXl1a2ViTWMvaGhWdWc5eEUKb0NURm43N0JkdDZDM0VTZ0tPZWlqc0YyM29QY1JLQm9vVU8vWURzL1FXNGlVSnFWVko5Z083NjViN1gzSURjUktFNFRxME93bmY4ZwpOeEdvejlzYjhtQTcvaHBmWHJXRHJuMlNSTXJoRGJiajYzdCs1VC9JVFFSRW1hM3R5YkE3ZkwwRTd6Q3ZwTGFCNm5GU1NmamtBSUFRCkJHc1FDUkxPcEsxWWJoOUJiUU9OSUF5V1VUdWVDTU9ndDR0RWtGaTVNWlhhOGNUUTkxd1NRY0tiKzVBdGZPbzd0QmJRREZuaEZTUW4KbnpoSFBJRWdkZ2s3bHRicFZGQ25XeVlRaEg2Y1RtbGRUU3ZwTTA0Q1FhaS9nNmt4UnVjR2VyTm80UFpWTjlnMms1MU02YkF6dEQxWQp1U0FhdkhlempqSkh2UG9oSy9TQ0dPTUxxZ2hiVjl0YzZ6R3NqTTVadDFEZUp5a1dKRWVMZDI1UzVvaFhMRWk0WjFpREdKTUxLOG5hClZ0bFlTeUdFUGhuK0FIUXpMYVdDakc1Z29YOWR4QURzVEtwSGQwb0ZDZmM5K2xEWTBUR2l5WWRDUVZyR2cwWUovNmxtV2dvRkdWV3YKMHlZZXF0NnNVQkE5WmxpREdDZllQeUJwVjFWRFRhT1JkTkhPT3pSOVJKa2doVkZEaTFlZkhvU21SeXNUUko4WjFpQ3NlTnR4Nmx0VgpKTWpHSEtiSjY3T0hrazN3SlZJa3lQR21qaHQyS0hxMUlrRmt6dXF4SzNnZGlXRnpuemxTbnQySlVTTElXbWtCYU5nVi8xSDhlUDZNCm5Ob1p5NVprZDNLVUNMTHdERG5iZFBocjhkTWlEMVg5MTFxRTEyQy9qQmJVejdTVUNDSm5MT2JyZThxLzNjbUI1azN4K2ZpaGhFWVcKYkowazg4cU1SSWtnNHI5bi9FdSt6THA4NkU2T3FuOUFDZitMY011ejh4Uy90VTZCSUxGU05rMXNqZmhpWDRuMTVLRkh6YStzcytPcgpzY2RQalNuYVVqeG9LUkJFN0F5TGM3eXhZMEd5L0xpUnUrT240NzlGdHNlcTdiSHlyczFJVkF4WkFnWEJ6NkRHdkxZeG5yeEUxZXU5CnMzR1R1QmJaS0t5VmRtVVNJRjBRK3lUMlBWRjFZV3R2c1JWektoWGRiMTdNenhkM2Q2SjJwaVZkRUZGak1QYnpYNXVMbzUrN0syMDkKM0ZmSy95bW81ZHFXUERuWEpoSFNCUkh6L2VJZllJVjFzNWY4dURVN084djVuU0xhTnNhTnJwWnpiUksySnJmNjJEUjJXdkJhK0JOcwpsdldTMTdNYWU2MHI0ZzM4eStEdHE1eHBTUmJFQ0J3WWh6MTRtZlZEOHl0L1owZWFXVEYvSWFnTmJLbXRiTSt3WkVHQ2ZyZnc3ZjQ1CjVvWWdOWmlmZEM3RUd6Z1BVZ2NyNFBQRlg1dkVTQldrYlFyTUMzSSsvOU8rMmRYL0NtcEZZOXo4TFZielFCbmgxTVdnU0JYRWFEQjgKMTgvMzhmT3NIeS85V293bGtmYWVZZ3lRd2hLVkJjNUpGY1QvREF0ZlphWFdJeUp0cWUwd2ErTnJzTS9mMmNhUjl1bGlyMDNTbHVSVgpiVThFeTkrWmVIdkhHYWI0dkw4WVdjY3IwR2ZlWFZVekxaazlwSjdsK0hEOGkvaFM4NnJHWGprbVJiYjN6K0srRW9XcnVsK1hLSWlmCjd4Ui9Ia29pZjVQcGNQVWVxNUd2NHA1VDZiTVpiYWZLdEdzUWFZSTA1OE1pYjJkd3pxL3Z0TXhQNUR0dDNjUG04TGU4bnFWbWQ2UTAKUWNZdU1rWjdLYzgvWlJGcmJhcDFYSkdZYjNTVjRmM2V6bEh6S3lKdnlQTDBMbERld29yTloxVTRQTWpTcjgxTGNRWDM4TUlpNDVSbgpUcEJ2bHlSQm1uSlpuZHV5Mk1ldnR1ck5Udm5PSG9yNUdKYmlLKzdMNXlqb0k1SUVLWWl3Q2U1S2luL1BtUmU4dldOT3hhQWxTUkMzClN3MzRlTStzcXBmbHU1bWN4bDdyRjdpRXUrcWZyTXcrV3JZOVVnUlphMkNEY3luZUhWOXBMaGY5MmprL1dFOWpDVDduWEk0eExuMWIKdHhSQkZsUWFoVTVsOEUwb2k5d3IyejIzUkhaMVJQQTY1elZoK2JlSGNvWXNSN1A1dlIxbDFwdXluZk5DWTl6OEhWaTRLM1VwVm1sTApmbjJtSEVGU2RteStseSszVnNwNjdWd1FyT2VnQko5T1ZZSmx1Um1NZ3lCQmtMWXk0NWprbitMTDhWblc0M0tkOG8vWmFTN2h2K1NwClZ0SWtEMW9TQkVtK3hJQ0l0K3lZVi8yZVhKY0NndGF0YkI2K20vVHpxcGJ4TXB1WElFaXkyVHJ2NVBYbTFhdDhQcEZRaWZsS2R5bC8KTFBGblJtNmU2MXRlUHdnWHBQMWtZMmFpNC96Wi91SklpMHhYUkZLNzExckJMK1VKbjFmS25XbUo3eUVKek1VNFgvdGNwT1pUbVk2SQp4N3FmbCtFYkk0K3p4VTJlbGsyOUlWd1FObUpSRVhkeHk3cit1a0J4SHpSVXZkVXhoOTh6d3NNeGhWRjViUW9XSkRhREZROC9nay9GCml5UFB5M05BTG8zZDFpcCtEdTQ1NUxDbmxXeHZDQlprZVAvZ3ZYaVZ1YVRxQzNubXE4QnE2cDNGdHc4N3RHU2pqNGZUN2hBdHlKQmYKRUh3SHpqQnZsMlc0U3FMdjc2emc2dzZ1Q2JNSk02WGxOUklxaUgwMHpCbjhHN2ZzTGJWZWxXVzJhbGIxV1d0d01UOFlleTl0MEJJcQpDSjdGR0FBQWR1RkY1Z1VOKzZSZEh4S3NWbGJNdDMzcnFiUTBtV0tIckxNQkJqWXJtdzlLdlRaRW1KOVowWUVOMkViaEpFblJ2Z0lGCmFTMkNDZ0IrNTRITnl1a0ltamRCSmY5QWl3emQ3U3Z0enBpR0tXYThzMjFDZTFQN0xxbzBtYTVwLzAzc0tHb2JGSHE3c3IwNGVDMFoKTW1USWtDRkRoZ3daMVBCL2loT0haU3U4TWdNQUFBQWxkRVZZZEdSaGRHVTZZM0psWVhSbEFESXdNVGd0TURjdE1UaFVNREE2TlRjNgpOVGt0TURjNk1EQjR6SUdnQUFBQUpYUkZXSFJrWVhSbE9tMXZaR2xtZVFBeU1ERTRMVEEzTFRFNFZEQXdPalUzT2pVNUxUQTNPakF3CkNaRTVIQUFBQUFCSlJVNUVya0pnZ2c9PSIgLz4KPC9zdmc+Cg==');
    background-size: contain;
    background-repeat: no-repeat;
}

.amform-rating-container.radio-group .amform-rating {
    display: none;
}

.amform-rating-container .amform-versiontwo-label:hover,
.amform-rating-container .amform-versiontwo-label:hover ~ .amform-versiontwo-label,
.amform-rating-container .amform-rating:checked ~ .amform-versiontwo-label {
    background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIyMDBweCIgaGVpZ2h0PSIyMDBweCIgdmlld0JveD0iMCAwIDIwMCAyMDAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwMCAyMDAiIHhtbDpzcGFjZT0icHJlc2VydmUiPiAgPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiB4PSIwIiB5PSIwIgogICAgeGxpbms6aHJlZj0iZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFNZ0FBQURJQ0FNQUFBQ2FobDZzQUFBQUJHZEJUVUVBQUxHUEMveGhCUUFBQUNCalNGSk4KQUFCNkpnQUFnSVFBQVBvQUFBQ0E2QUFBZFRBQUFPcGdBQUE2bUFBQUYzQ2N1bEU4QUFBQ2xGQk1WRVVBQUFDOXZiMjV1Ym0vdjcrOQp2YjI1dWJtL3Y3Ky92Nys1dWJtK3ZyNit2cjYydHJhL3Y3Kzl2YjBBQUFDR2hvYS92Nys5dmIyN3U3dSt2cjYrdnI2K3ZyNit2cjY4CnZMeXFxcXE5dmIyOXZiMi92NytxcXFxWm1abS92NysrdnI2L3Y3Kyt2cjYvdjc5L2YzKy92Nys4dkx5L3Y3Kyt2cjY2dXJxL3Y3Ky8KdjcrK3ZyNit2cjYvdjcrOHZMeSt2cjYvdjcrL3Y3Kyt2cjY5dmIyK3ZyNit2cjYrdnI2K3ZyNjR1TGl5c3JLOXZiMi92Nys0dUxpWgptWm0vdjcrN3U3dSt2cjYrdnI2L3Y3Kyt2cjY1dWJtL3Y3KzJ0cmEvdjcrOXZiMi92NysvdjcrK3ZyNit2cjYrdnI1eGNYRzh2THkvCnY3Kyt2cjYvdjcrK3ZyNi92Nys5dmIyOHZMeS92NysvdjcrN3U3dS92NysrdnI2L3Y3Kyt2cjYvdjcrOXZiMnFxcXEvdjcrK3ZyNi8KdjcrK3ZyNi92NysrdnI2K3ZyNi92NysvdjcrL3Y3Kyt2cjYvdjcreXNySy92NysvdjcrK3ZyNi92NysvdjcrK3ZyNnhzYkcvdjcrLwp2NyswdExTK3ZyNi92NzhpSWlLL3Y3Kyt2cjY5dmIyL3Y3KzZ1cnEvdjcrK3ZyNit2cjYvdjcrK3ZyNjd1N3UvdjcrK3ZyNjh2THk5CnZiMjl2YjIrdnI2OHZMeSt2cjYydHJhOXZiMi92NysvdjcrL3Y3Ky92Nys5dmIyOHZMeS92Nys5dmIyL3Y3Kyt2cjYrdnI2L3Y3KysKdnI2K3ZyNi92NysrdnI2L3Y3Kyt2cjY5dmIyL3Y3Kyt2cjYvdjcrbnA2ZTl2YjIvdjcrK3ZyNit2cjYvdjcrL3Y3Kyt2cjY3dTd1OQp2YjIvdjcrNnVycS92NysvdjcrOHZMeS92Nzh6TXpPK3ZyNit2cjYrdnI2L3Y3Kyt2cjYvdjcrK3ZyNit2cjYvdjcrK3ZyNi92Nys5CnZiMi92NysrdnI2L3Y3Kzl2YjIvdjcrK3ZyNit2cjYvdjcrK3ZyNit2cjYrdnI2K3ZyNi92NysrdnI2K3ZyNi92NysrdnI2K3ZyNisKdnI2L3Y3Ky92NysrdnI3L2R3RG1hd0QvLy84bS9GNXlBQUFBMlhSU1RsTUFUaUhLYlIyNGJ3dkJUeFdiWlFIc3R6SVBmbHZKclJjSgpZVkdqQmdWRVI1Q1ozQUlvUFhTLzRSQTBWNGJZS2p0OHo5SWZjMnJGdGhrS2Fic1M2V0F4c24wTVZoYW9CNnhObndSRGxTZnZPWXpkCk1JTFVPaVo0eXg1Y3JzaFNwRWtEMno5WXp0RFJxaFFZdkhzODQ1Y0lzVlFnaWcxSXJ4SEdiUHVndVYxM0pUamZrV2pETGRhZFFWa2oKampWTERodkFaSC9UUGhPelZYQ2hrc1NXdXQ1ZXNLWktuRzVBNWphSVd0b3NVS0lpUnBnYTRJUXUxL2g2ZHMzTU4weXJuaHpDZzBLVQpaaVIxajRIVmdLVzFLNXEwWTNLSDJhY3pYNU12UUJIMUNBQUFBQUZpUzBkRTI1a0VGaFFBQUFBSGRFbE5SUWZpQnhJQU9oNEF6ckEzCkFBQUhTa2xFUVZSNDJ1MmQ5M3RVUlJTR0w3MjZvWVZpUWtoSUJFSlZpaGlrU3BBaTBxV1hwUVJDQUJHRGlnVUlYUkJCcElnZ05sUkUKc0lLQ0tLS0lEVUd4ZS9ocjNFMnlaTXU5ZDg3TW5ablBQTSsrdjkrWjczMWdTODdNT2VzNGFkS2tTWk1tampyb0FKcW9XdytkUUJQMQpxUUU2Z2g0YVVpTjBCQzAwSm1xQ3pxQ0Zwa1RVREIxQ0I4MGpJcmVoUTJnZ2xCRVJhWUZPb1lHV0ZLVVZPa1p3V2xlS3RFSEhDRTVtCnBVaGJkSXpBdEtNcTJxT0RCS1ZEdGNqdDZDQkJhVnN0a29VT0VwQnNpdEVSSFNVWU9iZEVPcUdqQkNQM2xrZ2VPa293T3Q4U3VabVAKemhLRUFxcmhEblNZSUhTSkU4bEZod2xDMXppUmJ1Z3dBU2lrZUxxajQ2alRJMEdrSnpxT09sa0pJcjNRY1pUSnAwUjZvd09wMGlkSgo1RTUwSUZWNkpvbmNoUTZrU3Q4a0VhcUxUcVJHdjJRUDZvK09wTWFBRkpHNzBaSFVHSmdpUXZlZ002bFFsT3BCZzlDaFZLampJbkl2Ck9wUUtlUzRpTkJpZFNvRWhiaUpEMGFua0dlYm1RY1BSc2VRWjRTcEM5NkZ6U1pQcExqSVNuVXVXWW5jUEdvVU9Kc3RRRHhHNkg1MU0Ka3RGZUltUFF5ZVRJOXZLZ3NlaG9jdVI0aXRBNGREWXBjcjFGSGtCbms2S3p0OGg0ZERZWkh2VDJvQWtoZERvSit2dUkwRVIwT2dtNgorb2xNUXFmalUram5RWlBSOGZqMDhCV2hLZWg4YkxMOFJhYWk4M0hKOS9lZ2FlaUFYQjRTaU5CMGRFSW1QVVVpTTlBSm1mUVZpY3hFCkorUXhTK1JCTkF1ZGtjVUFzVWp0dUswNVVDeFNLMjVyRm9rOWlJclJLUm1NNFlqVWh0dWFlUnlSRnVpVURJWndSR3JCYmMxaExBK2EKamM0cFpBUlBaQTQ2cDVDNVBCRXFRZ2NWVU16MG9Ibm9wQUtHY2tYbW81TUtHTTBWb1d4MFZGK3kyUjYwQUozVmx4eStTSE4wVmw5eQorU0lVUm9mMVk2R0V5Q0x0dXk5ZVVxS0pwUkllbEtGcjE1SmxwZFVtblc3S0JQamZrVlZ6d3JxOERCMG1BQWxuOS9rcjBIRlVXVnFRCjlFSlp1UW9kU1ltSFY2ZTg1QWMvZ2c2bHdCclhkNjlHNkZpeXpIM1U0MzI0cGN6SEFKNXk3K2FhdGZQUjRmamNmTXozdzVIOU5SeE4KMlhMQngzeUIxS2N6akJYaXZwclY0OUVoeFhUcncvcnVOUStkVThUalQ3QThIS2ZmT25SVVg1NWtha1FZSnp5cndkRkw3aXcxNXlsMApZQStlYml6bDRUanRua0ZIZG1XOXBFYUUwQVowNkZTV2JKVDNpRkN4Q1IwOGljMnE5d2dMK1ZVcUd3UVozYk1GSGI2R3JjSG0zV3piCmpoYW9abW80a0lmakZPMUFLMFNaOEd4QWpTZzcwUlpFQS9XTXV0azFFK3pSWDlmdHdlem5rQnFUZDJ2U2lQSTh6bVBVSG8wZWpyUDMKQlpESFBxMGFFZkpmUkdqc045SGZlNEIzZ3E2VFBETURiZzRlc3V6eGtoR05LSWR0YW1TYWJPMjFXTUlyTnp2YnhsWUpUMUIrMDBFSApHeDVsTnJwNkxaVHdHT1UzSFpndTRhM2lsZDkwWUxTRXh5Ni82Y0JnQ1UraS9LWURVeVU4eWZLYkRveVU4RjZXTGIvcHdFQUpUNkg4CnBnUGRKYndsdUM0R3JTVzhJOGcyM2xKOUhybEFEYW43V1NLT1FrVmUwZmhmUzNTNmFaTFFCSTBpVzRBaXdtNHFHWTRCUlNicEZDR2IKMzdHU2VGV3J5R3N3anlsYVBlaDFtTWhVdlNLRStLSlZ5VFROSW11Q1IxSml1bVlQZWdNa01rTzNDT3ErZkQzdEltOUNQQnBvOTZEagpFSkczOUl0ZzdzdWJPREY1RytEUnpJQUhIUUdJN0RNaDhnNWdhQXFqdDFpQkU5WTk5aGp4b0hldGk1dzBJL0tlZFJGVEY0ZE9XZlpvCmI4aURXbHNXT1cxS3BNU3l5UHVtUk9nRHF4NGRqWGxRRjZzaUg1b1RXV2RWNUNOekl2U3hSWTk4cWJPUjlYSUhFQU1zaXF5VXlCVTkKTEFqSi9ERlpabEZFNGlKYTlXSEJ4RS80ajFpY2JzeFAxVFQyU0dGYjlqUDJwaHUzNUVZNkduOVhkeEQzcWVIV1JNNHdFNTBKSnp4Mgo5bFBtYzlhbUcvTXVOWCtXTXV5ejhWaWVpSzNweGdXc05BM2RCaDIxWVQxcWE3cnhPVTZZOCs1L3RHNzhuUE93cFdQUkMrSWttNzd3CmVqaDdNMFBrU3lzZS9jUkJMaGI2UEY5SC9QeFhWa1RFRnhzRnA0R1h0Z3BYc0RMZCtHdEJpTzNiUkN1RXZ4R0pYTGJnMFU2UVlRZG4Kdk5GbHdYSHd0eFpFcnZoSE9NbGJwVmtMMzFVeUxCVHFHdm9GdVBBZGQ1blE5NzRtRmNZOUN2MjIvMEhtcE9hRTM1bHd1WEdSMlQ2NwpTdzYzYjdYTWU2bk94a1htZU83ZDVKTDBZajZ2dDdPR1BZbzhkLzR4ckxEY3FaKzhscnRxV01Ucm9teUc0aEZOMFhHUEJmc2FGdm5aCmZkdHJwY29yTHZZd1VXdkw1ZUl4MFN4UVc1cEhVOTBHb3lJTDNMWU0ycGJtM2xTWGFWU2t1Y3VPR3RyU1hKdnE1TjhFK2JqTkg5Y3kKS05hdHFhNitRWkZGS2J0TnU2NW41ZkRWbEtXN0doUkorZXZ1RjMxdGFZdFNtdXJVM3dtRkpNL2c2cUZ6OGRKZmsxYS9ZY3hqZCtKRwo5VFNmeVlSK1Mxei9takdSM3hQMm1hUy9MYTE3NGkvSjZPM1NqZU9QK0YyTVhFbmE4MmY4RmpzTmVWeVBmMHN4ZFJ4ekkyNlRpNGIyCmlCdXUzTnBjVzFydi9UWGJtR25WZFVwaTZ3ODVZRXdqUXZ1YU9lZW5qV3l3SzdiOG9ZTW1QU0tNak8yVVpXVDU4OVdySHphc0VhRnUKN0VjSWpmVHJWbzN0WHZpWGVRL0g2VmhlSldLaVkvZFMxVC8yV2hzZVRteFFySW5weHBWM01mKzJwQkZoK2JIb2htSDlDemV4M1paVwplYWF0WTBKTklzVUJwa0twVXJHSi90Rys2QlhFYjB1MldxYS9DSHh1cjMyUENGZitoV3liSmsyYU5CYjRENHJDSHdENjN5QWZBQUFBCkpYUkZXSFJrWVhSbE9tTnlaV0YwWlFBeU1ERTRMVEEzTFRFNFZEQXdPalU0T2pNd0xUQTNPakF3MmpDV2VRQUFBQ1YwUlZoMFpHRjAKWlRwdGIyUnBabmtBTWpBeE9DMHdOeTB4T0ZRd01EbzFPRG96TUMwd056b3dNS3R0THNVQUFBQUFTVVZPUks1Q1lJST0iIC8+Cjwvc3ZnPgo=');
    background-size: contain;
    background-repeat: no-repeat;
}

.frmb .form-elements .dependent-field select:not(:focus) {
    padding-right: 40px;
}

.amform-no-display {
    display: none;
}

.amform-form .fieldset .fields .amform-layout-two,
.amform-form .fieldset .fields .amform-layout-three {
    margin-right: 2%;
}

.amform-layout-two:last-child,
.amform-layout-three:last-child {
    margin-right: 0;
}

.amform-layout-two:not(.editing) {
    max-width: 48%;
}

.amform-layout-three:not(.editing) {
    max-width: 31%;
}

.circle-theme.amform-form .fields .amform-layout-two,
.circle-theme.amform-form .fields .amform-layout-one {
    margin-right: 2%;
}

.circle-theme.amform-form .fields .amform-layout-three {
    margin-right: 1%;
}

.circle-theme .amform-layout-three:not(.editing) {
    max-width: 32%;
}

.default.amform-form .fields .amform-layout-two,
.default.amform-form .fields .amform-layout-one {
    margin-right: 2%;
}

.default.amform-form .fields .amform-layout-three {
    margin-right: 1%;
}

.default.amform-form .fields .amform-layout-three {
    max-width: 32%;
}
.slick-dots li button:focus,.slick-dots li button:hover,.slick-list:focus{outline:0}.slick-list,.slick-slider,.slick-track{display:block;position:relative}.slick-loading .slick-slide,.slick-loading .slick-track{visibility:hidden}.slick-list{overflow:hidden;margin:0;padding:0}.slick-list.dragging{cursor:pointer;cursor:hand}.slick-slider .slick-list,.slick-slider .slick-track{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slick-track{top:0;left:0;margin:0 auto}.slick-track:after,.slick-track:before{display:table;content:''}.slick-slide,.slick-slide.slick-loading img{display:none}.slick-track:after{clear:both}.slick-slide{float:left;height:100%;min-height:1px;vertical-align:middle}[dir=rtl] .slick-slide{float:right}.slick-slide.dragging img{pointer-events:none}.slick-vertical .slick-slide{display:block;height:auto;border:1px solid transparent}.slick-arrow.slick-hidden{display:none}.slick-loading .slick-list{position:relative;background:0 0}.slick-loading .slick-list:before{position:absolute;top:50%;left:50%;display:block;content:'';border-radius:100%;border-style:solid;border-width:3px;height:25px;width:25px;border-color:rgba(0,0,0,.2);border-top-color:#5c5c5c;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);animation:loading 1s infinite linear}@keyframes loading{0%{-webkit-transform:translate(-50%,-50%) rotate(0);transform:translate(-50%,-50%) rotate(0)}100%{-webkit-transform:translate(-50%,-50%) rotate(359.9deg);transform:translate(-50%,-50%) rotate(359.9deg)}}.slick-next.slick-disabled,.slick-prev.slick-disabled{opacity:.25}.slick-dotted.slick-slider{margin-bottom:30px}.slick-dots{position:absolute;left:0;display:block;width:100%;padding:0;margin:0;list-style:none;text-align:center}.slick-dots li{position:relative;display:inline-block;width:20px;height:20px;margin:0 5px;padding:0;cursor:pointer}.slick-dots li button,.slick-slider .slick-arrow{display:block;cursor:pointer;outline:0;box-shadow:none}.slick-dots li button{font-size:0;line-height:0;width:20px;height:20px;padding:5px;color:transparent;border:0;background:0 0}.slick-dots li button:focus:before,.slick-dots li button:hover:before{opacity:1}.slick-dots li button:before{font-size:16px;line-height:20px;position:absolute;top:0;left:0;width:20px;height:20px;content:'•';text-align:center;opacity:.25;color:#000;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-dots li.slick-active button:before{opacity:.75;color:#000}.slick-slider{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent;padding:0 20px}.slick-slider .slick-arrow{position:absolute;top:50%;padding:0;width:15px;height:22px;font-size:0;line-height:0;-webkit-transform:translate(0,-50%);-moz-transform:translate(0,-50%);-ms-transform:translate(0,-50%);transform:translate(0,-50%);color:transparent;border:none;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0uMi40QTEgMSAwIDAgMSAxLjYuMmwxMiAxMGExIDEgMCAwIDEgMCAxLjZsLTEyIDEwYTEgMSAwIDAgMS0xLjItMS42TDExLjMzMyAxMSAuNCAxLjhBMSAxIDAgMCAxIC4yLjR6IiBmaWxsPSIjQzRDNEM0Ii8+PC9zdmc+) center no-repeat !important;-webkit-transition:background .3s ease;-moz-transition:background .3s ease;-ms-transition:background .3s ease;transition:background .3s ease}.slick-slider .slick-arrow:after,.slick-slider .slick-arrow:before{content:''}.slick-slider .slick-arrow:hover{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMjIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0uMi40QTEgMSAwIDAgMSAxLjYuMmwxMiAxMGExIDEgMCAwIDEgMCAxLjZsLTEyIDEwYTEgMSAwIDAgMS0xLjItMS42TDExLjMzMyAxMSAuNCAxLjhBMSAxIDAgMCAxIC4yLjR6IiBmaWxsPSIjMTYxNjE2Ii8+PC9zdmc+) center no-repeat}.slick-slider .slick-arrow.slick-next{right:0}.slick-slider .slick-arrow.slick-prev{left:0;-webkit-transform:rotate(180deg) translate(0,50%);-moz-transform:rotate(180deg) translate(0,50%);-ms-transform:rotate(180deg) translate(0,50%);transform:rotate(180deg) translate(0,50%)}.slick-initialized .slick-slide{float:none!important;display:inline-block!important;height:auto;}.product-items.slick-slider>.slick-list{padding:15px 0}.product-items.slick-slider .slick-slide .product-item{display:block!important;margin:auto!important;max-width:205px}.sidebar.sidebar-additional{width:100%}/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  overflow-x: hidden;
  height: -webkit-fill-available; }

*,
*:before,
*:after {
  box-sizing: inherit; }

body {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.8rem;
  min-height: 100vh;
  min-height: -webkit-fill-available; }

button,
input,
textarea,
select {
  font-family: inherit; }

/* Hide HTML5 Up and Down arrows. */
input[type='number'] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield; }
  input[type='number']::-webkit-outer-spin-button, input[type='number']::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; }

/* Hide HTML5 'X' in search input */
input[type='search'] {
  /* Clears the 'X' from Internet Explorer */
  /* Clears the 'X' from Chrome */ }
  input[type='search']::-ms-clear, input[type='search']::-ms-reveal {
    display: none;
    width: 0;
    height: 0; }
  input[type='search']::-webkit-search-decoration, input[type='search']::-webkit-search-cancel-button, input[type='search']::-webkit-search-results-button, input[type='search']::-webkit-search-results-decoration {
    display: none; }

.loading-mask[data-role='main-css-loader'] {
  display: none !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 128rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }
  .cs-container--no-padding {
    padding-left: 0;
    padding-right: 0; }
  .cs-container--use-whole-screen .cs-container__inner {
    max-width: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
body,
html {
  height: 100%;
  max-width: 100vw; }

.no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh; }

.no-scroll-child {
  overflow-y: hidden !important; }

#maincontent {
  flex: 1 0 auto;
  background: #edeff1;
  min-width: 100%; }

.page-wrapper {
  display: block !important;
  min-height: 100%; }
  @media (min-width: 48em) {
    .page-wrapper {
      display: flex !important;
      flex-direction: column !important; } }

.columns .column.main {
  width: auto;
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem; }
  @media (min-width: 48em) {
    .columns .column.main {
      padding: 4rem 0 0; } }

.cms-home .columns .column.main {
  padding: 0; }
  @media (min-width: 48em) {
    .cms-home .columns .column.main {
      padding: 0; } }

.page-layout-1column .product-info-wrapper {
  width: 100%; }
  @media (min-width: 48em) {
    .page-layout-1column .product-info-wrapper {
      position: absolute;
      right: 0;
      height: 100%;
      width: 40%; } }
  @media (min-width: 64em) {
    .page-layout-1column .product-info-wrapper {
      width: 30%; } }

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
  .page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f0f0f0; }
  .page-layout-2columns-left .columns {
    display: block; }
  .page-layout-2columns-left .column.main {
    float: right; }
  .page-layout-2columns-left .sidebar-main {
    float: left; } }

a, a:visited {
  color: #7e57c2;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #4d2c91;
  text-decoration: none; }

.gift-options-cart-item {
  display: none; }

@media (min-width: 48em) {
  .paypal-express-review .page-title-wrapper {
    padding: 0 1.5rem; } }

@media (max-width: 63.99em) {
  .paypal-review.view .cs-cart-item__price {
    padding-left: 0 !important; }
  .paypal-review.view .cs-cart-item__subtotal {
    padding-right: 0 !important; } }

@media (min-width: 48em) {
  .paypal-review.view {
    padding: 0 1.5rem; } }

.paypal-express-in-context-mini-cart-container {
  margin-top: 1rem; }

.paypal-review-discount {
  border-bottom: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-navigation {
  display: none; }
  @media (hover: hover) and (pointer: fine) {
    .cs-slider-navigation {
      position: absolute;
      z-index: 11;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.4rem;
      height: 5.2rem;
      border: 0;
      border-radius: 7px;
      background: #fff;
      box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
      padding: 0;
      color: #7e57c2;
      cursor: pointer;
      transition: all 0.3s; }
      .cs-slider-navigation--prev {
        left: 1.5rem; }
      .cs-slider-navigation--next {
        right: 1.5rem; }
      .cs-slider-navigation[disabled] {
        opacity: 0.25;
        cursor: not-allowed; }
        .cs-slider-navigation[disabled] svg {
          filter: grayscale(1); }
      .cs-slider-navigation:not([disabled]):hover {
        box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25); }
      .cs-slider-navigation__icon {
        width: 1.4rem;
        height: 2.7rem;
        fill: currentColor; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  min-height: 3rem; }
  .cs-slider-pagination--fraction {
    gap: 0;
    white-space: pre-wrap;
    color: inherit;
    font-weight: 600; }
    .cs-slider-pagination--fraction span {
      color: #11a099; }
  .cs-slider-pagination__bullet {
    position: relative;
    border-radius: 2px;
    background: #fff;
    border: 0;
    inline-size: 2.2rem;
    block-size: 0.9rem;
    transition: all 0.15s;
    overflow: hidden;
    text-indent: -99rem; }
    .cs-slider-pagination__bullet.current {
      background-color: #11a099; }
    .cs-slider-pagination__bullet:only-child {
      display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */ }
  .cs-addtocart__wrapper {
    overflow: hidden; }
    @supports ((-webkit-clip-path: inset(0 0 0 0 round 200px)) or (clip-path: inset(0 0 0 0 round 200px))) {
      .cs-addtocart__wrapper {
        -webkit-clip-path: inset(0 0 0 0 round 200px);
                clip-path: inset(0 0 0 0 round 200px); } }
    .page-product-downloadable .update .cs-addtocart__wrapper {
      display: none; }
  .cs-addtocart__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-addtocart__button:hover, .cs-addtocart__button:focus, .cs-addtocart__button:active {
      background-color: #7e57c2 !important; }
    .cs-addtocart__button:before, .cs-addtocart__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-addtocart__button:before {
      width: 3.4em;
      border-radius: 0 200px 200px 0;
      z-index: -1;
      background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
    .cs-addtocart__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-addtocart__button:hover:after {
      width: calc(100% + 2px); }
    .cs-addtocart__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-addtocart__button, .cs-addtocart__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-addtocart__button *, .cs-addtocart__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-addtocart__button:hover:not([disabled]) *, .cs-addtocart__button:focus:not([disabled]) *, .cs-addtocart__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-addtocart__button[disabled] {
      /* 
             * ATC btn. in buybox uses deferATCClick()
             * as part of the `Faster Add To Cart` enahncement
             * therefore it's appearance is set to normal all the time.
             */ }
      .cs-buybox .cs-addtocart__button[disabled] {
        opacity: 1; }
    .cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
      fill: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
      fill: #fff; }
  .cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    white-space: nowrap; }
  .cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    max-width: none;
    max-height: none;
    width: 2.2rem;
    height: 2.2rem;
    /* stylelint-disable */
    right: 0.8em;
    /* stylelint-enable */ }
  .cs-addtocart__fail-icon {
    transition: none; }
  .cs-addtocart__button-label, .cs-addtocart__success-label {
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1); }
  .cs-addtocart__button-label {
    display: inline-block;
    transform: translate3d(0, 0, 0); }
  .cs-addtocart__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0) translate3d(-50%, -50%, 0);
    width: 40px;
    height: 10px;
    opacity: 0;
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
    transition-delay: 0.2s; }
    .cs-addtocart__loading-ball {
      position: absolute;
      display: block;
      width: 10px;
      height: 10px;
      bottom: 0;
      background: #fff;
      border-radius: 50%; }
      .cs-addtocart__loading-ball--1 {
        left: 0; }
      .cs-addtocart__loading-ball--2 {
        left: 15px;
        animation-delay: 0.15s !important; }
      .cs-addtocart__loading-ball--3 {
        left: 30px;
        animation-delay: 0.3s !important; }
  .cs-addtocart__feedback-bg {
    position: absolute;
    left: -1em;
    top: -1px;
    bottom: -1px;
    width: calc(100% + 2.5em);
    transform: translate3d(-100%, 0, 0);
    transform-origin: 0 0;
    transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
    background: #31a43a; }
    .cs-addtocart--no-transitions .cs-addtocart__feedback-bg {
      transition: none; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg {
      background: #cc1c10; }
  .cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
    opacity: 0; }
  .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    height: 1.725em;
    transition-delay: 0.2s; }
  .cs-addtocart__success-label, .cs-addtocart__fail-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0) translateX(-2em);
    transition-delay: 0.2s;
    white-space: nowrap;
    padding-right: 3.5rem; }
  .cs-addtocart__minicart {
    width: 100%;
    text-align: center; }
    .cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
      max-width: 128rem;
      width: 100%;
      margin: 0 auto;
      width: 100%;
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      z-index: 400;
      padding: 0;
      text-align: right;
      display: flex;
      justify-content: flex-end; }
      .cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
        right: 0 !important; }
      .cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
        right: 3.2rem !important; }
  .cs-addtocart__minicart--sticky .cs-addtocart__minicart-link,
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    text-align: center;
    padding: 2.5rem 1rem;
    background: #fff;
    box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
    animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
    position: relative; }
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45); }
  .cs-addtocart__minicart-link:before {
    content: none !important; }
  .cs-addtocart__minicart-qty-badge-wrapper {
    position: absolute;
    opacity: 0;
    z-index: 600;
    transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
    pointer-events: none; }
    .cs-addtocart__minicart-qty-badge-wrapper--animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      position: fixed;
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          position: absolute;
          top: 5.3rem; } }
      .cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
        position: fixed;
        top: 1.8rem; }
    .cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
      position: static;
      visibility: visible; }
  .cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
    opacity: 0;
    transform: translate3d(2em, 0, 0); }
  .cs-addtocart--loading .cs-addtocart__loading {
    opacity: 1;
    transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em); }
    .cs-addtocart--loading .cs-addtocart__loading-ball {
      animation: ball-in 1s infinite; }
  .cs-addtocart--done .cs-addtocart__button-icon {
    opacity: 0; }
  .cs-addtocart--done .cs-addtocart__feedback-bg {
    transform: translate3d(0, 0, 0); }
    .cs-addtocart--done .cs-addtocart__feedback-bg:after {
      transform: translate3d(-5.3rem, 0, 0); }
  .cs-addtocart--success .cs-addtocart__success-icon {
    opacity: 1; }
  .cs-addtocart--success .cs-addtocart__success-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--fail .cs-addtocart__fail-icon {
    opacity: 1; }
  .cs-addtocart--fail .cs-addtocart__fail-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--animation-done .cs-addtocart__button-label,
  .cs-addtocart--animation-done .cs-addtocart__button-icon {
    transition-delay: 0.5s; }
  .cs-addtocart--animation-done .cs-addtocart__feedback-bg {
    transition-delay: 0.2s; }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51); }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-label,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
    transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-icon,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition-delay: 0; }

@keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-addtocart .block-minicart {
    margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem; }
  @media (min-width: 64em) {
    .cs-authorization-link {
      padding: 0 0 0 1.3rem;
      margin-left: 1.7rem; } }
  .cs-authorization-link:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    content: '';
    border-left: 0.2rem solid #fff; }
  .cs-authorization-link__link {
    display: flex;
    align-items: center; }
    .cs-authorization-link__link, .cs-authorization-link__link:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
    .cs-authorization-link__link:hover .cs-authorization-link__icon path {
      fill: #888; }
  .cs-authorization-link__icon {
    width: 1.8rem;
    height: 1rem;
    padding-right: 0.5rem; }
    .cs-authorization-link__icon path {
      fill: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(69, 90, 100, 0.17);
  z-index: 200;
  margin-top: -1px; }
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    background: #fff;
    padding: 0.5rem 1rem;
    margin: 0;
    border-bottom: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    transition: background-color 0.15s linear;
    font-size: 1.29rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem; } }
    .cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
      background-color: #f0f0f0;
      cursor: pointer; }
    .cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
      border-bottom: none; }
    .cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
      padding: 0;
      margin-right: 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    .cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
      width: 3.6rem;
      height: 4.5rem; }
    .cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
      flex: 1 1 100%;
      margin: 0; }
      .cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
        height: 5.8rem;
        display: flex;
        flex-direction: column;
        justify-content: center; }
      .cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
        display: block; }
    .cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
      font-size: 1.2rem;
      color: #888; }
    .cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
      font-size: 1.29rem;
      color: #455a64;
      font-weight: 700; }
    .cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
      margin: 0.3rem 0 0; }
  .cs-autocomplete .price-box {
    display: flex; }
    .cs-autocomplete .price-box > .price {
      color: #324dcf;
      font-size: 1.5rem;
      font-weight: 700;
      margin-right: 0; }
    .cs-autocomplete .price-box .old-price > .price {
      text-decoration: line-through;
      color: #a8b1b7;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .special-price > .price {
      color: #e41f12;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .minimal-price-link {
      display: none; }
    .cs-autocomplete .price-box .old-price {
      order: -1; }
      .cs-autocomplete .price-box .old-price .price {
        margin-right: 1rem; }
  .cs-autocomplete__badges {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 1rem; }
  .cs-autocomplete__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 7px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-autocomplete__badge + .cs-autocomplete__badge {
      margin-top: 0.5rem; }
    .cs-autocomplete__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
    .cs-autocomplete__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
  .cs-autocomplete__badge-text {
    line-height: normal; }
    .cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
      margin-left: 0.5rem; }
    @media (min-width: 23.125em) {
      .cs-autocomplete__badge-text {
        white-space: nowrap; } }

.autocomplete-list {
  margin: -1px 0 1rem;
  border-top: 1px solid #dcdcdc; }
  .autocomplete-list:first-child {
    border-top: 0; }
  .autocomplete-list:last-child {
    margin-bottom: 0; }
  .autocomplete-list .amount {
    color: #888;
    font-size: 1.29rem;
    font-weight: 700;
    margin-left: 0.5rem; }
    .autocomplete-list .amount:not(:empty):after {
      content: ')'; }
    .autocomplete-list .amount:not(:empty):before {
      content: '('; }

.autocomplete-list-title {
  padding: 1.2rem 3rem 1rem 1rem;
  border-bottom: none;
  color: #888;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.29rem;
  letter-spacing: 1px;
  margin: 0; }
  .autocomplete-list-title:hover, .autocomplete-list-title.selected {
    background-color: transparent; }
  .autocomplete-list-title:not(:empty):first-child {
    border-top: transparent; }

@media (hover: none) {
  html.autocomplete-dropdown-visible {
    overflow-y: hidden; } }

@media (hover: none) {
  html.autocomplete-dropdown-visible body {
    overflow-y: hidden; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 1.95em 0 0;
    cursor: pointer;
    font-size: 1.6rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #11a099;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0.8em;
      content: ">";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #888; }
    .cs-breadcrumbs__link:visited {
      color: #888; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #455a64; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: #edeff1; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: #edeff1; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-button {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-button:hover, .cs-button:focus, .cs-button:active {
    background-color: #7e57c2 !important; }
  .cs-button:before, .cs-button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-button:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-button:hover:after {
    width: calc(100% + 2px); }
  .cs-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button, .cs-button:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-button *, .cs-button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-button:hover:not([disabled]) *, .cs-button:focus:not([disabled]) *, .cs-button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-button__span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-button__icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }

.cs-button-component {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .cs-button-component:hover, .cs-button-component:focus, .cs-button-component:active {
    background-color: #7e57c2 !important; }
  .cs-button-component:before, .cs-button-component:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button-component:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-button-component:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-button-component:hover:after {
    width: calc(100% + 2px); }
  .cs-button-component::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button-component, .cs-button-component:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-button-component *, .cs-button-component:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-button-component:hover:not([disabled]) *, .cs-button-component:focus:not([disabled]) *, .cs-button-component:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button-component[disabled] {
    opacity: 0.65;
    cursor: auto; }
  @media (min-width: 48em) {
    .cs-button-component {
      margin: 0 0 4rem; } }
  .cs-button-component--skip-spacing {
    margin: 0; }
  .cs-button-component__span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-button-component__icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }
  .cs-button-component__amount:before {
    content: '('; }
  .cs-button-component__amount:after {
    content: ')'; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 128rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }
  .cs-container--no-padding {
    padding-left: 0;
    padding-right: 0; }
  .cs-container--use-whole-screen .cs-container__inner {
    max-width: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #455a64;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center; }
  .cs-cookie-message--shown {
    z-index: 202;
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .cs-cookie-message__inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-left: 8rem; }
    @media (min-width: 48em) {
      .cs-cookie-message__inner {
        flex-direction: row; } }
  .cs-cookie-message__button-wrapper {
    align-self: flex-start; }
    @media (min-width: 48em) {
      .cs-cookie-message__button-wrapper {
        align-self: unset; } }
  .cs-cookie-message__text {
    position: relative;
    margin: 0; }
    .cs-cookie-message__text .block-cms-link.widget,
    .cs-cookie-message__text p {
      margin: 0;
      display: inline; }
    .cs-cookie-message__text a, .cs-cookie-message__text a:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-cookie-message__icon {
    position: absolute;
    left: 0.5rem;
    width: 5.5rem;
    height: 5.5rem;
    top: 50%;
    transform: translateY(-50%); }
    @media (min-width: 48em) {
      .cs-cookie-message__icon {
        top: -3.5rem;
        transform: translateY(0); } }
  .cs-cookie-message__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    white-space: nowrap;
    margin-top: 1.2rem; }
    .cs-cookie-message__button:hover, .cs-cookie-message__button:focus, .cs-cookie-message__button:active {
      background-color: #7e57c2 !important; }
    .cs-cookie-message__button:before, .cs-cookie-message__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-cookie-message__button:before {
      width: 3.4em;
      border-radius: 0 200px 200px 0;
      z-index: -1;
      background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
    .cs-cookie-message__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-cookie-message__button:hover:after {
      width: calc(100% + 2px); }
    .cs-cookie-message__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cookie-message__button, .cs-cookie-message__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-cookie-message__button *, .cs-cookie-message__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-cookie-message__button:hover:not([disabled]) *, .cs-cookie-message__button:focus:not([disabled]) *, .cs-cookie-message__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (min-width: 48em) {
      .cs-cookie-message__button {
        margin-top: 0;
        margin-left: 1.2rem; } }
  .cs-cookie-message__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-cookie-message__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-dailydeal {
  display: none; }
  .cs-dailydeal__header {
    display: flex;
    width: 100%;
    margin: 0 0 0.5rem;
    font-size: 1.2rem;
    justify-content: space-between;
    align-items: flex-start; }
  .cs-dailydeal__title {
    margin: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .cs-dailydeal__items-amount {
    font-weight: 600; }
  .cs-dailydeal__countdown {
    display: flex;
    margin: 0;
    justify-content: stretch;
    align-items: stretch; }
  .cs-dailydeal__countdown-element {
    position: relative;
    z-index: 3;
    width: 100%;
    padding: 0.3rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: none;
    border-radius: 7px; }
    .cs-dailydeal__countdown-element--special {
      width: 50%;
      background: #e41f12;
      z-index: 5; }
    .cs-dailydeal--teaser .cs-dailydeal__countdown-element {
      min-height: 4rem; }
  .cs-dailydeal__countdown-icon {
    width: 1.9rem;
    height: 2.4rem;
    fill: #fff; }
  .cs-dailydeal__countdown-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 600;
    color: #e41f12;
    padding: 2px 0 0; }
  .cs-dailydeal__countdown-label {
    display: block;
    font-size: 1.1rem;
    font-weight: inherit;
    color: #888;
    padding: 2px 0 0; }
  .cs-dailydeal--tile {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 3; }
    .cs-dailydeal--tile .cs-dailydeal__availability {
      position: relative;
      background: #888;
      font-size: 1rem;
      color: #fff;
      padding: 2px 4px;
      z-index: 4;
      font-weight: 300;
      border-radius: 7px; }
    @media (max-width: 599px) {
      .cs-dailydeal--tile .cs-dailydeal__countdown-element {
        margin-left: 0;
        margin-right: 0; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child:not(:only-child) {
          margin-left: 0; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child .cs-dailydeal__countdown-value:after {
          content: none; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element--special {
          width: auto; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special) {
          border-radius: 0;
          width: auto;
          padding: 0; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):before {
            transform: none; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):nth-child(2) {
            padding-left: 1.8rem;
            margin-left: -1rem !important; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):last-child {
            padding-right: 0.8rem;
            border-radius: 0 7px 7px 0; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-value {
        font-size: 1.3rem; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-value:after {
          content: ':'; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-label {
        display: none; } }
  .cs-dailydeal__badge-pdp-icon {
    width: 1.5rem;
    height: 1.5rem;
    z-index: 10;
    fill: #fff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none; } }

@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher {
      position: relative;
      display: inline-flex;
      align-items: center;
      flex-shrink: 0; }
      .cs-dropdown-switcher:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 1.3rem;
        content: '';
        border-left: 0.2rem solid #fff;
        display: block; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher--stores:before {
      display: none; } }
  .cs-dropdown-switcher__option-icon {
    min-width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.6rem;
    margin-bottom: 0.2rem;
    display: inline-block; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
        width: 1.5rem; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .switcher-options {
      display: flex; } }
  .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    border-bottom: 1px #dcdcdc solid;
    position: relative;
    position: relative; }
    .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 0.1rem;
      left: auto;
      background-color: #7e57c2;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      backface-visibility: hidden; }
    .cs-dropdown-switcher__trigger:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 3rem; }
    .cs-dropdown-switcher__trigger:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 2.5rem; }
    .cs-dropdown-switcher__trigger.active:before {
      transform: rotate(-45deg); }
    .cs-dropdown-switcher__trigger.active:after {
      transform: rotate(45deg); }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__trigger {
        height: 100%;
        display: inline-flex;
        align-items: center;
        margin-left: 2rem;
        font-size: 1.1rem;
        font-weight: 400;
        padding: 0 1.5rem 0 0;
        border-bottom: none;
        position: relative; }
        .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 0.7rem;
          height: 0.1rem;
          left: auto;
          background-color: #000;
          transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-dropdown-switcher__trigger:before {
          transform: rotate(45deg) translate3d(0, 0, 0);
          right: 0.5rem; }
        .cs-dropdown-switcher__trigger:after {
          transform: rotate(-45deg) translate3d(0, 0, 0);
          right: 0; }
        .cs-dropdown-switcher__trigger.active:before {
          transform: rotate(-45deg); }
        .cs-dropdown-switcher__trigger.active:after {
          transform: rotate(45deg); } }
    .active .cs-dropdown-switcher__trigger {
      background: transparent;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: none;
      position: relative;
      width: 100%; }
      @media (max-width: 63.99em) {
        .active .cs-dropdown-switcher__trigger {
          padding: 2.4rem 2rem;
          border-style: none; } }
    .cs-dropdown-switcher__trigger-span {
      display: flex;
      align-items: center; }
  .cs-dropdown-switcher__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    list-style: none;
    font-size: 1.1rem;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-color: #f0f0f0;
    border-style: solid;
    border-width: 0 1px 1px;
    width: 100%; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__list {
        background: #fff;
        min-width: 100%;
        position: absolute;
        top: 100%;
        right: -1rem;
        left: 1rem; } }
    .cs-dropdown-switcher__list .cs-dropdown-switcher--currency {
      right: -1rem; }
    .active .cs-dropdown-switcher__list {
      display: block; }
    .cs-dropdown-switcher__list-item {
      margin: 0;
      white-space: nowrap; }
    .cs-dropdown-switcher__list-item-link {
      width: 100%;
      color: #455a64 !important;
      display: flex;
      align-items: center; }
      .cs-dropdown-switcher__list-item-link:hover {
        background-color: #f0f0f0;
        text-decoration: none; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 1.4rem 2rem;
          font-size: 1.4rem; } }
      @media (min-width: 64em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 0.6rem 1.8rem;
          font-size: 1.1rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .cs-field._editing .field-error,
  .cs-input._editing .field-error {
    display: none; }
  .cs-field__control,
  .cs-input__control {
    width: 100%; }
  .cs-field__label,
  .cs-input__label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding-bottom: 0.5rem; }
    .required .cs-field__label:after, .required
    .cs-input__label:after {
      content: ' *';
      color: #e41f12; }
  .cs-field__input, .cs-field__textarea,
  .cs-input__input,
  .cs-input__textarea {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
    .cs-input__input:hover:not([disabled]),
    .cs-input__input:focus:not([disabled]),
    .cs-input__textarea:hover:not([disabled]),
    .cs-input__textarea:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input::placeholder, .cs-field__textarea::placeholder,
    .cs-input__input::placeholder,
    .cs-input__textarea::placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input[disabled], .cs-field__textarea[disabled],
    .cs-input__input[disabled],
    .cs-input__textarea[disabled] {
      opacity: 0.65; }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .cs-field__select,
  .cs-input__select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
    .cs-input__select:-moz-focusring,
    .cs-input__select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
    .cs-input__select:hover:not([disabled]),
    .cs-input__select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-field__select[disabled],
    .cs-input__select[disabled] {
      opacity: 0.65; }
    .cs-field__select option,
    .cs-input__select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .cs-field__radio,
  .cs-input__radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
    .cs-input__radio::-moz-focus-inner,
    .cs-input__radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
    .cs-input__radio:hover:not([disabled]),
    .cs-input__radio:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__radio:checked,
    .cs-input__radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
      .cs-input__radio:checked,
      .cs-input__radio:checked:hover,
      .cs-input__radio:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__radio[disabled],
    .cs-field__radio[disabled] + .label,
    .cs-field__radio[disabled] + .cs-input__label,
    .cs-input__radio[disabled],
    .cs-input__radio[disabled] + .label,
    .cs-input__radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .cs-field__checkbox,
  .cs-input__checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 7px;
    background-size: 1em 1em;
    border-color: #7e57c2; }
    .cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
    .cs-input__checkbox::-moz-focus-inner,
    .cs-input__checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
    .cs-input__checkbox:hover:not([disabled]),
    .cs-input__checkbox:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
      .cs-input__checkbox:checked,
      .cs-input__checkbox:checked:hover,
      .cs-input__checkbox:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__checkbox[disabled],
    .cs-field__checkbox[disabled] + .label,
    .cs-field__checkbox[disabled] + .cs-input__label,
    .cs-input__checkbox[disabled],
    .cs-input__checkbox[disabled] + .label,
    .cs-input__checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%237e57c2' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
    .cs-input__checkbox.mage-error,
    .cs-input__checkbox.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .cs-field__icon,
  .cs-input__icon {
    position: absolute;
    width: 1.3em;
    height: 1.3em;
    right: 0.8em;
    top: 0.8em;
    display: none; }
  .cs-field__note,
  .cs-input__note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }
  .cs-field__error,
  .cs-input__error {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969;
    color: #e41f12; }

.field {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .field._editing .field-error {
    display: none; }
  .field._success:not(._warn) .control {
    position: relative; }
    .field._success:not(._warn) .control:after {
      position: absolute;
      width: 1.3em;
      height: 1.3em;
      right: 0.8em;
      top: 0.8em;
      display: none;
      background: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/check-green.svg") no-repeat center center/contain;
      content: ''; }
  .field .control {
    width: 100%; }
    .field .control > textarea {
      font-size: 1em;
      line-height: 1.275em;
      padding: 0.75em 1em;
      color: #455a64;
      background: #fff;
      border-radius: 200px;
      border: 2px solid #dcdcdc;
      box-shadow: none;
      transition: border-color 0.5s;
      margin: 0 0 0.2em;
      width: 100%;
      background-clip: padding-box;
      font-family: inherit; }
      .field .control > textarea:hover:not([disabled]), .field .control > textarea:focus:not([disabled]) {
        border: 2px solid #7e57c2;
        box-shadow: none; }
      .field .control > textarea::-moz-placeholder {
        opacity: 1;
        color: #888; }
      .field .control > textarea::placeholder {
        opacity: 1;
        color: #888; }
      .field .control > textarea[disabled] {
        opacity: 0.65; }
    .field .control .nested {
      display: flex;
      align-items: center;
      justify-content: space-between; }
      .field .control .nested .field {
        max-width: 48%; }
  .field .label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding-bottom: 0.5rem; }
  .field.choice label.label {
    width: auto;
    margin-bottom: 0; }
  .field.required > .label:after, .field._required > .label:after {
    content: ' *';
    color: #e41f12; }
  .field.required ._required > .label:after {
    display: none; }
  .field .input-text {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .field .input-text:hover:not([disabled]), .field .input-text:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .field .input-text::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .field .input-text::placeholder {
      opacity: 1;
      color: #888; }
    .field .input-text[disabled] {
      opacity: 0.65; }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
    .field .input-text.required-entry {
      margin-bottom: 1rem; }
  .field .select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field .select:-moz-focusring, .field .select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .select:hover:not([disabled]), .field .select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field .select[disabled] {
      opacity: 0.65; }
    .field .select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .field .checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 7px;
    background-size: 1em 1em;
    border-color: #7e57c2; }
    .field .checkbox::-moz-focus-inner, .field .checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .checkbox:hover:not([disabled]), .field .checkbox:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .field .checkbox:checked, .field .checkbox:checked:hover, .field .checkbox:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .field .checkbox[disabled],
    .field .checkbox[disabled] + .label,
    .field .checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%237e57c2' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .field .checkbox.mage-error, .field .checkbox.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .field .radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .field .radio::-moz-focus-inner, .field .radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .radio:hover:not([disabled]), .field .radio:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .field .radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .field .radio:checked, .field .radio:checked:hover, .field .radio:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .field .radio[disabled],
    .field .radio[disabled] + .label,
    .field .radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .field.customer-name-prefix select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field.customer-name-prefix select:-moz-focusring, .field.customer-name-prefix select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field.customer-name-prefix select:hover:not([disabled]), .field.customer-name-prefix select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field.customer-name-prefix select[disabled] {
      opacity: 0.65; }
    .field.customer-name-prefix select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .field.field-dob input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .field.field-dob input:hover:not([disabled]), .field.field-dob input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .field.field-dob input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .field.field-dob input::placeholder {
      opacity: 1;
      color: #888; }
    .field.field-dob input[disabled] {
      opacity: 0.65; }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .field.field-dob button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .field.field-dob button::before, .field.field-dob button::after {
      content: none; }
    .field.field-dob button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .field.field-dob button, .field.field-dob button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .field.field-dob button *, .field.field-dob button:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .field.field-dob button:hover:not([disabled]), .field.field-dob button:focus:not([disabled]), .field.field-dob button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .field.field-dob button:hover:not([disabled]) *, .field.field-dob button:focus:not([disabled]) *, .field.field-dob button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .field.field-dob button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .field.field-dob button span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
  .field._error .input-text, .field._error .input-text:hover:not(:focus),
  .field._error .checkbox,
  .field._error .checkbox:hover:not(:focus) {
    border: 2px solid #e41f12; }
  .field .control._with-tooltip input {
    width: 100%;
    margin-right: 0; }
  .field .field-tooltip {
    position: static; }
    .field .field-tooltip .label,
    .field .field-tooltip .field-tooltip-action {
      display: none; }
    .field .field-tooltip .field-tooltip-content {
      position: static;
      background: none;
      border: none;
      display: block;
      font-size: 0.85em;
      padding: 0.3em 0 0;
      color: #696969; }
      .field .field-tooltip .field-tooltip-content:before, .field .field-tooltip .field-tooltip-content:after {
        display: none; }
  .field .note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }

.field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) {
  position: relative; }
  .field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) .label {
    position: absolute;
    top: -10px;
    left: 20px;
    z-index: 3;
    font-weight: normal;
    padding: 0 5px;
    background: white;
    width: auto; }
    .field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) .label .fieldset .fullname .field .label {
      padding: 0 5px;
      width: auto !important; }

input[name="faktura_elektroniczna"] + label {
  top: 2px !important; }

.field[name="amastyPaymentAttributes.faktura_elektroniczna"] > label {
  top: 2px !important;
  display: none; }

.customer-address-form .field.street .label {
  top: 10px; }

.field.terms .label {
  top: -3px !important;
  left: 24px !important; }

.cs-dashboard .field {
  margin-bottom: 2rem !important; }

.fieldset .fullname .field .label {
  padding: 0 5px;
  width: auto !important; }

div.mage-error:not(._editing),
div.field-error:not(._editing) {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
  color: #e41f12; }

/* stylelint-enable */

/**
 * Footer component customization.
 * @see /Magento_Theme/templates/footer/columns.phtml for templates.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-footer {
  font-size: 1rem;
  color: #455a64;
  background: #fff;
  overflow: hidden;
  padding: 0 0 2rem;
  padding-bottom: 2rem; }
  .cs-footer h3 {
    color: #455a64;
    display: flex;
    margin-top: 0;
    margin-bottom: 0;
    padding-bottom: 2rem;
    min-height: 40px;
    font-size: 2.4rem;
    text-transform: none; }
  .cs-footer p {
    color: #455a64;
    display: grid;
    font-size: 16px; }
    @media (max-width: 47.99em) {
      .cs-footer p {
        justify-content: center; } }
  @media (min-width: 48em) {
    .cs-footer {
      padding: 0 1.5rem; } }
  .cs-footer__content {
    padding: 0; }
    @media (min-width: 48em) {
      .cs-footer__content {
        /*display: flex;*/
        flex-wrap: wrap;
        padding-top: 4rem;
        padding-bottom: 2.5rem; } }
    @media (min-width: 64em) {
      .cs-footer__content {
        flex-wrap: nowrap; } }
  @media (min-width: 64em) {
    .cs-footer__item {
      flex: 1 1; } }
  .cs-footer__item--promo {
    flex-basis: 100%; }
    @media (max-width: 47.99em) {
      .cs-footer__item--promo {
        display: none; } }
    @media (max-width: 63.99em) {
      .cs-footer__item--promo {
        margin-bottom: 1.5rem; } }
    @media (min-width: 64em) {
      .cs-footer__item--promo {
        flex-basis: auto;
        flex-grow: 1; } }
  @media (max-width: 47.99em) {
    .cs-footer__item--links {
      margin-top: 2rem; } }
  @media (min-width: 48em) {
    .cs-footer__item--links {
      display: flex;
      flex-basis: 100%;
      margin-top: 2em;
      justify-content: center; } }
  @media (min-width: 48em) {
    .cs-footer__item--links {
      margin-top: 0; } }
  @media (min-width: 64em) {
    .cs-footer__item--links {
      flex-basis: auto;
      flex-grow: 5; } }
  @media (min-width: 48em) {
    .cs-footer__item--extras {
      display: flex;
      flex-basis: 100%; } }
  @media (min-width: 64em) {
    .cs-footer__item--extras {
      display: block;
      flex-basis: 25%;
      flex-grow: 2; } }
  @media (min-width: 48em) {
    .cs-footer__section {
      flex: 1 1; } }
  @media (min-width: 48em) {
    .cs-footer__section--newsletter {
      flex-grow: 2; } }
  @media (min-width: 64em) {
    .cs-footer__section--socials {
      margin-top: 4rem; } }
  @media (min-width: 64em) {
    .cs-footer__section--stores-switcher {
      margin-top: 4rem;
      max-width: 20rem; } }
  .cs-footer__section .content {
    display: flex;
    flex-direction: column; }
    .cs-footer__section .content .phone {
      font-size: 2rem;
      margin-bottom: 1rem; }
    .cs-footer__section .content .small {
      font-size: 1.3rem;
      font-weight: 700; }
    .cs-footer__section .content .mail {
      margin-top: 1rem;
      font-size: 2rem;
      display: flex;
      padding-left: 4rem;
      position: relative; }
      .cs-footer__section .content .mail:before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/mail-logo.svg");
        display: block;
        width: 30px;
        height: 18px;
        position: absolute;
        left: 0px; }
  @media (max-width: 47.99em) {
    .cs-footer__section--collapsible {
      width: 96%;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 10px;
      padding: 8px 30px 10px;
      border-radius: 23px;
      border: 1px solid #888; } }
  .cs-footer__section-title,
  .cs-footer [data-role='title'] {
    font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.5rem;
    line-height: 1.1;
    color: #455a64;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    position: relative;
    margin: 0;
    color: #455a64;
    font-size: 2rem;
    font-weight: 700;
    text-transform: none; }
    @media (max-width: 47.99em) {
      .cs-footer__section--collapsible .cs-footer__section-title, .cs-footer__section--collapsible
      .cs-footer [data-role='title'] {
        cursor: pointer;
        position: relative; }
        .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 1.2rem;
          height: 0.2rem;
          left: auto;
          background-color: #888;
          transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          right: 1.5rem;
          transform: translate3d(0, -50%, 0) !important; }
        .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
        .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded="true"]:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title'][aria-expanded="true"]:before {
          transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
          opacity: 0; }
        .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded="true"]:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title'][aria-expanded="true"]:after {
          transform: translate3d(0, -50%, 0) rotate(0) !important; }
      .cs-footer__section--socials .cs-footer__section-title, .cs-footer__section--socials
      .cs-footer [data-role='title'] {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }
    @media (min-width: 48em) {
      .cs-footer__section-title,
      .cs-footer [data-role='title'] {
        margin-bottom: 2rem;
        border-top: none;
        padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-footer__section-title,
      .cs-footer [data-role='title'] {
        padding-top: 0;
        padding-right: 0; } }
  .cs-footer__section-content,
  .cs-footer [data-role='content'] {
    padding: 1rem;
    font-size: 1.2em; }
    @media (max-width: 47.99em) {
      .cs-footer__section--collapsible .cs-footer__section-content, .cs-footer__section--collapsible
      .cs-footer [data-role='content'] {
        display: none; } }
    @media (min-width: 48em) {
      .cs-footer__section-content,
      .cs-footer [data-role='content'] {
        padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-footer__section-content,
      .cs-footer [data-role='content'] {
        padding-right: 0;
        padding-bottom: 0; } }
  .cs-footer__shop-logo {
    display: block;
    width: 13.5em;
    height: 2.3em;
    min-width: 13.5em;
    max-width: 100%;
    max-height: 100%; }

.cs-container--footer {
  max-width: none; }

.cs-container--footer-usps .cs-image-teaser__content {
  margin: 0 !important; }

.cs-footer__content .cs-footer__item.cs-footer__item--credentials {
  margin: 2rem 0;
  display: flex;
  justify-content: space-around;
  align-items: center; }
  @media (max-width: 47.99em) {
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials {
      flex-direction: column; } }
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .copyright,
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .author {
    font-size: 16px;
    color: #b0b0b0; }
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .copyright a,
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .author a {
      color: #b0b0b0 !important;
      text-decoration: none; }
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials {
    padding: 8px 30px;
    border: 1px solid #b0b0b0;
    border-radius: 200px; }
    @media (max-width: 47.99em) {
      .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials {
        order: -1;
        border: unset; } }
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials .instagram {
      margin-right: 1rem; }

.cs-footer__content .cs-footer__item.cs-footer__item--links > .cs-footer__section {
  max-width: 100%;
  padding: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-footer-links {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-footer-links__item {
    margin: 0 0 0.3em; }
  .cs-footer-links a, .cs-footer-links a:visited {
    color: #455a64;
    text-decoration: none; }
  .cs-footer-links a:hover, .cs-footer-links a:focus, .cs-footer-links a:active, .cs-footer-links a:visited:hover, .cs-footer-links a:visited:focus {
    color: #4d2c91;
    text-decoration: none; }
  .cs-footer-links a, .cs-footer-links a:visited {
    display: block;
    padding: 0px;
    font-size: 2rem; }
    @media (min-width: 48em) {
      .cs-footer-links a, .cs-footer-links a:visited {
        padding: 0px;
        display: inline-block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-google-recaptcha {
  margin: 1rem 0; }
  .cs-google-recaptcha__badge--invisible .grecaptcha-badge {
    visibility: hidden;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden; }
  .cs-google-recaptcha__note {
    display: inline-block;
    margin: 0;
    font-size: 1.2rem;
    color: #696969; }
    .cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-google-recaptcha--newsletter {
    display: none;
    margin: 1rem 0; }
    .cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
      margin: 0;
      font-size: 1.2rem;
      color: #fff; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
        color: #fff;
        text-decoration: none; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
        color: #fff;
        text-decoration: underline; }
  .cs-google-recaptcha--customer_create {
    margin-top: -2rem; }
  .cs-google-recaptcha--customer_login .g-recaptcha {
    margin-bottom: 0 !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Variables related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 * If you have more elements on top, you have to include their height.
 */
@media (max-width: 63.99em) {
  .cs-container--header {
    padding-left: 0;
    padding-right: 0; } }

/**
     * Styles related to sticky header and topbar on mobile devices.
     * to prevent page jumping when offacnvas (fixed positioned) is opened
     */
@media (max-width: 63.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 8.3rem; } }

@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem; } }

@media (max-width: 63.99em) {
  .cs-container--header {
    position: sticky;
    z-index: 800;
    top: 0;
    /**
                 * Fixed positioning required to work with offcanvas elements.
                 */ }
    .navigation-offcanvas-open.no-scroll .cs-container--header {
      position: fixed; } }

@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0; } }

.cs-header {
  font-size: 1rem;
  height: 5rem; }
  @media (min-width: 48em) {
    .cs-header {
      height: 8.3rem; } }
  @media (min-width: 80em) {
    .cs-header {
      height: 10rem; } }
  .cs-header__content {
    height: 5rem;
    z-index: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    position: relative;
    max-width: 100vw; }
    @media (min-width: 48em) {
      .cs-header__content {
        height: 8.3rem; } }
    @media (min-width: 64em) {
      .cs-header__content {
        border-bottom: unset;
        flex-wrap: nowrap; } }
    @media (min-width: 80em) {
      .cs-header__content {
        height: 10rem; } }
  .cs-header__offcanvas-toggle {
    height: 100%;
    flex: 0 1 4rem; }
    .cs-header__offcanvas-toggle path.st0 {
      fill: #7e57c2 !important; }
    @media (min-width: 64em) {
      .cs-header__offcanvas-toggle {
        display: none; } }
  .cs-header__logo {
    display: flex;
    flex: 1 1;
    margin-bottom: 0;
    height: 100%;
    padding: 0.7rem 0 0.7rem 0rem; }
    @media (min-width: 23.125em) {
      .cs-header__logo {
        padding: 0.7rem 0 0.7rem 0rem; } }
    @media (min-width: 48em) {
      .cs-header__logo {
        flex: 0 1 auto;
        padding: 0; } }
    .page-print .cs-header__logo {
      max-width: 128rem;
      width: 100%;
      margin: 0 auto;
      position: relative;
      height: auto;
      padding: 2rem 0; }
      .page-print .cs-header__logo:after {
        content: '';
        display: table;
        clear: both; }
  .cs-header__search {
    display: none;
    width: 100%;
    background-color: #fff;
    padding: 1rem;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 300;
    top: 100%; }
    @media (min-width: 64em) {
      .cs-header__search {
        flex-grow: 1;
        width: auto;
        padding: 0;
        position: initial;
        margin-left: 2rem !important;
        justify-content: center; } }
    .cs-header__search--active {
      display: flex; }
    @media (min-width: 64em) {
      .cs-header__search {
        display: flex; } }
    @media (min-width: 64em) {
      .cs-header__search {
        position: relative;
        padding: 0;
        top: initial; } }
  .cs-header__user-nav {
    display: flex;
    justify-content: space-between;
    flex: 0 1 30%; }
    @media (min-width: 64em) {
      .cs-header__user-nav {
        flex: 0 1 25%; } }
  .cs-header__back-button {
    border-right: 1px solid #dcdcdc;
    height: 100%;
    display: flex;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    min-width: 4rem; }
    @media (min-width: 23.125em) {
      .cs-header__back-button {
        padding: 0 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__back-button {
        display: none; } }
  .cs-header__back-button-icon {
    fill: #888;
    height: 2.5rem; }
    @media (max-width: 23.115em) {
      .cs-header__back-button-icon {
        height: 2rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-search {
  width: 100%; }
  @media (min-width: 64em) {
    .cs-header-search {
      width: 60%; } }
  .cs-header-search--in-offcanvas {
    position: relative; }
  .cs-header-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__field {
    position: relative; }
    .cs-header-search__field:before, .cs-header-search__field:after {
      content: '';
      position: absolute;
      opacity: 0;
      transition: opacity 0.3s;
      left: -0.5rem;
      right: -0.5rem;
      background: #fff; }
    .cs-header-search__field:before {
      content: '';
      position: absolute;
      box-shadow: unset;
      top: -0.5rem;
      bottom: -0.5rem;
      border-radius: 5px 5px 0 0; }
    .cs-header-search__field:after {
      content: '';
      position: absolute;
      bottom: -1rem;
      top: 100%;
      z-index: 209; }
    .active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
      opacity: 1; }
  .cs-header-search__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    border-color: #7e57c2;
    font-size: 1.6rem;
    position: relative;
    z-index: 210;
    margin: 0;
    -webkit-appearance: none; }
    .cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-header-search__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input[disabled] {
      opacity: 0.65; }
    @media (min-width: 30em) {
      .cs-header-search__input {
        font-size: 1.6rem; } }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
      transform: translateX(100%);
      opacity: 0; }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
      transform: translateX(0);
      opacity: 1; }
  .cs-header-search__action {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 220;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-right-radius: 200px;
    border-bottom-right-radius: 200px; }
  .cs-header-search__close-icon {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 1rem;
    display: block;
    opacity: 0.6;
    transition: opacity 0.3s linear; }
    .cs-header-search__close-icon:hover {
      cursor: pointer;
      opacity: 1; }
    @media (min-width: 64em) {
      .cs-header-search__close-icon {
        display: none; } }
    .cs-header-search__close-icon path {
      fill: #888; }
  .cs-header-search__close-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__button-container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear; }
    .cs-header-search__button-container--search {
      transform: translateX(0); }
    .cs-header-search__button-container--loader {
      transform: translateX(100%); }
  .cs-header-search__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    width: 5rem;
    height: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 200px;
    backface-visibility: hidden;
    transform: translateX(0.7rem);
    background-color: transparent !important; }
    .cs-header-search__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-header-search__button, .cs-header-search__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-header-search__button *, .cs-header-search__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-header-search__button:hover:not([disabled]) *, .cs-header-search__button:focus:not([disabled]) *, .cs-header-search__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-header-search__button[disabled] {
      opacity: 1; }
  .cs-header-search__button-icon {
    transform: translateX(-0.3rem); }
    .cs-header-search__button-icon--search {
      width: 2rem;
      height: 2rem; }
      .cs-header-search__button-icon--search path {
        fill: #7e57c2 !important; }
    .cs-header-search__button-icon--loader {
      stroke: #7e57c2;
      width: 3.2rem;
      height: 3.2rem; }
  .cs-header-search__button-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__autocomplete {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem; }
    @media (max-width: 47.99em) {
      .cs-header-search__autocomplete {
        max-height: calc(100vh - 5rem - 1.275em - 7rem);
        overflow-y: auto; } }
    @media (min-width: 64em) {
      .cs-header-search__autocomplete {
        margin-top: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
        border: 0;
        width: 60%; } }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  @media (min-width: 64em) {
    .cs-header-user-nav {
      padding: 0; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 0 0 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
    .cs-header-user-nav__item--account a {
      max-width: 160px; }
      @media (min-width: 48.01em) {
        .cs-header-user-nav__item--account a {
          min-width: 145px; } }
  .cs-header-user-nav .minicart-wrapper > .cs-header-user-nav__link {
    padding: 0.5rem 1rem;
    border: 2px solid #7e57c2;
    border-radius: 200px; }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-direction: row;
    position: relative;
    width: 100%;
    padding: 0rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #7e57c2; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #4d2c91; }
    .cs-header-user-nav__link--search {
      display: none; }
      @media (min-width: 48em) {
        .cs-header-user-nav__link--search {
          display: flex; } }
      .cs-header-user-nav__link--search:hover {
        cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative;
    margin-left: 10px;
    margin-right: 10px; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #7e57c2; }
  .cs-header-user-nav__label {
    text-transform: unset;
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 0.3rem;
    color: #455a64;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal;
        margin-top: 0.3rem; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 50px;
    padding: 0 0.9rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    opacity: 1;
    transition: opacity 0.3s; }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #11a099;
      color: #455a64;
      transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #fcb739;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #11a099;
      color: #455a64; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
    .cs-header-user-nav__qty-counter--empty::before {
      content: '0';
      width: 0; }
    .cs-header-user-nav__qty-counter--wishlist-cloned {
      position: fixed;
      z-index: 1200;
      right: auto;
      opacity: 1;
      transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--wishlist-animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 3.5rem; } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  85% {
    opacity: 1;
    transform: scale(1.5); }
  95% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }
  .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text {
    font-size: 1.4rem;
    font-weight: 700;
    min-width: 40px;
    display: inline-block; }
    .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text .minicart-amount-text--empty::before {
      content: '0,00 zł'; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 0 0 2em 0;
  margin: 0 0 2em 0;
  margin: 0;
  padding: 0;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-headline {
      margin: 0 0 4rem; } }
  .cs-headline--skip-spacing {
    margin: 0; }
  .cs-headline__title {
    display: block;
    text-align: center;
    align-items: center;
    margin: 0;
    font-size: 2.6em;
    font-weight: 700;
    color: #455a64;
    text-transform: uppercase; }
    @media (min-width: 48em) {
      .cs-headline__title {
        display: flex; } }
    .cs-headline__title:before, .cs-headline__title:after {
      content: '';
      display: none;
      height: 1px;
      flex-grow: 1;
      background-color: #dcdcdc; }
      @media (min-width: 48em) {
        .cs-headline__title:before, .cs-headline__title:after {
          display: flex; } }
    .cs-headline__title:before {
      margin-right: 0.6em; }
    .cs-headline__title:after {
      margin-left: 0.6em; }
  .cs-headline__subtitle {
    color: #888;
    font-size: 2em;
    font-weight: 400;
    text-transform: none;
    margin: 0;
    padding: 2rem 0;
    display: none;
    text-align: center; }
    @media (min-width: 48em) {
      .cs-headline__subtitle {
        display: block; } }

.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001; }

.lazyload[data-bg] {
  opacity: 1; }

.lazyloaded,
.swiper-lazy-loaded {
  opacity: 1;
  transition: opacity 0.2s; }

.cs-image-teaser__image.lazyload:not(.lazyloaded) {
  height: 1px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-left: 0.5rem; }
      .cs-product-tile--list .cs-links-block-addto__item + .cs-links-block-addto__item {
        margin-left: 0;
        margin-top: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    color: #4d2c91;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #4d2c91;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 1.375em;
    height: 1.375em;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #888; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #e41f12; }
    .cs-links-block-addto__icon--compare path {
      fill: #7e57c2; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-logo {
  height: 100%; }
  .cs-logo__image {
    height: 100%; }
    .cs-logo__image--desktop {
      display: none; }
      .checkout-index-index .cs-logo__image--desktop {
        display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--desktop {
          display: block; } }
    .cs-logo__image--mobile {
      display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--mobile {
          display: none; } }
      .checkout-index-index .cs-logo__image--mobile {
        display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.messages {
  max-width: 128rem;
  margin: 0 auto; }

.cs-messages__message,
.message {
  margin: 1rem 0;
  padding: 1.2rem 1rem 1rem;
  border-radius: 7px;
  background-repeat: no-repeat;
  background-position: 1.2rem center;
  background-size: 2rem 2rem;
  padding-left: 4.3rem; }

.message.global.demo {
  text-align: center;
  font-size: 2.4rem;
  font-weight: bold;
  color: white;
  background: red;
  padding: 2rem 1rem;
  border-radius: 0; }

.cs-messages__message--success,
.message.success {
  background-color: #d5efd7;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-success.svg");
  border: none; }

.cs-messages__message--notice,
.message.warning {
  background-color: #fdf4ca;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-warning.svg");
  border: none; }

.cs-messages__message--info,
.message.info,
.message.notice {
  background-color: #fdf4ca;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-info.svg");
  border: none; }

.cs-messages__message--error,
.message.error {
  background-color: #f8d0ce;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-error.svg");
  border: none; }

.cs-messages__text,
.message span {
  color: #696969;
  font-size: 1.4rem; }

.cs-messages--space-top {
  margin-top: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__brand-wrapper {
    text-align: left; }
  .cs-minicart-product__brand {
    font-size: 1.2rem;
    color: #888; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 1.2rem;
    text-align: left;
    font-size: 1.3rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: inherit;
    text-decoration: none;
    color: #455a64;
    font-weight: 600;
    font-weight: 700;
    font-size: 1.4rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #455a64; }
  .cs-minicart-product__item-pricing {
    order: 3; }
    .cs-minicart-product__item-pricing--with-special {
      text-align: left; }
      .cs-minicart-product__item-pricing--with-special .old-price .price {
        font-size: 1.3rem;
        color: #a8b1b7; }
      .cs-minicart-product__item-pricing--with-special .cs-minicart-product__price .price {
        color: #e41f12; }
  .cs-minicart-product__price .price {
    font-size: 1.3rem;
    font-weight: 700;
    color: #455a64; }
  .cs-minicart-product__price .price-including-tax,
  .cs-minicart-product__price .price-excluding-tax {
    font-size: 1.3rem; }
  .cs-minicart-product__price .price {
    font-weight: 400; }
  .cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
    display: none; }
  .cs-minicart-product__options-title {
    font-size: 1.2rem;
    color: #484848;
    cursor: pointer;
    font-size: 1.3rem;
    color: #455a64; }
    .cs-minicart-product__options-title[aria-expanded='true'] > .cs-minicart-product__options-title-svg {
      transform: rotate(180deg);
      vertical-align: initial; }
  .cs-minicart-product__options-title-svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
    transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
    vertical-align: middle; }
  .cs-minicart-product__options-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-top: -0.4rem;
    flex-basis: 100%;
    padding-bottom: 1.2rem; }
  .cs-minicart-product__options-group {
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center; }
    .cs-minicart-product__options-group--qty {
      margin-top: 0.5rem; }
      .cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
        margin-top: 1.5rem; }
  .cs-minicart-product__options-content {
    width: 100%;
    padding-top: 0.5rem; }
  .cs-minicart-product__options-label {
    font-size: 1.2rem;
    color: #888;
    font-weight: 400;
    margin-bottom: 0;
    text-align: left;
    padding-right: 0.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #455a64;
    text-transform: uppercase; }
    .cs-minicart-product__options-label:after {
      content: ':'; }
  .cs-minicart-product__options-value {
    font-size: 1.2rem;
    color: #888;
    margin-bottom: 0;
    width: 100%; }
    .cs-minicart-product__options-value__value {
      display: flex;
      justify-content: space-between;
      width: 100%; }
      .cs-minicart-product__options-value__value .price {
        color: #455a64; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 1rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 3rem;
    width: 4rem;
    max-width: 4rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 0.65; }
  .cs-minicart-product__qty-button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    padding: 0;
    width: 3rem;
    height: 3rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-minicart-product__qty-button *, .cs-minicart-product__qty-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-minicart-product__qty-button:hover:not([disabled]) *, .cs-minicart-product__qty-button:focus:not([disabled]) *, .cs-minicart-product__qty-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-minicart-product__qty-button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    display: none; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #4d2c91; }
  .cs-minicart-product__action-icon {
    width: 1.6rem;
    height: 1.6rem;
    width: 2rem;
    height: 2rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #7e57c2; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #455a64; }
  .cs-minicart-product__options-title-svg * {
    fill: #455a64; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* prettier-ignore */
.cs-minicart__close {
  display: inline-block;
  background: none;
  box-sizing: content-box;
  border: 0;
  box-shadow: none;
  line-height: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-shadow: none;
  font-weight: 400;
  position: absolute;
  right: -1.5rem;
  width: 5rem;
  height: 5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  right: 0.5rem; }
  .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
    background: transparent;
    border: none;
    color: inherit; }

.cs-minicart__close-icon {
  position: relative;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
  display: inline-block; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    content: '';
    position: absolute;
    top: 50%;
    width: 2rem;
    height: 0.2rem;
    left: auto;
    background-color: #484848;
    transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
    backface-visibility: hidden; }
  .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
    background-color: #696969; }
  .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
    background-color: #888; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    right: 1.5rem;
    transform: translate3d(0, -50%, 0) !important; }
  .cs-minicart__close-icon:after {
    transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
  .cs-minicart__close-icon[aria-expanded="true"]:before {
    transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
    opacity: 0; }
  .cs-minicart__close-icon[aria-expanded="true"]:after {
    transform: translate3d(0, -50%, 0) rotate(0) !important; }

.cs-minicart__close-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.cs-minicart__title-wrapper {
  position: relative;
  padding: 2rem 0;
  display: flex;
  color: #455a64;
  font-weight: 700;
  font-size: 1.8rem;
  margin: 0;
  padding: 1rem 2rem;
  font-size: 2.1rem;
  text-transform: uppercase;
  border-bottom: 1px solid #dcdcdc; }

.cs-minicart__items-total {
  margin-left: 0.5rem;
  color: #696969;
  font-weight: 400; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
    content: '('; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
    content: ')'; }
  .cs-minicart__items-total--empty .count {
    display: none; }

.cs-minicart__edit-link {
  font-weight: 700; }
  .cs-minicart__edit-link .cs-link__icon {
    padding: 0 0 0 1rem; }

.cs-minicart__content {
  height: auto !important;
  background-color: #fff;
  position: relative; }
  .cs-minicart__content .load.indicator:before {
    height: unset; }

.cs-minicart__list {
  padding: 0;
  list-style: none;
  margin-bottom: 0; }
  .cs-minicart__list--scroll {
    height: auto !important;
    max-height: calc(100vh - 36rem);
    overflow-y: auto; }
    @media (min-width: 48em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 43rem); } }
    @media (min-width: 64em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 38rem); } }

.cs-minicart__list-item {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 0;
  padding: 1.5rem 2rem; }
  .cs-minicart__list-item:last-child {
    border-bottom: none; }

.cs-minicart__actions-wrapper {
  padding: 2rem 0;
  position: relative;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }

.cs-minicart__actions {
  margin-top: 1rem; }
  .cs-minicart__actions:first-child {
    margin-top: 0; }

.cs-minicart__empty {
  padding: 2rem 0;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center; }

.cs-minicart__subtotal {
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.2rem; }

.cs-minicart__subtotal-price .price {
  font-weight: 700;
  font-size: 1.5rem !important;
  font-size: 2.1rem !important; }

.cs-minicart__button-checkout {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 100%; }
  .cs-minicart__button-checkout:hover, .cs-minicart__button-checkout:focus, .cs-minicart__button-checkout:active {
    background-color: #7e57c2 !important; }
  .cs-minicart__button-checkout:before, .cs-minicart__button-checkout:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-minicart__button-checkout:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-minicart__button-checkout:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-minicart__button-checkout:hover:after {
    width: calc(100% + 2px); }
  .cs-minicart__button-checkout::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-minicart__button-checkout *, .cs-minicart__button-checkout:visited * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-checkout:hover:not([disabled]) *, .cs-minicart__button-checkout:focus:not([disabled]) *, .cs-minicart__button-checkout:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-checkout[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-checkout-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-checkout-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-viewcart {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 100%; }
  .cs-minicart__button-viewcart::before, .cs-minicart__button-viewcart::after {
    content: none; }
  .cs-minicart__button-viewcart::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #7e57c2;
    color: #7e57c2;
    background-color: #fff; }
    .cs-minicart__button-viewcart *, .cs-minicart__button-viewcart:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-viewcart:hover:not([disabled]) *, .cs-minicart__button-viewcart:focus:not([disabled]) *, .cs-minicart__button-viewcart:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-viewcart[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-viewcart-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-minicart__button-carousel-wrapper {
    display: flex;
    justify-content: center;
    padding-top: 3rem;
    margin: 3rem 0;
    border-top: 1px solid #dcdcdc; }
  .cs-minicart__button-carousel::before, .cs-minicart__button-carousel::after {
    content: none; }
  .cs-minicart__button-carousel::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #7e57c2;
    color: #7e57c2;
    background-color: #fff; }
    .cs-minicart__button-carousel *, .cs-minicart__button-carousel:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-carousel:hover:not([disabled]) *, .cs-minicart__button-carousel:focus:not([disabled]) *, .cs-minicart__button-carousel:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-carousel[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-carousel-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    /* stylelint-disable-next-line */ }

.cs-minicart__messages {
  padding: 0 2rem; }

.cs-minicart-offcanvas__wrapper {
  padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(40rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (40rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent; }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 64em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(40rem + (2 * 2rem));
        width: calc(100vw - (40rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
    .cs-minicart__carousel-wrapper .cs-headline__title {
      font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 1.8rem;
      line-height: 1.1;
      color: #455a64;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    --gap: 0.8rem;
    --base-size: calc(100% - 0.8rem);
    --size: var(--base-size);
    /**
     * class-based columns config relates to classnames, like '--items-in-row-4'
     * which are added to elements, depending on the CC Components configuration.
     */
    --size: calc(
            var(--base-size) /
                2 -
                1 *
                var(--gap) /
                2
        );
    /*  container padding fix  */
    margin: 0;
    background: #fff; }
    @media (min-width: 81.875em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
        --base-size: calc(128rem - 0.8rem); }
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen {
        --base-size: 100%;
        max-width: 100%; }
        .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen .cs-minicart__carousel .cs-products-carousel__slides {
          scroll-snap-type: x proximity;
          padding-left: calc((100% - 128rem) / 2);
          padding-right: calc((100% - 128rem) / 2);
          scroll-padding-left: calc((100% - 128rem) / 2);
          scroll-padding-right: calc((100% - 128rem) / 2);
          scroll-margin-left: calc((100vw - 128rem) / 2);
          scroll-margin-right: calc((100vw - 128rem) / 2); } }
    @media (hover: hover) and (pointer: fine) and (min-width: 81.875em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
        --base-size: 128rem; } }
    @media (min-width: 48em) {
      .cs-minicart__carousel .cs-products-carousel {
        --gap: 0.8rem; } }
    @media (min-width: 23.125em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 30em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 48em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 64em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
    @media (min-width: 80em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
    @media (min-width: 90em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
    @media (min-width: 120em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
    @media (max-width: 81.8125em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width .cs-minicart__carousel .cs-products-carousel__slides {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        scroll-padding-left: 1.5rem;
        scroll-padding-right: 1.5rem; } }
    @media (prefers-reduced-motion: no-preference) {
      .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
        scroll-behavior: smooth; } }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides-wrapper {
      position: relative; }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex: 0 0 100%;
      gap: 0;
      flex-wrap: nowrap;
      padding: var(--gap) 0;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      scrollbar-width: thin; }
      @supports (scroll-behavior: smooth) {
        .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
          scroll-snap-type: x mandatory; } }
      @media (min-width: 48em) {
        .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
          overflow: -moz-scrollbars-none;
          scrollbar-width: none; }
          .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar {
            display: none;
            width: 0;
            height: 0;
            background: transparent; }
          .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar-thumb {
            background: transparent;
            width: 0;
            height: 0; } }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
      flex: 0 0 var(--size);
      margin-right: var(--gap);
      scroll-snap-align: start;
      min-width: 0; }
      .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide:last-of-type {
        margin-right: 0; }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__image {
      display: block; }

.minicart-wrapper .ui-dialog {
  display: block !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem; }

.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: none;
  border-radius: 0;
  border: none; }

.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.4rem; }

.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0; }

.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem;
  z-index: 1; }
  .modal-slide .action-close span,
  .modal-popup .action-close span,
  .modal-custom .action-close span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .modal-slide .action-close:before,
  .modal-popup .action-close:before,
  .modal-custom .action-close:before {
    content: none; }

.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 29.99em) {
    .modal-slide .modal-footer,
    .modal-popup .modal-footer,
    .modal-custom .modal-footer {
      flex-wrap: wrap; } }
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary,
  .modal-popup .modal-footer .action-primary,
  .modal-popup .modal-footer .primary,
  .modal-custom .modal-footer .action-primary,
  .modal-custom .modal-footer .primary {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-primary::-moz-focus-inner,
    .modal-slide .modal-footer .primary::-moz-focus-inner,
    .modal-popup .modal-footer .action-primary::-moz-focus-inner,
    .modal-popup .modal-footer .primary::-moz-focus-inner,
    .modal-custom .modal-footer .action-primary::-moz-focus-inner,
    .modal-custom .modal-footer .primary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
    .modal-slide .modal-footer .primary,
    .modal-slide .modal-footer .primary:visited,
    .modal-popup .modal-footer .action-primary,
    .modal-popup .modal-footer .action-primary:visited,
    .modal-popup .modal-footer .primary,
    .modal-popup .modal-footer .primary:visited,
    .modal-custom .modal-footer .action-primary,
    .modal-custom .modal-footer .action-primary:visited,
    .modal-custom .modal-footer .primary,
    .modal-custom .modal-footer .primary:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .modal-slide .modal-footer .action-primary *, .modal-slide .modal-footer .action-primary:visited *,
      .modal-slide .modal-footer .primary *,
      .modal-slide .modal-footer .primary:visited *,
      .modal-popup .modal-footer .action-primary *,
      .modal-popup .modal-footer .action-primary:visited *,
      .modal-popup .modal-footer .primary *,
      .modal-popup .modal-footer .primary:visited *,
      .modal-custom .modal-footer .action-primary *,
      .modal-custom .modal-footer .action-primary:visited *,
      .modal-custom .modal-footer .primary *,
      .modal-custom .modal-footer .primary:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]),
    .modal-slide .modal-footer .primary:hover:not([disabled]),
    .modal-slide .modal-footer .primary:focus:not([disabled]),
    .modal-slide .modal-footer .primary:active:not([disabled]),
    .modal-popup .modal-footer .action-primary:hover:not([disabled]),
    .modal-popup .modal-footer .action-primary:focus:not([disabled]),
    .modal-popup .modal-footer .action-primary:active:not([disabled]),
    .modal-popup .modal-footer .primary:hover:not([disabled]),
    .modal-popup .modal-footer .primary:focus:not([disabled]),
    .modal-popup .modal-footer .primary:active:not([disabled]),
    .modal-custom .modal-footer .action-primary:hover:not([disabled]),
    .modal-custom .modal-footer .action-primary:focus:not([disabled]),
    .modal-custom .modal-footer .action-primary:active:not([disabled]),
    .modal-custom .modal-footer .primary:hover:not([disabled]),
    .modal-custom .modal-footer .primary:focus:not([disabled]),
    .modal-custom .modal-footer .primary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer .action-primary:hover:not([disabled]) *, .modal-slide .modal-footer .action-primary:focus:not([disabled]) *, .modal-slide .modal-footer .action-primary:active:not([disabled]) *,
      .modal-slide .modal-footer .primary:hover:not([disabled]) *,
      .modal-slide .modal-footer .primary:focus:not([disabled]) *,
      .modal-slide .modal-footer .primary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:active:not([disabled]) *,
      .modal-popup .modal-footer .primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .primary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:active:not([disabled]) *,
      .modal-custom .modal-footer .primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .primary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary[disabled],
    .modal-slide .modal-footer .primary[disabled],
    .modal-popup .modal-footer .action-primary[disabled],
    .modal-popup .modal-footer .primary[disabled],
    .modal-custom .modal-footer .action-primary[disabled],
    .modal-custom .modal-footer .primary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-primary,
      .modal-slide .modal-footer .primary,
      .modal-popup .modal-footer .action-primary,
      .modal-popup .modal-footer .primary,
      .modal-custom .modal-footer .action-primary,
      .modal-custom .modal-footer .primary {
        width: 100%; } }
    .modal-slide .modal-footer .action-primary span,
    .modal-slide .modal-footer .primary span,
    .modal-popup .modal-footer .action-primary span,
    .modal-popup .modal-footer .primary span,
    .modal-custom .modal-footer .action-primary span,
    .modal-custom .modal-footer .primary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary,
  .modal-popup .modal-footer .action-secondary,
  .modal-popup .modal-footer .secondary,
  .modal-custom .modal-footer .action-secondary,
  .modal-custom .modal-footer .secondary {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
    .modal-slide .modal-footer .secondary::-moz-focus-inner,
    .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
    .modal-popup .modal-footer .secondary::-moz-focus-inner,
    .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
    .modal-custom .modal-footer .secondary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
    .modal-slide .modal-footer .secondary,
    .modal-slide .modal-footer .secondary:visited,
    .modal-popup .modal-footer .action-secondary,
    .modal-popup .modal-footer .action-secondary:visited,
    .modal-popup .modal-footer .secondary,
    .modal-popup .modal-footer .secondary:visited,
    .modal-custom .modal-footer .action-secondary,
    .modal-custom .modal-footer .action-secondary:visited,
    .modal-custom .modal-footer .secondary,
    .modal-custom .modal-footer .secondary:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .modal-slide .modal-footer .action-secondary *, .modal-slide .modal-footer .action-secondary:visited *,
      .modal-slide .modal-footer .secondary *,
      .modal-slide .modal-footer .secondary:visited *,
      .modal-popup .modal-footer .action-secondary *,
      .modal-popup .modal-footer .action-secondary:visited *,
      .modal-popup .modal-footer .secondary *,
      .modal-popup .modal-footer .secondary:visited *,
      .modal-custom .modal-footer .action-secondary *,
      .modal-custom .modal-footer .action-secondary:visited *,
      .modal-custom .modal-footer .secondary *,
      .modal-custom .modal-footer .secondary:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]),
    .modal-slide .modal-footer .secondary:hover:not([disabled]),
    .modal-slide .modal-footer .secondary:focus:not([disabled]),
    .modal-slide .modal-footer .secondary:active:not([disabled]),
    .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
    .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
    .modal-popup .modal-footer .action-secondary:active:not([disabled]),
    .modal-popup .modal-footer .secondary:hover:not([disabled]),
    .modal-popup .modal-footer .secondary:focus:not([disabled]),
    .modal-popup .modal-footer .secondary:active:not([disabled]),
    .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
    .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
    .modal-custom .modal-footer .action-secondary:active:not([disabled]),
    .modal-custom .modal-footer .secondary:hover:not([disabled]),
    .modal-custom .modal-footer .secondary:focus:not([disabled]),
    .modal-custom .modal-footer .secondary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, .modal-slide .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-slide .modal-footer .secondary:hover:not([disabled]) *,
      .modal-slide .modal-footer .secondary:focus:not([disabled]) *,
      .modal-slide .modal-footer .secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .secondary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-secondary[disabled],
    .modal-slide .modal-footer .secondary[disabled],
    .modal-popup .modal-footer .action-secondary[disabled],
    .modal-popup .modal-footer .secondary[disabled],
    .modal-custom .modal-footer .action-secondary[disabled],
    .modal-custom .modal-footer .secondary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-secondary,
      .modal-slide .modal-footer .secondary,
      .modal-popup .modal-footer .action-secondary,
      .modal-popup .modal-footer .secondary,
      .modal-custom .modal-footer .action-secondary,
      .modal-custom .modal-footer .secondary {
        width: 100%;
        margin-bottom: 1.5rem !important; } }
    .modal-slide .modal-footer .action-secondary span,
    .modal-slide .modal-footer .secondary span,
    .modal-popup .modal-footer .action-secondary span,
    .modal-popup .modal-footer .secondary span,
    .modal-custom .modal-footer .action-secondary span,
    .modal-custom .modal-footer .secondary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
    body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index
    .modal-slide .modal-footer .secondary, body.checkout-index-index
    .modal-popup .modal-footer .action-secondary, body.checkout-index-index
    .modal-popup .modal-footer .secondary, body.checkout-index-index
    .modal-custom .modal-footer .action-secondary, body.checkout-index-index
    .modal-custom .modal-footer .secondary {
      display: inline-block;
      font-size: 1.8rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      min-width: 12rem; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-slide .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .secondary::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-slide .modal-footer .secondary, body.checkout-index-index
      .modal-slide .modal-footer .secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .secondary, body.checkout-index-index
      .modal-popup .modal-footer .secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .secondary, body.checkout-index-index
      .modal-custom .modal-footer .secondary:visited {
        cursor: pointer;
        border-radius: 200px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #7e57c2;
        color: #7e57c2;
        background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-slide .modal-footer .secondary *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .secondary *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .secondary *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited * {
          color: #7e57c2;
          fill: #7e57c2; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #4d2c91;
        color: #fff;
        background-color: #4d2c91; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-slide .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .secondary[disabled] {
        opacity: 0.65;
        cursor: auto; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary span, body.checkout-index-index
      .modal-slide .modal-footer .secondary span, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary span, body.checkout-index-index
      .modal-popup .modal-footer .secondary span, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary span, body.checkout-index-index
      .modal-custom .modal-footer .secondary span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal; }
  .modal-slide .modal-footer button:only-child,
  .modal-popup .modal-footer button:only-child,
  .modal-custom .modal-footer button:only-child {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer button:only-child::-moz-focus-inner,
    .modal-popup .modal-footer button:only-child::-moz-focus-inner,
    .modal-custom .modal-footer button:only-child::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
    .modal-popup .modal-footer button:only-child,
    .modal-popup .modal-footer button:only-child:visited,
    .modal-custom .modal-footer button:only-child,
    .modal-custom .modal-footer button:only-child:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .modal-slide .modal-footer button:only-child *, .modal-slide .modal-footer button:only-child:visited *,
      .modal-popup .modal-footer button:only-child *,
      .modal-popup .modal-footer button:only-child:visited *,
      .modal-custom .modal-footer button:only-child *,
      .modal-custom .modal-footer button:only-child:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]),
    .modal-popup .modal-footer button:only-child:hover:not([disabled]),
    .modal-popup .modal-footer button:only-child:focus:not([disabled]),
    .modal-popup .modal-footer button:only-child:active:not([disabled]),
    .modal-custom .modal-footer button:only-child:hover:not([disabled]),
    .modal-custom .modal-footer button:only-child:focus:not([disabled]),
    .modal-custom .modal-footer button:only-child:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer button:only-child:hover:not([disabled]) *, .modal-slide .modal-footer button:only-child:focus:not([disabled]) *, .modal-slide .modal-footer button:only-child:active:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:active:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child[disabled],
    .modal-popup .modal-footer button:only-child[disabled],
    .modal-custom .modal-footer button:only-child[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .modal-slide .modal-footer button:only-child span,
    .modal-popup .modal-footer button:only-child span,
    .modal-custom .modal-footer button:only-child span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }

.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0; }

@media (max-width: 47.99em) {
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #fff; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary {
    width: 100%; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important; } }

.modal-popup {
  pointer-events: none;
  touch-action: none; }

.page-layout-checkout .modal-popup:not(._inner-scroll) {
  pointer-events: auto; }

@media (min-width: 48em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%); } }

.modals-overlay {
  background-color: rgba(0, 0, 0, 0.7); }

body._has-modal.modal-no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh;
  overflow: initial; }

/* stylelint-enable */

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-navigation {
  box-sizing: border-box;
  font-size: 1.2rem; }
  .cs-navigation__list {
    list-style: none;
    padding: 0;
    margin: 0; }
    .cs-navigation__list--main {
      position: relative;
      display: flex;
      flex-wrap: nowrap;
      justify-content: center; }
      .cs-navigation__list--main .cs-navigation__item--main:nth-child(6) a {
        color: #7e57c2; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(6) a::before {
          content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/pdf.svg");
          display: inline-block;
          width: 14px;
          height: 14px;
          margin-right: 4px; }
      .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a {
        color: #7B9643; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a::before {
          content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/pdf-green.svg");
          display: inline-block;
          width: 14px;
          height: 14px;
          margin-right: 4px; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a:hover {
          color: #7B9643; }
    .cs-navigation__list--all-categories {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_1 {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_2 {
      flex-wrap: wrap; }
    .cs-navigation__list--hidden {
      display: none; }
      .cs-navigation__list--hidden + .cs-navigation__extras {
        display: none; }
    .cs-navigation__list .cs-navigation__item--no-children:nth-child(2) {
      padding-top: 1rem; }
    .cs-navigation__list .cs-navigation__item--no-children:last-of-type {
      padding-bottom: 1rem; }
  .cs-navigation__item {
    font-size: 1.2rem;
    margin: 0;
    width: 100%; }
    .cs-navigation__item--active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item.active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item:hover:not([data-category-identifier='all-categories']) > .cs-navigation__link {
      color: #7e57c2; }
    .cs-navigation__item--main {
      width: auto;
      font-size: 1.6em; }
      .cs-navigation__item--main:first-of-type > .cs-navigation__link:not(.cs-navigation__link--with-icon) {
        padding-left: 0; }
      .cs-navigation__item--main:last-of-type > .cs-navigation__link {
        padding-right: 0; }
    .cs-navigation__item--all-categories {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--level_1 {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--hidden {
      display: none; }
  .cs-navigation__link {
    display: block;
    text-transform: none;
    padding: 1rem 4rem;
    width: 100%; }
    .cs-navigation__link, .cs-navigation__link:visited {
      color: #455a64; }
    .cs-navigation__link:hover {
      text-decoration: none;
      color: #7e57c2; }
      .cs-navigation__link:hover .cs-navigation__link-icon--svg path {
        fill: #7e57c2; }
    .cs-navigation__link--main {
      font-weight: 700; }
    .cs-navigation__link--all-categories {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_1 {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 0.5rem;
      padding-left: 1rem;
      padding-right: 1rem;
      font-size: 1.4rem; }
    .cs-navigation__link--level_2 {
      text-transform: none;
      font-size: 1.4rem;
      padding-left: 1rem;
      padding-right: 1rem; }
    .cs-navigation__link--with-icon {
      position: relative;
      padding-left: 3rem; }
    .cs-navigation__link-icon-wrapper {
      position: absolute;
      width: 2rem;
      height: 2rem;
      top: 0;
      left: 0;
      margin-top: 0.8em; }
    .cs-navigation__link-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0);
      height: 2rem;
      width: 2rem; }
      .cs-navigation__link--category .cs-navigation__link-icon {
        margin-top: -0.5rem; }
      .cs-navigation__link-icon--svg path {
        fill: #484848; }
    .cs-navigation__link-products-qty:before {
      content: '('; }
    .cs-navigation__link-products-qty:after {
      content: ')'; }
  .cs-navigation .cs-navigation__item--no-children {
    padding: 0; }
  .cs-navigation .cs-navigation__item--no-children > .cs-navigation__link--level_1 {
    text-transform: none;
    font-size: 1.12em;
    font-weight: 400;
    padding: 0.9em 1.5em;
    border: none;
    color: #455a64; }
  .cs-navigation__flyout {
    position: absolute;
    display: none;
    background: #fff;
    left: 0;
    backface-visibility: hidden;
    z-index: 1001;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
    margin-top: -1px; }
    .cs-navigation__flyout--visible {
      display: flex; }
    .cs-navigation__flyout svg {
      pointer-events: none; }
    @supports (-ms-ime-align: auto) {
      .cs-navigation__flyout li {
        list-style: none;
        list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);
        list-style-type: none; } }
  .cs-navigation__extras {
    margin: 0; }
  .cs-navigation__teaser {
    max-height: 100%;
    padding: 1em 0;
    margin-bottom: 0 !important; }
    .cs-navigation__teaser--hidden {
      display: none; }
  .cs-navigation__products {
    padding: 0.5em 1em;
    min-width: 24rem; }
    .cs-navigation__products-header {
      display: block;
      color: #455a64;
      text-transform: uppercase;
      width: 100%;
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding: 1.1em 1.05em 1.55em;
      font-size: 0.9em; }
    .cs-navigation__products-list {
      margin: 0;
      padding: 0;
      list-style: none; }
  .cs-navigation__product {
    position: relative; }
    .cs-navigation__product:before {
      display: block;
      content: '';
      width: 100%;
      padding-top: 116.66667%; }
    .cs-navigation__product .cs-product-tile {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
  .cs-navigation__overlay {
    display: none;
    position: absolute;
    z-index: 1000;
    background-color: #000;
    opacity: 0;
    left: 0;
    width: 100%;
    height: 0;
    transform: translate3d(0, 3rem, 0);
    transition: opacity 0.15s linear, transform 0.2s cubic-bezier(0, 0.97, 0.05, 0.99); }
    .cs-navigation__overlay--visible {
      opacity: 0.8;
      transform: translate3d(0, 0, 0); }
  .page-print .cs-navigation {
    display: none; }
  @supports (display: grid) and (grid-auto-flow: row) {
    .cs-navigation__product {
      position: relative; }
      .cs-navigation__product:before {
        content: none; }
      .cs-navigation__product .cs-product-tile {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto; } }

.cs-container--navigation {
  display: none; }
  @media (min-width: 64em) {
    .cs-container--navigation {
      display: block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-newsletter {
  margin: 0;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-newsletter {
      padding: 0 1.5rem; } }
  .cs-newsletter__form {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden; }
    @media (min-width: 48em) {
      .cs-newsletter__form {
        max-width: 34rem; } }
    @media (min-width: 64em) {
      .cs-newsletter__form {
        max-width: 100%; } }
  .cs-newsletter__form-wrapper {
    display: flex;
    flex-basis: 100%; }
  .cs-newsletter__field {
    flex-basis: 100%; }
  .cs-newsletter__input {
    margin-top: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important; }
  .cs-newsletter__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-newsletter__actions {
    display: flex;
    align-items: stretch;
    height: 4rem; }
  .cs-newsletter__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important; }
    .cs-newsletter__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-newsletter__button, .cs-newsletter__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-newsletter__button *, .cs-newsletter__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-newsletter__button:hover:not([disabled]) *, .cs-newsletter__button:focus:not([disabled]) *, .cs-newsletter__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-newsletter__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-y: scroll;
  background: #fff; }
  .cs-offcanvas-navigation__list {
    z-index: 1;
    width: 100%;
    min-width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #fff;
    overflow-y: hidden;
    overflow-x: hidden;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    display: none; }
    .cs-offcanvas-navigation__list--level_0:last-child a[data-category-id="293"] {
      color: #7e57c2; }
      .cs-offcanvas-navigation__list--level_0:last-child a[data-category-id="293"]::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/pdf.svg");
        display: inline-block;
        width: 14px;
        height: 14px;
        margin-right: 4px; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--level_1, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
      display: block; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--level_1, .cs-offcanvas-navigation__list--current {
      overflow-y: auto; }
    .cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
      display: block; }
    .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
      position: absolute;
      left: 105%;
      height: 100%;
      top: 0;
      transition: transform 0.3s;
      top: 14%; }
      .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
        transform: translateX(-105%);
        transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas-navigation__item {
    width: 100%;
    display: flex;
    overflow: hidden;
    margin: 0; }
    .cs-offcanvas-navigation__item + .cs-offcanvas-navigation__item {
      border-top: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item:last-of-type {
      border-bottom: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
      position: relative;
      padding-left: 2rem; }
  .cs-offcanvas-navigation__link {
    min-width: 100%;
    width: 100%;
    display: flex;
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    position: relative; }
    .cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
      color: #455a64; }
    .cs-offcanvas-navigation__link:hover {
      color: #455a64; }
    .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
        color: #7e57c2; }
      .cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
        color: #7e57c2; }
        .cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
          fill: #7e57c2; }
      .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
        width: 2.3rem;
        height: 2.7rem;
        right: 2rem; }
        .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
          fill: #7e57c2; }
    .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
      width: 0.7rem;
      height: 0.1rem; }
    .cs-offcanvas-navigation__link--parent {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
        right: 2rem; }
    .cs-offcanvas-navigation__link--return {
      padding-left: 5rem; }
      .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
        left: 2rem; }
    .cs-offcanvas-navigation__link--next {
      position: relative; }
      .cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #7e57c2;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 2rem; }
      .cs-offcanvas-navigation__link--next:after {
        right: 2rem;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 2rem; }
    .cs-offcanvas-navigation__link--prev {
      position: relative; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #7e57c2;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:after {
        right: 0;
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: auto; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        left: 2rem; }
  .cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
    color: #7e57c2; }
  .cs-offcanvas-navigation__icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    .cs-offcanvas-navigation__icon path {
      fill: #7e57c2; }
  .cs-offcanvas-navigation__category-icon-wrapper {
    position: relative;
    width: 2rem;
    margin-right: 1rem; }
  .cs-offcanvas-navigation__category-icon {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate3d(0, -50%, 0);
    max-height: 2rem; }
  .cs-offcanvas-navigation__search {
    position: relative;
    padding: 2.4rem 2rem;
    border-bottom: 1px #dcdcdc solid; }
    @media (min-width: 48em) {
      .cs-offcanvas-navigation__search {
        display: none; } }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  @media (min-width: 64em) {
    .cs-header-user-nav {
      padding: 0; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 0 0 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
    .cs-header-user-nav__item--account a {
      max-width: 160px; }
      @media (min-width: 48.01em) {
        .cs-header-user-nav__item--account a {
          min-width: 145px; } }
  .cs-header-user-nav .minicart-wrapper > .cs-header-user-nav__link {
    padding: 0.5rem 1rem;
    border: 2px solid #7e57c2;
    border-radius: 200px; }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-direction: row;
    position: relative;
    width: 100%;
    padding: 0rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #7e57c2; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #4d2c91; }
    .cs-header-user-nav__link--search {
      display: none; }
      @media (min-width: 48em) {
        .cs-header-user-nav__link--search {
          display: flex; } }
      .cs-header-user-nav__link--search:hover {
        cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative;
    margin-left: 10px;
    margin-right: 10px; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #7e57c2; }
  .cs-header-user-nav__label {
    text-transform: unset;
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 0.3rem;
    color: #455a64;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal;
        margin-top: 0.3rem; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 50px;
    padding: 0 0.9rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    opacity: 1;
    transition: opacity 0.3s; }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #11a099;
      color: #455a64;
      transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #fcb739;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #11a099;
      color: #455a64; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
    .cs-header-user-nav__qty-counter--empty::before {
      content: '0';
      width: 0; }
    .cs-header-user-nav__qty-counter--wishlist-cloned {
      position: fixed;
      z-index: 1200;
      right: auto;
      opacity: 1;
      transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--wishlist-animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 3.5rem; } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  85% {
    opacity: 1;
    transform: scale(1.5); }
  95% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }
  .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text {
    font-size: 1.4rem;
    font-weight: 700;
    min-width: 40px;
    display: inline-block; }
    .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text .minicart-amount-text--empty::before {
      content: '0,00 zł'; }

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%;
  width: 5.5rem; }
  @media (min-width: 48em) {
    .cs-offcanvas-toggle {
      width: auto; } }
  .cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0; }
  .cs-offcanvas-toggle:after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    transform: scale(0);
    background: #7e57c2;
    transition: transform 0.3s;
    bottom: 0;
    left: 0;
    transform-origin: left; }
  .cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
    background: #7e57c2; }
  .cs-offcanvas-toggle--active:after {
    transform: scale(1); }
  .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
    transform: rotate(-45deg); }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      background: #fff; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      transform: rotate(90deg); }
  .cs-offcanvas-toggle__icon {
    padding: 0;
    margin: 0;
    position: relative;
    display: none; }
    .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      width: 1.8rem;
      height: 0.2rem;
      background: #7e57c2;
      transition: background-color 0.3s, transform 0.3s; }
    .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      content: '';
      display: block;
      position: absolute; }
    .cs-offcanvas-toggle__icon:before {
      transform: translateY(-250%);
      transform: translate3d(0, -250%, 0); }
    .cs-offcanvas-toggle__icon:after {
      transform: translateY(250%);
      transform: translate3d(0, 250%, 0); }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__icon {
        display: block; } }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
      display: block; }
  .cs-offcanvas-toggle__text {
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 0.8rem;
    color: #455a64;
    text-transform: uppercase;
    transition: color 0.3s; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
      color: #fff; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__text {
        bottom: 2rem; } }
  .cs-offcanvas-toggle__menu-search-icon {
    fill: #7e57c2;
    width: 2.6rem;
    height: 2.6rem; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__menu-search-icon {
        display: none; } }
    .cs-offcanvas-toggle__menu-search-icon:hover {
      fill: #7e57c2; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__menu-search-icon {
      display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas {
  position: relative;
  z-index: 300; }
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    top: 5rem; }
    @media (min-width: 48em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        top: 8.3rem;
        bottom: 0; } }
    @media (min-width: 64em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        display: none; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      display: block;
      top: 0; }
  .cs-offcanvas__overlay {
    width: 100%;
    height: calc(100% - 5rem);
    background-color: transparent;
    transition: background-color 0.3s, transform 1ms 0.3s;
    transform: scale(0);
    cursor: pointer; }
    @media (min-width: 48em) {
      .cs-offcanvas__overlay {
        height: 100%; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      height: 100%; }
  .cs-offcanvas .overlay--visible {
    transform: scale(1);
    background: rgba(0, 0, 0, 0.7);
    transition: background-color 0.3s; }
  .cs-offcanvas__drawer {
    position: fixed;
    background: #fff;
    transition: transform 0.3s;
    width: 90%;
    max-width: 40rem; }
    .cs-offcanvas--side_left .cs-offcanvas__drawer {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
    .cs-offcanvas--side_right .cs-offcanvas__drawer {
      left: auto;
      right: 0;
      transform: translate3d(105%, 0, 0); }
    .cs-offcanvas__drawer--navigation {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas .drawer--visible {
    transform: translate3d(0, 0, 0) !important; }
  .cs-offcanvas__spinner {
    position: absolute;
    width: 6rem;
    height: 6rem;
    left: 50%;
    top: 20%;
    margin-left: -3rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-page-bottom {
      flex-wrap: wrap;
      justify-content: flex-start; } }
  @media (min-width: 64em) {
    .cs-page-bottom {
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .page-print .cs-page-bottom {
    display: none; }
  .cs-page-bottom__image {
    height: 3rem;
    width: auto; }
    .cs-page-bottom__image--circle {
      width: 4.7rem;
      height: 4.7rem;
      min-width: 4.7rem;
      min-height: 4.7rem;
      margin-right: 1rem; }
  .cs-page-bottom__text {
    font-size: 1.2rem;
    color: #696969;
    margin-bottom: 0;
    margin-right: 0.6rem; }
    .cs-page-bottom__text--small {
      font-size: 1rem; }
  .cs-page-bottom__group {
    display: flex;
    align-items: center;
    flex-grow: 1;
    flex-shrink: 1;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-bottom__group {
        width: 100%;
        padding: 1rem 0; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group {
        width: auto;
        padding: 0; } }
    .cs-page-bottom__group--info {
      display: none;
      flex-direction: row-reverse; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--info {
          display: flex;
          flex-basis: 40%;
          justify-content: flex-end;
          padding-right: 1.5rem; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 20rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--info {
          flex-basis: 17%;
          padding-right: 0; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 100%; } }
    .cs-page-bottom__group--shipping {
      display: none; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--shipping {
          display: flex;
          flex-basis: 55%;
          padding-left: 1.5rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--shipping {
          flex-basis: 33%;
          padding-left: 4rem; } }
    .cs-page-bottom__group--payment {
      flex-basis: 50%; }
      @media (max-width: 47.99em) {
        .cs-page-bottom__group--payment .cs-page-bottom__text {
          display: none; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--payment {
          padding-left: 4rem; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
        position: relative; }
        .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
          margin: 0 1rem;
          content: '';
          position: absolute;
          left: 1rem;
          top: 50%;
          width: 0.2rem;
          height: 2rem;
          background: #dcdcdc;
          transform: translateY(-50%); } }
  .cs-page-bottom__logo {
    display: flex;
    flex-shrink: 1;
    height: 2rem; }
    @media (max-width: 63.99em) {
      .cs-page-bottom__logo {
        width: auto; } }
    .cs-page-bottom__logo--hermes {
      width: 12.2rem; }
    .cs-page-bottom__logo--dhl {
      height: auto;
      max-height: 2rem;
      min-width: 8.6rem;
      padding-left: 10px; }
    .cs-page-bottom__logo--paypal {
      width: 6.2rem; }
    .cs-page-bottom__logo--visa {
      height: auto;
      max-height: 2rem;
      min-width: 5.5rem; }
    .cs-page-bottom__logo--mastercard {
      width: 3.3rem; }
    .cs-page-bottom__logo--klarna-sofort {
      height: auto;
      max-height: 2.5rem;
      min-height: 2.5rem; }
    .cs-page-bottom__logo--klarna {
      width: 7rem; }
    .cs-page-bottom__logo--gls {
      width: 5rem; }
    .cs-page-bottom__logo--giropay {
      width: 4.8rem; }
    .cs-page-bottom__logo--ec {
      width: 1.8rem; }
    .cs-page-bottom__logo--paydirekt {
      width: 6rem; }
    .cs-page-bottom__logo--lastschrift {
      width: 6.15rem; }
    .cs-page-bottom__logo--vorkasse {
      width: 8.3rem; }
    .cs-page-bottom__logo--rechnung {
      width: 6.15rem; }
    .cs-page-bottom__logo:not(:last-child) {
      margin-right: 0.5rem; }

.cs-container--page-bottom {
  max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.page-title {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding-bottom: 1rem;
  text-transform: none;
  font-weight: 600; }
  .page-title__headline {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
    display: inline; }
  .page-title__span {
    color: #696969;
    font-weight: 300;
    padding: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.price-box {
  display: inline-block; }
  .price-box .price {
    font-weight: 700;
    white-space: nowrap; }
    .price-box .price-label {
      display: none; }
  .price-box .old-price .price {
    font-size: 0.65rem;
    text-decoration: line-through; }
  .price-box .old-price.no-display {
    display: none; }
  .price-box .special-price .price {
    padding-left: 0.4em; }
  .price-box .price {
    color: #7e57c2;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ':'; }
      body
p
.price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .normal-price .price-label {
    display: inline; }
  .price-box .price-wrapper {
    display: flex; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price .price {
    text-decoration: line-through;
    color: #a8b1b7;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #e41f12;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: '-';
    right: -1rem;
    top: 0;
    position: absolute; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 7px;
  background-color: #fff;
  border: 1px solid transparent;
  transition: border-color 0.3s;
  aspect-ratio: 300/400; }
  @media (min-width: 48em) {
    .cs-product-tile {
      aspect-ratio: 300/350; } }
  @media (hover: hover) and (pointer: fine) {
    .cs-product-tile:hover {
      border: 1px solid #4d2c91; } }
  .cs-product-tile--clickable:hover {
    cursor: pointer; }
  .cs-product-tile--hidden .cs-product-tile__main {
    visibility: hidden !important; }
  .cs-product-tile__container {
    height: 100%;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    position: relative;
    padding: 1.5rem; }
  .cs-product-tile__link {
    display: block;
    height: 100%; }
  .cs-product-tile__thumbnail {
    padding: 0;
    min-height: 0; }
  .cs-product-tile__thumbnail-link {
    display: block;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%; }
    .cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
      color: inherit;
      text-decoration: inherit; }
  .cs-product-tile__figure {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    text-align: center; }
  .cs-product-tile__image {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto; }
  .cs-product-tile__img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%; }
    .cs-product-tile__img[src*='placeholder'] {
      min-width: 70%;
      margin-top: 2rem; }
  .cs-product-tile__content {
    width: 100%;
    background-color: rgba(255, 255, 255, 0.8); }
  .cs-product-tile__main {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4rem;
    grid-template-areas: 'badges addto' 'swatches swatches' 'brand brand' 'name name' 'description description' 'price price' 'review  addtocart' 'stock addtocart' 'wishlist-icons wishlist-icons'; }
  .cs-product-tile__swatches {
    grid-area: swatches;
    display: flex;
    margin: 2rem 0 1rem;
    min-height: 2.6rem; }
    .cs-product-tile__swatches,
    .cs-product-tile__swatches .swatch-attribute-options {
      justify-content: center; }
  .cs-product-tile__brand {
    grid-area: brand;
    height: 2rem;
    margin-top: 1.5rem;
    text-align: left; }
    .cs-product-tile__brand--empty {
      height: 0; }
  .cs-product-tile__brand-text {
    font-size: 1.2rem;
    color: #888; }
  .cs-product-tile__name {
    grid-area: name;
    line-height: 2rem;
    font-weight: 400;
    font-size: 1.8rem;
    overflow: hidden;
    width: 100%;
    height: 4.2rem;
    margin: 0 0 0.5rem;
    text-align: left; }
  .cs-product-tile__name-link {
    color: #455a64;
    /* disabled because autoprefixer can't build this */
    /* stylelint-disable value-no-vendor-prefix */
    /* stylelint-disable property-no-vendor-prefix */
    /* autoprefixer: ignore next */
    display: -webkit-box;
    /* autoprefixer: ignore next */
    -webkit-box-orient: vertical;
    /* autoprefixer: ignore next */
    -webkit-line-clamp: 2;
    /* autoprefixer: ignore next */
    line-clamp: 2;
    max-width: 100%;
    /* stylelint-enable value-no-vendor-prefix */
    /* stylelint-enable property-no-vendor-prefix */ }
    .cs-product-tile__name-link:visited {
      color: #455a64; }
    .cs-product-tile__name-link:hover {
      color: #455a64;
      text-decoration: none; }
  .cs-product-tile__price {
    grid-area: price;
    line-height: 1.2; }
    .cs-product-tile__price .price-box {
      display: flex;
      margin: 0;
      align-items: center;
      justify-content: flex-start; }
      .cs-product-tile__price .price-box .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #455a64; }
      .cs-product-tile__price .price-box .old-price .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #a8b1b7;
        text-decoration: line-through; }
      .cs-product-tile__price .price-box .special-price .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #e41f12; }
      .cs-product-tile__price .price-box .minimal-price {
        margin: 0;
        display: flex; }
      .cs-product-tile__price .price-box .old-price {
        order: -1; }
      .cs-product-tile__price .price-box .minimal-price {
        align-items: center; }
      .cs-product-tile__price .price-box .old-price .price {
        margin-right: 1rem; }
    .cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
      display: none; }
    .cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
      display: flex; }
  .cs-product-tile__review {
    grid-area: review;
    margin: 1rem 0 0; }
    .cs-product-tile__review:empty {
      margin: 0 !important; }
  .cs-product-tile__stock {
    grid-area: stock;
    display: inline-block;
    white-space: nowrap;
    font-size: 1.3rem;
    margin: 0;
    padding-bottom: 1.1rem;
    text-align: left; }
    .cs-product-tile__stock--in {
      color: #37b841; }
    .cs-product-tile__stock--out {
      color: #e41f12; }
  .cs-product-tile__addtocart {
    grid-area: addtocart;
    margin: 0 0 0; }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button {
      min-height: 4rem; }
      .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::before, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::after {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__success-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__fail-label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-icon, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__configure-icon {
      right: auto;
      left: 50%;
      transform: translate3d(-50%, -50%, 0); }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__loading {
      transform: scale(1) translate3d(-50%, -50%, 0); }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__button-icon,
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__configure-icon {
      display: none; }
  .cs-product-tile__addtocart-button {
    width: 4rem; }
  .cs-product-tile__addto {
    grid-area: addto;
    width: auto;
    margin: 1rem 0 0;
    position: absolute;
    top: 1.5rem;
    right: 1.5rem; }
    .cs-product-tile__addto .cs-links-block-addto__link {
      font-size: 1.3rem; }
    .cs-dashboard__bottom-wishlist .cs-product-tile__addto,
    .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
      display: none; }
    .cs-product-tile__addto:empty {
      margin: 0 !important; }
    .cs-product-tile__addto .cs-links-block-addto__link-label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-product-tile__badges {
    margin: 0;
    padding: 0;
    list-style: none;
    grid-area: badges;
    display: flex;
    flex-wrap: wrap;
    position: absolute;
    z-index: 2;
    top: 2rem;
    left: 2rem;
    flex-direction: column; }
  .cs-product-tile__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 7px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase;
    grid-area: badge; }

@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem; } }
    .cs-product-tile__badge--discount {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--discount .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--new {
      background-color: #11a099;
      color: #fff; }
      .cs-product-tile__badge--new .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--popular {
      background-color: #37b841;
      color: #fff;
      /**
            * Initially hide popular badge on category products list. 
            * The logic for showing the badge is placed in magesuite-product-positive-indicators/view/frontend/web/js/tile-badge-shower.js
            */ }
      .cs-product-tile__badge--popular .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
      .product-items .cs-product-tile__badge--popular:not(.visible) {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
    .cs-product-tile__badge--dailydeal {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
  .cs-product-tile__badge-item {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__badge-item {
      margin: 0 0 0.5rem;
      width: 100%; }
    .cs-product-tile__badge-item:empty {
      display: none; }
  .cs-product-tile__badge-text {
    line-height: normal; }
    .cs-product-tile__badge-text + .cs-product-tile__badge-text {
      margin-left: 0.5rem; }
  .cs-product-tile__dailydeal {
    grid-area: dailydeal;
    margin: 0; }
  .cs-product-tile__qty {
    grid-area: qty;
    margin-bottom: 1rem;
    width: 11rem;
    margin-left: auto; }
  .cs-product-tile__description {
    grid-area: description;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.4;
    color: #696969;
    margin: 0 0 1rem; }
  .cs-product-tile__wishlist-remove-icon {
    position: absolute;
    top: 0;
    right: 0;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem; }
    @media (pointer: fine) {
      .cs-product-tile__wishlist-remove-icon {
        display: none; } }
  .cs-product-tile__wishlist-remove-icon-image {
    width: 1.2rem;
    height: 1.2rem;
    fill: #888; }
  .cs-product-tile__wishlist-comment {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-product-tile__wishlist-actions {
    grid-area: wishlist-icons;
    margin: 1rem 0 0;
    display: flex;
    justify-content: space-between; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-products-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-products-list__item {
    margin: 0; }
  .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
    border-bottom: 1px solid #f0f0f0;
    padding: 0; }
    .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
      border-bottom: 0; }
  @media (min-width: 48em) {
    .cs-products-list--carousel .cs-products-list__item {
      border-bottom: 1px solid #f0f0f0;
      padding: 0; }
      .cs-products-list--carousel .cs-products-list__item:last-child {
        border-bottom: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  .cs-qty-increment--wishlist {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    border-width: 1px;
    font-size: inherit;
    text-align: center;
    margin: 0;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0;
    width: 0;
    min-width: 2ch;
    flex: 1 1;
    order: 2; }
    .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-qty-increment__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input[disabled] {
      opacity: 0.65; }
    .cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border-left-width: 0;
      border-right-width: 0;
      border-color: #dcdcdc; }
    .cs-qty-increment__input.mage-error {
      border-color: #e41f12 !important; }
      .cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
        border-color: #e41f12 !important; }
    .cs-qty-increment__input + .mage-error {
      order: 3;
      width: 100%; }
  .cs-qty-increment__button {
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
    max-width: 3rem;
    background-color: transparent;
    flex: 1 1 2rem;
    position: relative;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 200px; }
    .cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
      background-color: transparent;
      border: 1px solid #dcdcdc; }
      .cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
        fill: #7e57c2; }
    .cs-qty-increment__button:hover, .cs-qty-increment__button:active {
      background-color: #7e57c2;
      border: 1px solid #7e57c2;
      cursor: pointer; }
      .cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
        fill: #fff; }
    .cs-qty-increment__button--decrement {
      order: 1;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-right: 0; }
    .cs-qty-increment__button--increment {
      order: 2;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
      border-left: 0; }
    .cs-qty-increment__button--disabled {
      opacity: 1; }
      .cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
        background-color: transparent;
        border: 1px solid #dcdcdc;
        cursor: not-allowed; }
        .cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
          fill: #dcdcdc; }
  .cs-qty-increment__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .cs-qty-increment__icon--decrement {
      width: 1.2rem;
      height: 0.3rem; }
    .cs-qty-increment__icon--increment {
      width: 1.2rem;
      height: 1.2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-social-media-list {
      justify-content: flex-start; } }
  @media (min-width: 48em) {
    .cs-social-media-list {
      padding-bottom: 0;
      padding-top: 0; } }
  .cs-social-media-list__item {
    margin: 0 0.4em;
    padding: 0; }
  .cs-social-media-list__link {
    display: flex;
    position: relative;
    height: 3.5em;
    min-width: 4em;
    background: #212121;
    color: inherit;
    border-radius: 7px;
    transition: background-color 0.15s linear; }
    .cs-social-media-list__link:hover {
      background: #4d2c91; }
  .cs-social-media-list__icon {
    position: absolute;
    transform: translate3d(-55%, -55%, 0);
    top: 50%;
    left: 55%; }
    .cs-social-media-list__item--fb .cs-social-media-list__icon {
      width: 0.9em;
      height: 1.8em; }
    .cs-social-media-list__item--tw .cs-social-media-list__icon {
      width: 2.5em;
      height: 2em; }
    .cs-social-media-list__item--yt .cs-social-media-list__icon {
      width: 1.8em;
      height: 2.1em; }
    .cs-social-media-list__item--gp .cs-social-media-list__icon {
      width: 2em;
      height: 2em;
      margin-top: 0.1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-star-rating {
  display: flex;
  align-items: center; }
  .cs-star-rating__stars {
    display: inline-flex;
    padding: 0;
    width: 7.2rem;
    justify-content: space-between; }
    .cs-star-rating--summary .cs-star-rating__stars {
      width: 10rem;
      padding: 0; }
    .cs-star-rating--review .cs-star-rating__stars {
      width: 7.2rem;
      padding: 0; }
  .cs-star-rating__star {
    display: flex;
    width: 1.5rem;
    height: 100%;
    fill: #888; }
    .cs-star-rating__star--active {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-left {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-rigth {
      fill: #888; }
    .cs-star-rating--summary .cs-star-rating__star {
      width: 2rem; }
    .cs-star-rating--review .cs-star-rating__star {
      width: 1.5rem; }
    .cs-star-rating__star path {
      fill-opacity: 1;
      fill: inherit; }
  .cs-star-rating img {
    width: 1.5rem;
    height: 100%; }
  .cs-star-rating__form-stars {
    display: inline-flex;
    padding: 0; }
  .cs-star-rating__form-star {
    opacity: 1;
    fill: #888;
    width: 100%; }
    .cs-star-rating__form-star--active {
      fill: #fcb739; }
    .cs-star-rating__form-star path {
      fill-opacity: 1;
      fill: inherit; }
    .cs-star-rating__form-star:nth-last-of-type() {
      padding-right: 0; }
    .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
      fill: #fcb739; }
    .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
      fill: #888; }
  .cs-star-rating__text {
    display: inline-block;
    color: #696969;
    padding-left: 0.5em;
    line-height: 1;
    padding-top: calc(1.5rem * 0.1); }
    .cs-star-rating__text--count:before {
      content: '('; }
    .cs-star-rating__text--count:after {
      content: ')'; }
    .cs-star-rating__text--empty {
      padding-left: 0; }
  .cs-star-rating__text-annotation {
    display: inline;
    line-height: 1; }
    .cs-product-tile .cs-star-rating__text-annotation {
      display: none; }
  .cs-star-rating__label {
    color: #455a64;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    padding-top: calc(1.5rem * 0.2); }

.review-control-vote {
  overflow: hidden; }
  .review-control-vote .rating-1 {
    z-index: 1; }
    .review-control-vote .rating-1:before {
      content: none; }
  .review-control-vote .rating-2 {
    z-index: 2; }
    .review-control-vote .rating-2:before {
      content: none; }
  .review-control-vote .rating-3 {
    z-index: 3; }
    .review-control-vote .rating-3:before {
      content: none; }
  .review-control-vote .rating-4 {
    z-index: 4; }
    .review-control-vote .rating-4:before {
      content: none; }
  .review-control-vote .rating-5 {
    z-index: 5; }
    .review-control-vote .rating-5:before {
      content: none; }
  .review-control-vote:before {
    content: none; }
  .review-control-vote label {
    position: static;
    cursor: pointer;
    display: block;
    width: 3rem;
    padding-right: 1rem;
    line-height: 0; }
    @media (min-width: 48em) {
      .review-control-vote label {
        width: 2.6rem;
        padding-right: 0.6rem; } }
    .review-control-vote label:last-child {
      width: 2rem;
      padding-right: 0; }
    .review-control-vote label span {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  align-items: center !important;
  flex-wrap: wrap; }
  .swatch-attribute.swatch-layered {
    font-size: 0.8em; }
  .swatch-attribute + .swatch-attribute {
    margin-top: 0.8em; }
  .swatch-attribute:has(.swatch-option.selected) .mage-error {
    display: none; }

.swatch-attribute-label {
  text-transform: uppercase;
  line-height: calc( 2.8em - 6px + 0.1em);
  font-weight: 700;
  font-size: 1.1em;
  width: 10rem;
  margin-right: 1.5rem; }
  @media (min-width: 64em) {
    .swatch-attribute-label {
      width: 11rem; } }
  .swatch-attribute-label:after {
    content: ': ';
    line-height: calc( 2.8em - 6px + 0.1em); }

.swatch-attribute-selected-option {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.swatch-attribute-options {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center; }
  .swatch-attribute-options:focus {
    box-shadow: none; }
  .swatch-opt .swatch-attribute-options {
    min-width: 0;
    justify-content: flex-start;
    max-width: calc( 100% - 1.5rem - 10rem); }
    @media (min-width: 64em) {
      .swatch-opt .swatch-attribute-options {
        max-width: calc( 100% - 1.5rem - 11rem); } }

.swatch-option-link-layered {
  font-size: 1em; }
  .swatch-option-link-layered:hover {
    text-decoration: none; }

.swatch-option {
  font-weight: normal;
  position: relative;
  min-width: 3.2em;
  height: 2.8em;
  padding: 0 0.35em;
  margin: 1px calc( 1px + 0.2em) calc(1px + 0.4em);
  border-radius: 7px;
  background-color: #f0f0f0;
  border: 3px solid #f0f0f0;
  color: #696969;
  cursor: pointer;
  line-height: calc( 2.8em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
  display: block !important; }
  .swatch-option:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid #dcdcdc;
    border-radius: 7px;
    transition: border-color 0.3s; }
  .swatch-option:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    background: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/swatches/disabled.svg) rgba(220, 220, 220, 0.5) center no-repeat;
    transform: translate(-50%, -50%);
    width: calc(2.8em - 1.2em);
    height: calc(2.8em - 1.2em);
    background-size: 0.6em;
    transition: opacity 0.3s;
    opacity: 0; }
  .swatch-option.selected, .swatch-option.bis-selected {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option.selected:before, .swatch-option.bis-selected:before {
      border: 1px solid #4d2c91; }
  .swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
    cursor: not-allowed; }
    .swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      .swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
        border: 1px solid #dcdcdc; }
    .swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
      opacity: 1; }
  .swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
      border: 1px solid #7e57c2; }

.swatch-input {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  left: -1000px;
  position: absolute;
  visibility: hidden; }

.swatch-more {
  display: none; }

.swatch-option-tooltip,
.swatch-option-tooltip-layered {
  display: none;
  position: absolute;
  margin: 0;
  z-index: 999;
  background: #fff;
  border-radius: 0.5rem;
  color: #888;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 0.5rem;
  text-align: center;
  min-width: 2rem;
  border: 0.1rem solid #dcdcdc; }
  .swatch-option-tooltip .image,
  .swatch-option-tooltip-layered .image {
    display: block;
    margin: 0 auto;
    width: 110px;
    height: 110px; }
  .swatch-option-tooltip .corner:after,
  .swatch-option-tooltip-layered .corner:after {
    content: '';
    position: absolute;
    top: 100%;
    display: block;
    width: 1rem;
    height: 1rem;
    background-color: #fff;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 0.1rem solid #dcdcdc;
    border-right: 0.1rem solid #dcdcdc;
    margin-top: calc( -0.5rem + 0.1rem); }

.swatch-option-tooltip {
  pointer-events: none; }

.missing-swatches-modal {
  max-width: 40rem;
  margin-left: auto; }
  .missing-swatches-modal .mage-error {
    padding-top: 0.8rem; }
  .missing-swatches-modal .swatch-attribute + .swatch-attribute {
    margin-top: 2rem; }

@media (hover: none) {
  .missing-swatches-modal-visible .swatch-option-tooltip {
    display: none !important; } }

.swatch-opt {
  font-size: 0.9em; }
  .swatch-opt .swatch-option.back-in-stock-alert:after {
    background: rgba(220, 220, 220, 0.55) url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/notification-panel/icon_notification-outline.svg) center/64% no-repeat;
    opacity: 1; }
  .swatch-opt .swatch-option.back-in-stock-alert.text {
    padding-right: 2em; }
    .swatch-opt .swatch-option.back-in-stock-alert.text:after {
      left: auto;
      right: 0.35em;
      background-color: transparent;
      transform: translateY(-50%); }
  .swatch-opt .mage-error {
    font-size: 1em;
    width: 100%;
    margin-left: calc(10rem + 1.5rem); }
    @media (min-width: 64em) {
      .swatch-opt .mage-error {
        margin-left: calc( 11rem + 1.5rem); } }

[class^='swatch-opt-'] {
  font-size: 0.45em;
  min-height: calc( 1 * (2.8em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none; }
  @media (min-width: 48.01em) {
    [class^='swatch-opt-'] {
      pointer-events: auto; } }
  [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert {
    cursor: not-allowed; }
    [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.text, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.text:before, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.text:before {
        border: 1px solid #dcdcdc; }
    [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.image:after, [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.color:after, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.image:after, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.color:after {
      opacity: 1; }
  [class^='swatch-opt-']:empty {
    opacity: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-topbar {
  background: transparent;
  display: none;
  width: 100%;
  font-size: 1.6rem;
  padding-top: 0.5rem; }
  @media (min-width: 64em) {
    .cs-topbar {
      display: flex;
      z-index: 302; } }
  .cs-topbar__wrapper {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    justify-content: space-between;
    height: 2.7rem; }
    @media (min-width: 64em) {
      .cs-topbar__wrapper {
        flex-wrap: nowrap; } }
  .cs-topbar__item {
    color: #212121;
    display: flex;
    flex: 0 0 auto;
    white-space: nowrap;
    height: 100%; }
    .cs-topbar__item--usps {
      margin-right: auto;
      display: none; }
      @media (min-width: 80em) {
        .cs-topbar__item--usps {
          display: flex; } }
    .cs-topbar__item--hotline {
      align-items: center;
      flex: 1 1;
      justify-content: flex-start; }
    .cs-topbar__item--language {
      height: 100%; }
    .cs-topbar__item--links .cs-topbar__links {
      display: flex;
      align-items: center; }
      .cs-topbar__item--links .cs-topbar__links a {
        font-size: 1.6rem;
        font-weight: 700;
        color: #455a64;
        margin: 0.5rem 2rem; }
      .cs-topbar__item--links .cs-topbar__links a:first-child {
        margin: 0.5rem 2rem 0.5rem 0rem; }
      .cs-topbar__item--links .cs-topbar__links a:last-child {
        margin: 0.5rem 0rem 0.5rem 2rem; }
  .cs-topbar__list,
  .cs-topbar__item > ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
  .cs-topbar__list-item {
    margin-bottom: 0;
    height: 2.7rem;
    display: flex;
    align-items: center;
    position: relative; }
    .cs-topbar__list-item:not(:last-child) {
      padding-right: 1.3rem; }
    .cs-topbar__list-item:not(:last-child) {
      margin-right: 1.3rem; }
      .cs-topbar__list-item:not(:last-child):before {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        content: '';
        border-right: 0.2rem solid #fff; }
  .cs-topbar__text {
    color: #212121; }
  .cs-topbar__link {
    margin-right: 0.9rem; }
    .cs-topbar__link, .cs-topbar__link:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-topbar__link:hover, .cs-topbar__link:focus, .cs-topbar__link:active, .cs-topbar__link:visited:hover, .cs-topbar__link:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-topbar__hotline {
    display: flex;
    align-items: center; }
  .cs-topbar__phone-number {
    font-weight: 700;
    margin-right: 0.9rem; }
    .cs-topbar__phone-number, .cs-topbar__phone-number:visited {
      color: #000;
      text-decoration: none; }
    .cs-topbar__phone-number:hover, .cs-topbar__phone-number:focus, .cs-topbar__phone-number:active, .cs-topbar__phone-number:visited:hover, .cs-topbar__phone-number:visited:focus {
      color: #000;
      text-decoration: none; }
  .cs-topbar .cs-toolbar__item--limiter > .limiter.cs-limiter .control.cs-limiter__control {
    margin-right: 1rem; }

.cs-container--top-bar {
  background-color: #fff;
  max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #7e57c2;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #4d2c91;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

body {
  color: #455a64; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__picture {
  position: relative; }

.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__content,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__overlay,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__gradient,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__optimizer-container {
  z-index: 1; }

.cs-image-teaser [data-video-teaser] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1; }
  .cs-image-teaser [data-video-teaser]:empty {
    display: none; }

.cs-image-teaser [id^='video-teaser'] {
  width: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.body {
  align-items: center;
  background: #E3E3E3;
  display: flex;
  justify-content: center; }

@keyframes scroll {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(calc(-250px * 7)); } }

.slider {
  background: #eceff1;
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.125);
  height: 140px;
  margin: auto;
  overflow: hidden;
  position: relative;
  width: 174rem; }
  .slider::before, .slider::after {
    background: linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%);
    content: "";
    height: 140px;
    position: absolute;
    width: 200px;
    z-index: 2; }
  .slider::after {
    right: 0;
    top: 0;
    transform: rotateZ(180deg); }
  .slider::before {
    left: 0;
    top: 0; }
  .slider .slide-track {
    animation: scroll 40s linear infinite;
    display: flex;
    width: calc(256px * 14); }
  .slider .slide {
    height: 100px;
    width: 250px;
    padding: 10px; }

.cs-products-carousel .cs-products-carousel__slides {
  -ms-overflow-style: none;
  /* for Internet Explorer, Edge */
  scrollbar-width: none;
  /* for Firefox */
  overflow-y: scroll; }
  .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar {
    display: none; }

.checkout-cart-index button#update-cart-button,
.checkout-cart-index button#empty_cart_button {
  display: none; }

@media (max-width: 47.99em) {
  .page-with-filter .fast-delivery-box {
    display: none; } }

.cs-limiter__control {
  display: none !important; }

li.cs-links-block-addto__item.cs-links-block-addto__item--compare {
  display: none; }

.cs-checkout .table-checkout-shipping-method .col.col-price::before {
  content: "już od "; }

.cs-products-carousel__slides-wrapper > .cs-products-carousel__slides > .cs-products-carousel__slide > .cs-products-carousel__product-tile > .cs-product-tile {
  min-height: 300px; }

.cs-offcanvas-navigation > .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_0 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_1.cs-offcanvas-navigation__list--active {
  top: 100px !important; }

.cs-offcanvas-navigation > .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_0 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_1 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_2.cs-offcanvas-navigation__list--active {
  top: 0px !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.page-product-grouped .cs-buybox__price {
  display: none; }

.page-product-grouped .table-wrapper.grouped,
.catalog-product-view .table-wrapper.grouped {
  background: #edeff1;
  padding: 2rem 1.5rem; }
  .page-product-grouped .table-wrapper.grouped .available-count-notice,
  .catalog-product-view .table-wrapper.grouped .available-count-notice {
    max-width: 128rem;
    margin: 0 auto; }
    .page-product-grouped .table-wrapper.grouped .available-count-notice h3,
    .catalog-product-view .table-wrapper.grouped .available-count-notice h3 {
      font-size: 2.9rem;
      text-transform: none;
      color: #455a64; }
      .page-product-grouped .table-wrapper.grouped .available-count-notice h3 .counter,
      .catalog-product-view .table-wrapper.grouped .available-count-notice h3 .counter {
        color: #7e57c2;
        text-decoration: underline; }

.page-product-grouped table.grouped,
.catalog-product-view table.grouped {
  max-width: 128rem;
  margin: 0 auto;
  width: 100%;
  table-layout: fixed;
  overflow-wrap: break-word; }
  .page-product-grouped table.grouped thead tr .col.item,
  .catalog-product-view table.grouped thead tr .col.item {
    width: 100%; }
  .page-product-grouped table.grouped .associated-product,
  .catalog-product-view table.grouped .associated-product {
    min-height: 75px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 1rem;
    background: white !important;
    border-radius: 7px; }
    @media (max-width: 48em) {
      .page-product-grouped table.grouped .associated-product,
      .catalog-product-view table.grouped .associated-product {
        flex-direction: column; } }
    .page-product-grouped table.grouped .associated-product > td,
    .catalog-product-view table.grouped .associated-product > td {
      flex-direction: column;
      display: flex;
      justify-content: space-between;
      border-bottom: unset !important; }
      @media (min-width: 64em) {
        .page-product-grouped table.grouped .associated-product > td,
        .catalog-product-view table.grouped .associated-product > td {
          flex-direction: row; } }
    .page-product-grouped table.grouped .associated-product .row-tier-price,
    .catalog-product-view table.grouped .associated-product .row-tier-price {
      display: flex;
      justify-content: flex-end;
      padding-top: 0px; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .box-tier-price,
      .catalog-product-view table.grouped .associated-product .row-tier-price .box-tier-price {
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .prices-tier.items,
      .catalog-product-view table.grouped .associated-product .row-tier-price .prices-tier.items {
        margin: 0px;
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .prices-tier.items > .item,
      .catalog-product-view table.grouped .associated-product .row-tier-price .prices-tier.items > .item {
        margin: 0px; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .btn-link,
      .catalog-product-view table.grouped .associated-product .row-tier-price .btn-link {
        border: 2px solid #7e57c2;
        border-radius: 200px;
        font-weight: bold;
        padding: 0.5rem 2rem;
        display: inline-block;
        margin-top: 1rem; }
    .page-product-grouped table.grouped .associated-product .col,
    .catalog-product-view table.grouped .associated-product .col {
      padding: 0;
      margin: 0; }
    .page-product-grouped table.grouped .associated-product .col.item,
    .catalog-product-view table.grouped .associated-product .col.item {
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      border: unset; }
      @media (min-width: 48.01em) {
        .page-product-grouped table.grouped .associated-product .col.item,
        .catalog-product-view table.grouped .associated-product .col.item {
          flex-direction: row; } }
      .page-product-grouped table.grouped .associated-product .col.item *,
      .catalog-product-view table.grouped .associated-product .col.item * {
        color: #455a64; }
      .page-product-grouped table.grouped .associated-product .col.item .text-content,
      .catalog-product-view table.grouped .associated-product .col.item .text-content {
        display: flex;
        flex-direction: row;
        align-items: center;
        min-width: 380px;
        max-width: 380px; }
        @media (max-width: 48em) {
          .page-product-grouped table.grouped .associated-product .col.item .text-content,
          .catalog-product-view table.grouped .associated-product .col.item .text-content {
            min-width: 100%; } }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .product-item-name,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .product-item-name {
          font-size: 2rem; }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .text-content__name,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .text-content__name {
          display: flex;
          flex-direction: column; }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .text-content__img,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .text-content__img {
          padding-right: 1rem; }
      .page-product-grouped table.grouped .associated-product .col.item .product-attribute,
      .catalog-product-view table.grouped .associated-product .col.item .product-attribute {
        margin: 0 1rem;
        width: 100%; }
        @media (min-width: 48.01em) {
          .page-product-grouped table.grouped .associated-product .col.item .product-attribute,
          .catalog-product-view table.grouped .associated-product .col.item .product-attribute {
            width: auto; } }
        .page-product-grouped table.grouped .associated-product .col.item .product-attribute .value,
        .catalog-product-view table.grouped .associated-product .col.item .product-attribute .value {
          font-weight: 700;
          background: #edeff1;
          padding: 0.5rem;
          text-align: center;
          border-radius: 7px;
          font-size: 1.7rem; }
      .page-product-grouped table.grouped .associated-product .col.item .product-price-block,
      .catalog-product-view table.grouped .associated-product .col.item .product-price-block {
        margin-left: auto;
        display: flex; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner {
          height: 100%;
          display: flex;
          align-items: flex-end;
          padding: 0;
          flex-direction: column; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper {
            margin-top: 6px; }
            .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge,
            .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
              background: #fe1644;
              color: white;
              padding: 0.8rem 0.2rem;
              letter-spacing: 2px;
              border-radius: 4px;
              font-size: 2rem; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .omnibus-wrapper > span,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .omnibus-wrapper > span {
          color: #a8b1b7; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box {
          order: 9;
          padding: 2rem 0;
          display: flex;
          flex-direction: column-reverse; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .price-container,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .price-container {
            margin: 0 1rem;
            display: block; }
            .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .price-container .price,
            .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .price-container .price {
              font-weight: 700;
              font-size: 2rem; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .special-price .price,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .special-price .price {
            color: #fe1644; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price {
            font-size: 1.5rem;
            color: #a8b1b7;
            font-weight: 400; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price-wrapper,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price-wrapper {
            flex-direction: row-reverse; }
    .page-product-grouped table.grouped .associated-product .box-price-qty,
    .catalog-product-view table.grouped .associated-product .box-price-qty {
      padding-top: 1rem; }
      @media (min-width: 48.01em) {
        .page-product-grouped table.grouped .associated-product .box-price-qty,
        .catalog-product-view table.grouped .associated-product .box-price-qty {
          padding-top: 0; } }
      .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block,
      .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block {
        margin-left: auto;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding-bottom: 0.5rem; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner {
          height: 100%;
          display: flex;
          align-items: center;
          padding: 0;
          flex-direction: row; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper {
            margin-top: 2px; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
              background: #fe1644;
              color: white;
              padding: 0.6rem 0.2rem;
              letter-spacing: 2px;
              border-radius: 4px;
              font-size: 2rem;
              margin-left: 1rem; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint {
            position: relative;
            display: inline-block;
            margin-left: 0.25rem;
            cursor: pointer; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon {
              vertical-align: middle; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before {
              content: '?';
              width: 15px;
              height: 15px;
              font-size: 10px;
              font-weight: bold;
              color: #455a64;
              line-height: 1;
              display: flex;
              align-items: center;
              justify-content: center;
              border: solid 1px;
              padding: 0;
              border-radius: 50%; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content {
              position: absolute;
              display: none;
              right: -0.25rem;
              top: calc(100% + 10px);
              font-size: 13px;
              line-height: 1.5em;
              z-index: 5;
              min-width: 258px;
              padding: 1rem;
              text-align: left;
              background-color: #fff;
              box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
              border-radius: 3px;
              color: #455a64; }
              .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after,
              .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after {
                content: '';
                display: block;
                position: absolute;
                top: -14px;
                right: 4px;
                border-width: 7px;
                border-style: solid;
                border-color: transparent transparent #fff transparent; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content {
              display: block; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .omnibus-wrapper > span,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .omnibus-wrapper > span {
          color: #a8b1b7; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box {
          order: 9;
          padding: 0;
          display: flex;
          flex-direction: column-reverse; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container {
            margin: 0 1rem;
            margin-right: 0;
            display: block; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container .price,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container .price {
              font-weight: 700;
              font-size: 2rem;
              color: #455a64;
              line-height: 1; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .special-price .price,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .special-price .price {
            color: #fe1644; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price {
            font-size: 1.5rem;
            color: #a8b1b7;
            font-weight: 400; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper {
            flex-direction: row-reverse; }
      .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block,
      .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block {
        display: flex;
        align-items: center;
        flex-direction: row;
        margin-bottom: 0;
        margin-left: auto; }
        @media (max-width: 63.99em) {
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block {
            flex-direction: column;
            padding: 1.5rem; } }
        .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .label,
        .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .label {
          font-size: 1.7rem;
          font-weight: 400; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container,
        .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container {
          margin-left: 1rem;
          display: flex;
          align-items: center;
          flex-direction: row;
          justify-content: flex-end;
          border: 1px solid #edeff1;
          border-radius: 200px; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container:hover button,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container:hover button {
            background: #11a099; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .input-text,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .input-text {
            min-width: 150px;
            font-size: 1.4rem;
            border: unset;
            box-shadow: unset; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button {
            border-radius: 200px;
            background: #17c8c0;
            padding: 1rem;
            font-weight: 700; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button span,
            .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button span {
              color: white; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container *,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container * {
            border: none; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar {
            min-width: unset; }
    .page-product-grouped table.grouped .associated-product .col.qty,
    .catalog-product-view table.grouped .associated-product .col.qty {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      border: unset;
      margin-left: 1rem; }
      .page-product-grouped table.grouped .associated-product .col.qty .control.qty,
      .catalog-product-view table.grouped .associated-product .col.qty .control.qty {
        border: 1px solid #edeff1;
        border-radius: 200px;
        display: flex;
        align-items: center;
        justify-content: center; }
      .page-product-grouped table.grouped .associated-product .col.qty .control.qty > form,
      .catalog-product-view table.grouped .associated-product .col.qty .control.qty > form {
        display: flex;
        flex-direction: row;
        align-items: center; }
      .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment,
      .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment {
        flex-wrap: nowrap; }
        .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment .cs-qty-increment__input,
        .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment .cs-qty-increment__input {
          min-width: 25px;
          max-width: 75px;
          width: auto;
          border: none;
          color: #455a64; }
        .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span,
        .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span {
          border: none; }
          .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span:hover,
          .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span:hover {
            background: white; }
            .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span:hover *,
            .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span:hover * {
              fill: #4d2c91; }
      .page-product-grouped table.grouped .associated-product .col.qty .addtocart,
      .catalog-product-view table.grouped .associated-product .col.qty .addtocart {
        white-space: nowrap;
        background-color: #7e57c2;
        border: none;
        border-radius: 100px;
        width: 40px;
        height: 40px;
        padding: 1rem;
        transition: background-color 0.3s ease; }
        .page-product-grouped table.grouped .associated-product .col.qty .addtocart:hover,
        .catalog-product-view table.grouped .associated-product .col.qty .addtocart:hover {
          background-color: #4d2c91;
          cursor: pointer; }
  .page-product-grouped table.grouped .associated-product.out-of-stock .box-price-qty .product-price-block .price-box,
  .catalog-product-view table.grouped .associated-product.out-of-stock .box-price-qty .product-price-block .price-box {
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.catalog-product-view .cs-buybox__section.cs-buybox__section--product-form .available-count-notice h3 {
  font-size: 2.9rem;
  text-transform: none;
  color: #455a64; }
  .catalog-product-view .cs-buybox__section.cs-buybox__section--product-form .available-count-notice h3 .counter {
    color: #7e57c2;
    text-decoration: underline; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content {
  display: flex;
  flex-direction: column;
  min-width: 300px; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content .product-item-name {
    font-size: 2rem; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content .product-sku {
    font-size: 1.4rem; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute {
  margin: 0 1rem;
  width: 100%; }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute {
      width: auto; } }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute .label {
    color: #455a64;
    font-size: 1.4rem; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute .value {
    font-weight: 700;
    background: #edeff1;
    padding: 0.5rem;
    text-align: center;
    border-radius: 7px;
    font-size: 1.7rem; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .price > .product-item-price > .price-box .price-container {
  margin: 0 1rem;
  display: block; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .price > .product-item-price > .price-box .price-container .price-wrapper > .price {
    font-weight: 700;
    font-size: 2rem;
    color: #455a64;
    padding: 2rem 0; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty {
  border: 1px solid #edeff1;
  border-radius: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0;
  margin-left: auto; }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty {
      margin-left: 0; } }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-qty-increment * {
    border: none; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper {
    border-radius: 100px; }
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button {
      height: 40px;
      width: 40px;
      border: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button .cs-addtocart__button-icon {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 2rem;
        height: 2rem; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button::before {
        background: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button::after {
        background: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button:hover {
        background-color: #4d2c91 !important; }

.catalog-product-view .product-add-form.simple-product .row-tier-price {
  display: flex;
  justify-content: flex-end;
  padding: 1rem 0;
  font-size: 1.4rem; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .box-tier-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .prices-tier.items {
    margin: 0px;
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .prices-tier.items > .item {
    margin: 1px 0px; }

.catalog-product-view .product-add-form.simple-product .col.item {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  border: unset; }
  @media (min-width: 48.01em) {
    .catalog-product-view .product-add-form.simple-product .col.item {
      flex-direction: row; } }
  .catalog-product-view .product-add-form.simple-product .col.item * {
    color: #455a64; }
  .catalog-product-view .product-add-form.simple-product .col.item .text-content {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 380px;
    max-width: 380px; }
    @media (max-width: 48em) {
      .catalog-product-view .product-add-form.simple-product .col.item .text-content {
        min-width: 100%; } }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .product-item-name {
      font-size: 2rem; }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .text-content__name {
      display: flex;
      flex-direction: column; }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .text-content__img {
      padding-right: 1rem; }
  .catalog-product-view .product-add-form.simple-product .col.item .product-attribute {
    margin: 0 1rem;
    width: 100%; }
    @media (min-width: 48.01em) {
      .catalog-product-view .product-add-form.simple-product .col.item .product-attribute {
        width: auto; } }
    .catalog-product-view .product-add-form.simple-product .col.item .product-attribute .value {
      font-weight: 700;
      background: #edeff1;
      padding: 0.5rem;
      text-align: center;
      border-radius: 7px;
      font-size: 1.7rem; }

.catalog-product-view .product-add-form.simple-product .box-price-qty {
  padding-top: 1rem; }
  @media (min-width: 48.01em) {
    .catalog-product-view .product-add-form.simple-product .box-price-qty {
      padding-top: 0; } }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .box-price-qty {
      min-width: 333px; } }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner {
      height: 100%;
      display: flex;
      align-items: center;
      padding: 0;
      flex-direction: row; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper {
        margin-top: 6px; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
          background: #fe1644;
          color: white;
          padding: 0.8rem 0.2rem;
          letter-spacing: 2px;
          border-radius: 4px;
          font-size: 2rem;
          margin-left: 1rem; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint {
        position: relative;
        display: inline-block;
        margin-left: 0.25rem;
        cursor: pointer; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .icon {
          vertical-align: middle; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before {
          content: '?';
          width: 15px;
          height: 15px;
          font-size: 10px;
          font-weight: bold;
          color: #455a64;
          line-height: 1;
          display: flex;
          align-items: center;
          justify-content: center;
          border: solid 1px;
          padding: 0;
          border-radius: 50%; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content {
          position: absolute;
          display: none;
          right: -0.25rem;
          top: calc(100% + 10px);
          font-size: 13px;
          line-height: 1.5em;
          z-index: 5;
          min-width: 258px;
          padding: 1rem;
          text-align: left;
          background-color: #fff;
          box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
          border-radius: 3px;
          color: #455a64; }
          .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after {
            content: '';
            display: block;
            position: absolute;
            top: -14px;
            right: 4px;
            border-width: 7px;
            border-style: solid;
            border-color: transparent transparent #fff transparent; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content {
          display: block; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .omnibus-wrapper > span {
      color: #a8b1b7;
      font-size: 1.4rem;
      line-height: 1; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box {
      order: 9;
      padding: 0;
      display: flex;
      flex-direction: column-reverse; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .price-container {
        margin: 0 1rem;
        margin-right: 0;
        display: block; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .price-container .price {
          font-weight: 700;
          font-size: 2rem;
          color: #455a64; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .special-price .price {
        color: #fe1644; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .old-price .price {
        font-size: 1.5rem;
        color: #a8b1b7;
        font-weight: 400; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper {
        flex-direction: row-reverse; }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block {
    display: flex;
    align-items: center;
    flex-direction: row;
    margin-bottom: 0;
    margin-left: auto; }
    @media (max-width: 63.99em) {
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block {
        flex-direction: column;
        padding: 1.5rem; } }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .label {
      font-size: 1.7rem;
      font-weight: 400; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container {
      margin-left: 1rem;
      display: flex;
      align-items: center;
      flex-direction: row;
      justify-content: flex-end;
      border: 1px solid #edeff1;
      border-radius: 200px; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container:hover button {
        background: #11a099; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container .input-text {
        min-width: 150px;
        font-size: 1.4rem;
        border: unset;
        box-shadow: unset; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container button {
        border-radius: 200px;
        background: #17c8c0;
        padding: 1rem;
        font-weight: 700; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container button span {
          color: white; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container * {
        border: none; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar {
        min-width: unset; }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    border: unset;
    margin-left: 1rem; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .control.qty {
      border: 1px solid #edeff1;
      border-radius: 200px;
      display: flex;
      align-items: center;
      justify-content: center; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .control.qty > form {
      display: flex;
      flex-direction: row;
      align-items: center; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment {
      flex-wrap: nowrap; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment .cs-qty-increment__input {
        min-width: 25px;
        max-width: 75px;
        width: auto;
        border: none;
        color: #455a64; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span {
        border: none; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span:hover {
          background: white; }
          .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span:hover * {
            fill: #4d2c91; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .addtocart {
      white-space: nowrap;
      background-color: #7e57c2;
      border: none;
      border-radius: 100px;
      width: 40px;
      height: 40px;
      padding: 1rem;
      transition: background-color 0.3s ease; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .addtocart:hover {
        background-color: #4d2c91;
        cursor: pointer; }

@media (max-width: 63.99em) {
  .catalog-product-view .cs-buybox__addtocart-fieldset {
    align-items: flex-end; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.take-me-top {
  opacity: 0.7;
  background-color: #fa7013;
  width: 50px;
  height: 50px;
  transition: 0.5s;
  position: fixed;
  right: 20px;
  bottom: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center; }
  .take-me-top:hover {
    opacity: 1; }
  .take-me-top::before {
    content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/arrow_up_white.svg");
    display: block;
    width: 30px;
    height: 18px; }

.take-me-top.hidden {
  opacity: 0;
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.catalog-product-view .columns > .column.main .cs-container--page-pdp-top {
  background-color: #edeff1; }
  .catalog-product-view .columns > .column.main .cs-container--page-pdp-top .cs-page-product__top {
    background-color: #fff; }

.main {
  background: #edeff1; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.catalog-product-view .columns > .column.main {
  padding-top: 0px !important; }

.product.alert.alert.stock.link-stock-alert > .action.alert {
  display: flex;
  align-items: center;
  flex-direction: row; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.buybox__section-sign-in {
  display: flex;
  flex-direction: column;
  align-items: flex-end; }
  .buybox__section-sign-in p {
    padding-top: 3rem;
    padding-right: 1rem;
    border-top: 1px solid #b0b0b0;
    text-align: justify;
    font-size: 1.6rem; }
  .buybox__section-sign-in .btn-outlined {
    border: 2px solid #7e57c2;
    border-radius: 200px;
    font-weight: bold;
    padding: 1rem 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.newsletter-redingo {
  background-color: #455a64;
  color: #fff;
  padding: 4rem 1rem;
  margin: 3rem auto 5rem auto; }
  @media (min-width: 48em) {
    .newsletter-redingo {
      border-radius: 7px; } }
  .newsletter-redingo .newsletter__btn-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px; }
    .newsletter-redingo .newsletter__btn-container .newsletter__btn {
      background-color: #7e57c2 !important;
      border-radius: 50px !important;
      border: solid 2px #7e57c2;
      padding: 1rem 3rem !important;
      color: #fff;
      font-size: 2rem;
      font-weight: bold !important;
      white-space: nowrap;
      letter-spacing: 1px;
      height: 40px !important;
      line-height: 1 !important;
      cursor: pointer; }
      .newsletter-redingo .newsletter__btn-container .newsletter__btn:hover {
        color: #fff;
        background-color: #4d2c91 !important;
        border: solid 2px #4d2c91; }
  .newsletter-redingo .newsletter__title-container {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 150px; }
    .newsletter-redingo .newsletter__title-container .newsletter__title {
      display: inline-block;
      font-size: 3rem;
      padding: 5rem 1rem 1rem 1rem;
      position: relative;
      color: #fff;
      text-align: center; }
      .newsletter-redingo .newsletter__title-container .newsletter__title::before {
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        content: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/newsletter-orange.svg); }
  .newsletter-redingo .comment {
    font-size: 1.3rem; }

@media (min-width: 48em) {
  .newsletter-redingo .newsletter__title-container .newsletter__title {
    padding: 1rem 2rem 1rem 5rem;
    text-align: justify; }
    .newsletter-redingo .newsletter__title-container .newsletter__title::before {
      top: 14px;
      left: 0px;
      transform: translateX(0%); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-image-teaser--slider.cs-image-teaser__slides {
  max-height: 414px !important;
  border-radius: 7px; }

.section-wrapper-slider {
  padding-bottom: 3rem; }
  @media (min-width: 64em) {
    .section-wrapper-slider {
      margin-left: -0.5rem;
      margin-right: -1rem;
      width: calc(100% + 1rem) !important; } }
  @media (min-width: 64em) {
    .section-wrapper-slider .home-top-slider {
      padding: 0.5rem; } }
  .section-wrapper-slider .home-top-slider .home-slider-box {
    background: #fff; }
  .section-wrapper-slider .box {
    padding: 0.5rem 0; }
    @media (min-width: 64em) {
      .section-wrapper-slider .box {
        padding: 0.5rem; } }
  .section-wrapper-slider .newsletter-redingo {
    padding: 0.5rem 1.5rem;
    border-radius: 7px;
    margin: 0.5rem 0;
    min-height: 300px; }
    @media (min-width: 64em) {
      .section-wrapper-slider .newsletter-redingo {
        margin: 0.5rem; } }
    .section-wrapper-slider .newsletter-redingo .newsletter__btn-container {
      min-height: 80px; }
      @media (min-width: 64em) {
        .section-wrapper-slider .newsletter-redingo .newsletter__btn-container {
          min-height: 50px; } }
    .section-wrapper-slider .newsletter-redingo .newsletter__title-container {
      min-height: 95px;
      flex-direction: column;
      min-height: 300px; }
      .section-wrapper-slider .newsletter-redingo .newsletter__title-container .newsletter__title {
        font-size: 2rem;
        text-align: left;
        padding-bottom: 0; }
  .section-wrapper-slider .home-slider-slick {
    background: #fff;
    border-radius: 7px; }
    .section-wrapper-slider .home-slider-slick .content {
      background: #fff;
      padding: 2rem 1.5rem;
      min-height: 300px; }
      .section-wrapper-slider .home-slider-slick .content .title {
        font-size: 2.5rem;
        padding-bottom: 1rem; }
        @media (min-width: 90em) {
          .section-wrapper-slider .home-slider-slick .content .title {
            font-size: 3rem; } }
      .section-wrapper-slider .home-slider-slick .content .subtitle {
        padding-bottom: 2rem; }
    .section-wrapper-slider .home-slider-slick .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      margin-top: 2rem; }
      .section-wrapper-slider .home-slider-slick .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
      .section-wrapper-slider .home-slider-slick .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
  .section-wrapper-slider .slick-slide {
    margin-bottom: -1.5rem; }
  .section-wrapper-slider .slick-slider {
    padding: 0; }
  .section-wrapper-slider .slick-dotted.slick-slider {
    margin-bottom: 0; }
  .section-wrapper-slider .slick-slide img {
    max-width: 100%;
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
    @media (min-width: 48em) {
      .section-wrapper-slider .slick-slide img {
        border-top-right-radius: 0;
        border-bottom-left-radius: 7px; } }
    @media (min-width: 64em) {
      .section-wrapper-slider .slick-slide img {
        max-height: 433px;
        aspect-ratio: 460/235;
        min-height: 408px; } }
  .section-wrapper-slider .slick-dots {
    bottom: 20px; }
    @media (min-width: 48em) {
      .section-wrapper-slider .slick-dots {
        text-align: right;
        padding-right: 4rem; } }
    .section-wrapper-slider .slick-dots li button::before {
      content: "\002D";
      font-size: 4rem; }

.fast-delivery-box, .discounts-box {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-direction: column;
  text-align: center;
  border-radius: 7px;
  padding: 1rem 2rem;
  height: 100%;
  min-height: 200px; }
  .fast-delivery-box a, .fast-delivery-box a:hover, .discounts-box a, .discounts-box a:hover {
    color: #455a64; }
  .fast-delivery-box .title, .discounts-box .title {
    font-size: 2rem;
    padding: 1rem 0;
    margin: 0; }
    @media (min-width: 90em) {
      .fast-delivery-box .title, .discounts-box .title {
        font-size: 2.4rem; } }
  .fast-delivery-box .subtitle, .discounts-box .subtitle {
    font-size: 1.5rem;
    max-width: 210px; }

.fast-delivery-box {
  background: #17c8c0;
  color: #fff;
  margin-bottom: -2rem; }
  @media (min-width: 48em) {
    .fast-delivery-box {
      margin-right: 1rem; } }
  @media (min-width: 64em) {
    .fast-delivery-box {
      margin-right: auto; } }
  .fast-delivery-box .title {
    color: #fff; }

/* .fast-delivery-box::before{
    content: 'paczka';
} */
.discounts-box {
  background: #fff; }

/* .discounts-box::before{
    content: 'koszyk';
} */
.section-wrapper-covid {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding-top: 0;
  padding-bottom: 2rem;
  margin-left: -0.5rem;
  margin-right: -0.5rem; }
  .section-wrapper-covid .item > * {
    min-height: 368px; }
  .section-wrapper-covid .item > *,
  .section-wrapper-covid .item > * > *,
  .section-wrapper-covid .item > * > * > *,
  .section-wrapper-covid .item > * > * > * > * {
    height: 100%; }
  .section-wrapper-covid .p-2 {
    padding: 0.5rem; }
    .section-wrapper-covid .p-2 .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      margin-top: 1rem; }
      .section-wrapper-covid .p-2 .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
  .section-wrapper-covid .free-2-1-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #17c8c0;
    color: #fff;
    border-radius: 7px;
    padding: 1.5rem 3rem;
    text-align: center;
    height: 100%;
    margin-bottom: -20px;
    min-height: 460px; }
    .section-wrapper-covid .free-2-1-box .free-2_title {
      font-size: 5rem;
      font-weight: bold;
      display: flex;
      flex-direction: column;
      line-height: 1;
      padding-bottom: 3rem;
      padding-top: 3rem; }
    .section-wrapper-covid .free-2-1-box .title-big {
      font-size: 13rem; }
    .section-wrapper-covid .free-2-1-box .title {
      font-size: 2.5rem;
      color: #fff; }
    .section-wrapper-covid .free-2-1-box .title-small {
      font-size: 1.6rem; }
  .section-wrapper-covid .new-in-accessories-box {
    background: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 460px; }
    .section-wrapper-covid .new-in-accessories-box .content {
      padding: 1.5rem 3rem; }
    .section-wrapper-covid .new-in-accessories-box .title {
      font-size: 2.5rem; }
    .section-wrapper-covid .new-in-accessories-box .subtitle {
      font-size: 1.6rem;
      color: #455a64; }
    .section-wrapper-covid .new-in-accessories-box img {
      border-top-left-radius: 7px;
      border-top-right-radius: 7px; }
  .section-wrapper-covid .covid-box {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding: 3rem;
    color: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 460px;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://images.unsplash.com/photo-1613119719948-d53865658a88?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80"); }
    .section-wrapper-covid .covid-box .title {
      font-size: 3.2rem;
      color: #fff; }
    .section-wrapper-covid .covid-box .subtitle {
      font-size: 2.5rem;
      max-width: 380px; }
  .section-wrapper-covid .covid-box-cms .cs-image-teaser__picture {
    min-height: 460px; }
  .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure {
    max-height: 400px;
    min-height: 460px;
    border-radius: 7px;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure {
        max-height: 460px; } }
    .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure .cs-image-teaser__description {
      max-width: 100%; }

.section-wrapper-season-is-on {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding-bottom: 3rem; }
  .section-wrapper-season-is-on .season-is-on-box {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding: 3rem 1.5rem;
    color: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 300px;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://images.unsplash.com/photo-1613119719948-d53865658a88?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80"); }
    .section-wrapper-season-is-on .season-is-on-box .title {
      font-size: 3.2rem;
      color: #fff;
      max-width: 360px; }
  .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__picture {
    min-height: 400px; }
  .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure {
    height: 100%;
    min-height: 300px;
    max-height: 400px;
    border-radius: 7px;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure {
        max-height: 300px; } }
    .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure .cs-image-teaser__slogan {
      font-size: 3.2rem;
      color: #fff;
      max-width: 360px; }
  @media (max-width: 63.99em) {
    .section-wrapper-season-is-on .season-is-on-slider {
      margin-left: -1.5rem;
      margin-right: -1.5rem; } }
  .section-wrapper-season-is-on .season-is-on-slider .cs-slider-pagination {
    display: none; }
  .section-wrapper-season-is-on .season-is-on-slider .cs-products-carousel {
    margin-bottom: 0; }
  .section-wrapper-season-is-on .season-is-on-slider .block-static-block.widget {
    margin-bottom: 0; }
  @media (min-width: 64em) {
    .section-wrapper-season-is-on .season-is-on-slider .cs-container.cs-container--products-carousel {
      padding-right: 0; } }
  .section-wrapper-season-is-on .cs-product-tile__container {
    min-height: 300px; }

.section-job-offers {
  margin-bottom: 5rem; }
  .section-job-offers .box {
    background: #fff;
    border-radius: 7px;
    padding: 2rem;
    margin-bottom: 2rem; }
    .section-job-offers .box .title {
      font-size: 2rem; }
    .section-job-offers .box .subtitle {
      font-size: 2rem; }
  .section-job-offers .box-offer {
    margin-top: -3rem; }
  .section-job-offers .item-city {
    display: flex;
    justify-content: flex-end; }
    .section-job-offers .item-city p {
      position: relative; }
      .section-job-offers .item-city p::before {
        position: absolute;
        content: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/geo-orange.svg);
        left: -20px; }
  .section-job-offers .item-btn,
  .section-job-offers .item-btn-send {
    display: flex;
    justify-content: flex-end;
    align-items: center; }
    .section-job-offers .item-btn .btn,
    .section-job-offers .item-btn-send .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      text-align: center;
      width: 100%; }
      .section-job-offers .item-btn .btn:hover,
      .section-job-offers .item-btn-send .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
      @media (min-width: 48em) {
        .section-job-offers .item-btn .btn,
        .section-job-offers .item-btn-send .btn {
          width: auto; } }
  .section-job-offers .item-btn-send {
    justify-content: center;
    padding: 3rem 2rem; }

.cms-home-test .home-top-slider .block-static-block.widget, .cms-home-test .home-top-slider .block-cms-link.widget {
  margin-bottom: 0.5rem; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
  width: 100%; }

.cms-home-test .cs-image-teaser__content-wrapper--over {
  padding-bottom: 4rem; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
  padding: 0;
  -ms-overflow-style: none;
  /* for Internet Explorer, Edge */
  scrollbar-width: none;
  /* for Firefox */
  overflow-y: scroll; }
  .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides::-webkit-scrollbar {
    display: none; }
  @media (min-width: 64em) {
    .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
      min-height: 520px; } }

.cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides {
  max-height: 395px;
  padding: 0;
  border-radius: 7px; }
  .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides .cs-image-teaser__picture {
    min-height: 400px; }
    @media (min-width: 64em) {
      .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides .cs-image-teaser__picture {
        min-height: 520px; } }

.cms-home-test .cs-slider-pagination {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%); }

.cms-home-test .cs-container--image-teaser {
  margin: 0; }

.cms-home-test .cs-image-teaser__figure {
  overflow: hidden; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
  --base-size: 100%; }
  @media (min-width: 64em) {
    .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
      min-height: 395px; } }

@media (min-width: 64em) {
  .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides-wrapper {
    min-height: 395px; } }

@media (max-width: 23.125em) {
  .cms-home-test .cs-image-teaser__slogan {
    font-size: 3.5rem; } }

.cms-home-test .cs-image-teaser__description {
  font-size: 2rem;
  max-width: 85%;
  margin: 1rem auto; }
  @media (min-width: 23.125em) {
    .cms-home-test .cs-image-teaser__description {
      font-size: 2.4rem; } }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited {
  background-color: #7e57c2;
  color: #fff; }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span {
  padding-right: 3em; }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta *,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited * {
  color: #fff;
  fill: #fff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.blog-page #maincontent .cs-container__inner,
.blog-post-view #maincontent .cs-container__inner {
  max-width: 114rem; }

.blog-page .block-categories .block-title,
.blog-post-view .block-categories .block-title {
  display: none; }

.blog-page .accordion,
.blog-post-view .accordion {
  display: flex;
  margin-top: -5rem; }
  .blog-page .accordion .item,
  .blog-post-view .accordion .item {
    padding: 2rem 0; }
    .blog-page .accordion .item a,
    .blog-post-view .accordion .item a {
      color: #455a64;
      padding-right: 2rem; }
      .blog-page .accordion .item a:hover,
      .blog-post-view .accordion .item a:hover {
        color: #17c8c0; }

.blog-page .post-list-wrapper,
.blog-post-view .post-list-wrapper {
  margin-right: -1.5rem;
  margin-left: -1.5rem; }
  .blog-page .post-list-wrapper .post-list,
  .blog-post-view .post-list-wrapper .post-list {
    display: flex;
    flex-wrap: wrap; }
    .blog-page .post-list-wrapper .post-list .post-list-item,
    .blog-post-view .post-list-wrapper .post-list .post-list-item {
      max-width: 360px;
      margin: 0 auto; }
    .blog-page .post-list-wrapper .post-list .post-description,
    .blog-post-view .post-list-wrapper .post-list .post-description {
      padding: 1rem 2rem 0 2rem; }
    .blog-page .post-list-wrapper .post-list .post-title,
    .blog-post-view .post-list-wrapper .post-list .post-title {
      text-transform: none;
      font-size: 2rem; }
      .blog-page .post-list-wrapper .post-list .post-title a,
      .blog-post-view .post-list-wrapper .post-list .post-title a {
        color: #455a64; }
    .blog-page .post-list-wrapper .post-list .post-holder,
    .blog-post-view .post-list-wrapper .post-list .post-holder {
      border-bottom: none;
      padding: 1.5rem;
      height: 100%;
      margin-bottom: 0;
      max-width: 360px; }
    .blog-page .post-list-wrapper .post-list .post-content,
    .blog-post-view .post-list-wrapper .post-list .post-content {
      background-color: #fff;
      border-radius: 7px;
      height: 100%; }
      .blog-page .post-list-wrapper .post-list .post-content img,
      .blog-post-view .post-list-wrapper .post-list .post-content img {
        border-top-right-radius: 7px;
        border-top-left-radius: 7px; }

.blog-page .post-list-wrapper.blog-widget-recent .post-list-item,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-list-item {
  padding: 1.5rem; }

.blog-page .post-list-wrapper.blog-widget-recent .post-holder,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-holder {
  padding: 0;
  min-height: 300px; }

.blog-page .post-list-wrapper.blog-widget-recent .post-description,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-description {
  margin-bottom: 0; }

.blog-page .post-list-wrapper.blog-widget-recent .item.post-posed-date,
.blog-post-view .post-list-wrapper.blog-widget-recent .item.post-posed-date {
  top: 10px;
  right: 10px; }

.post-bottom .post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {
  min-height: 100%; }

.blog-page .item.post-posed-date {
  position: absolute;
  top: 25px;
  right: 30px;
  background: #fff;
  padding: 0.5rem 1rem;
  border-radius: 200px;
  font-size: 1.2rem; }

.blog-page .pages.cs-pagination .cs-pagination__content {
  display: flex;
  flex-direction: row;
  justify-content: center; }
  .blog-page .pages.cs-pagination .cs-pagination__content svg {
    height: 10px;
    margin: 0px 10px; }
  .blog-page .pages.cs-pagination .cs-pagination__content .pages-items {
    display: flex;
    flex-direction: row; }
  .blog-page .pages.cs-pagination .cs-pagination__content .cs-pagination__number--current > .label {
    display: none !important; }
  .blog-page .pages.cs-pagination .cs-pagination__content .pages-items .cs-pagination__item {
    margin: 0px 10px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.checkout-cart-index #maincontent {
  background: #edeff1; }

.checkout-cart-index .cs-cart-item.item-info {
  background-color: #fff; }

.checkout-cart-index .action.continue {
  border: solid;
  padding: 1rem 2rem;
  border-radius: 200px;
  display: inline-block;
  margin-bottom: 3rem; }

.checkout-cart-index .field .input-text {
  border-radius: 200px; }

.checkout-cart-index .field .label {
  padding: 0 0 1rem 0;
  font-size: 1.6rem; }

.checkout-cart-index .cs-container__cart-coupons {
  padding: 4rem 0; }
  .checkout-cart-index .cs-container__cart-coupons .cs-discount {
    border-top: solid 1px #888; }
  .checkout-cart-index .cs-container__cart-coupons .cs-discount__title-text {
    color: #212121;
    font-size: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.redingo-categories {
  padding-top: 2rem;
  display: flex;
  flex-wrap: wrap; }
  .redingo-categories .category {
    padding: 0 1rem 1rem 1rem; }
    .redingo-categories .category .wrapper {
      background-color: white;
      border-radius: 7px;
      padding: 1rem;
      font-size: 1.5rem;
      min-height: 103px;
      display: flex;
      flex-direction: column;
      justify-content: center; }
      @media (min-width: 48em) {
        .redingo-categories .category .wrapper {
          min-height: 280px; } }
      @media (min-width: 64em) {
        .redingo-categories .category .wrapper {
          padding: 2rem; } }
      @media (max-width: 64em) {
        .redingo-categories .category .wrapper .sub-category-wrapper {
          display: none; } }
    .redingo-categories .category .category-content {
      display: flex;
      flex-direction: column; }
      .redingo-categories .category .category-content img {
        margin: 0 auto; }
        @media (max-width: 48em) {
          .redingo-categories .category .category-content img {
            display: none; } }
      .redingo-categories .category .category-content .category-name {
        font-size: 1.7rem;
        font-weight: 700;
        margin: 0.5rem 1rem;
        color: #455a64; }
        @media (min-width: 64em) {
          .redingo-categories .category .category-content .category-name {
            margin: 0.5rem 2rem; } }
    .redingo-categories .category .sub-category-wrapper ul {
      margin: 0px;
      list-style: none;
      padding: 0px;
      padding: 0.5rem 2rem; }
      .redingo-categories .category .sub-category-wrapper ul li {
        margin: 0px;
        padding: 0.2rem 0; }
        .redingo-categories .category .sub-category-wrapper ul li a {
          color: #455a64; }
    .redingo-categories .category .all-categories {
      display: flex;
      padding: 0.5rem 2rem;
      position: relative;
      font-weight: bold;
      color: #455a64; }
      @media (max-width: 64em) {
        .redingo-categories .category .all-categories {
          display: none; } }
      .redingo-categories .category .all-categories::after {
        content: '\276F';
        padding-left: 7px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.section-wrapper-about-us {
  background: #fff;
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-radius: 7px; }
  .section-wrapper-about-us ul {
    list-style: none;
    padding-left: 0; }
    .section-wrapper-about-us ul li {
      position: relative;
      padding-left: 2rem; }
      .section-wrapper-about-us ul li::before {
        content: '';
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background-color: orange;
        display: inline-block;
        position: absolute;
        top: 9px;
        left: 0; }
  .section-wrapper-about-us img {
    border-radius: 7px; }
  .section-wrapper-about-us .page-title {
    font-size: 4rem;
    color: #fff;
    font-weight: normal;
    margin-bottom: 0;
    padding-bottom: 0; }
  .section-wrapper-about-us .page-subtitle {
    font-size: 3rem; }
  .section-wrapper-about-us .btn {
    background-color: #7e57c2;
    border-radius: 50px;
    padding: 1rem 2.5rem;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    white-space: nowrap;
    letter-spacing: 1px; }
    .section-wrapper-about-us .btn:hover {
      color: #fff;
      background-color: #4d2c91; }
  .section-wrapper-about-us .content {
    padding: 1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-about-us .content {
        padding: 2rem 6rem; } }
  .section-wrapper-about-us .section-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; }
    .section-wrapper-about-us .section-wrapper .item-col {
      padding: 1.5rem 0;
      display: flex;
      align-items: center;
      justify-content: center; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .section-wrapper .item-col {
          padding: 1.5rem; } }
      @media (min-width: 64em) {
        .section-wrapper-about-us .section-wrapper .item-col {
          justify-content: flex-end; } }
  .section-wrapper-about-us .section-row-offer .item-col {
    justify-content: start; }
  .section-wrapper-about-us .box-with-bg-img {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    margin: 2rem auto;
    color: #fff;
    background: linear-gradient(rgba(126, 87, 194, 0.4), rgba(126, 87, 194, 0.4)), url("../../../../media/wysiwyg/o_nas/o-nas.jpg");
    background-size: cover;
    background-position: center;
    border-radius: 7px; }
    @media (min-width: 48em) {
      .section-wrapper-about-us .box-with-bg-img {
        min-height: 800px; } }
    .section-wrapper-about-us .box-with-bg-img .title {
      font-size: 3rem;
      color: #fff;
      text-align: center;
      margin-bottom: 0; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .box-with-bg-img .title {
          font-size: 7rem; } }
    .section-wrapper-about-us .box-with-bg-img .subtitle {
      font-size: 2rem;
      color: #fff;
      text-align: center;
      font-weight: normal; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .box-with-bg-img .subtitle {
          font-size: 4rem; } }
  .section-wrapper-about-us .box-ecological-packaging {
    background: linear-gradient(rgba(126, 87, 194, 0.4), rgba(126, 87, 194, 0.4)), url("../../../../media/wysiwyg/o_nas/o-nas2.jpg");
    background-size: cover;
    background-position: center; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.b2c-b2b_box {
  display: flex;
  align-items: center;
  justify-content: center;
  border: solid 1px #ddd;
  background: #fff;
  padding: 0.5rem;
  border-radius: 200px;
  line-height: 1;
  min-height: 30px; }
  .b2c-b2b_box .b2c-b2b_item {
    padding: 0.2rem 2rem;
    display: flex;
    border-radius: 200px;
    font-weight: bold; }
  .b2c-b2b_box .b2c_box {
    background: #17c8c0;
    color: #fff; }
  .b2c-b2b_box .b2b_box a {
    color: #455a64; }
    .b2c-b2b_box .b2b_box a:hover {
      color: #17c8c0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.partners-slider-slick .slick-track {
  display: flex; }

.partners-box {
  padding-bottom: 0;
  overflow: hidden; }
  .partners-box h2 {
    padding-top: 2rem; }
  .partners-box img {
    border-radius: 7px;
    padding-right: 0.5rem;
    width: 97%; }
  .partners-box .slick-slider .slick-dots {
    list-style: none;
    display: flex;
    justify-content: center;
    padding: 1rem 0 0 0;
    margin: 0; }
    .partners-box .slick-slider .slick-dots li {
      width: 20px;
      margin-right: 5px; }
      @media (min-width: 30em) {
        .partners-box .slick-slider .slick-dots li {
          width: 40px; } }
      .partners-box .slick-slider .slick-dots li button {
        width: 20px;
        height: 5px;
        border: none;
        border-radius: 200px;
        background: #7e57c2;
        color: transparent;
        cursor: pointer; }
        @media (min-width: 30em) {
          .partners-box .slick-slider .slick-dots li button {
            width: 40px; } }
        .partners-box .slick-slider .slick-dots li button::before {
          content: '';
          background: #7e57c2;
          width: 20px;
          height: 4px;
          border-radius: 200px;
          opacity: 1; }
          @media (min-width: 30em) {
            .partners-box .slick-slider .slick-dots li button::before {
              width: 40px; } }
    .partners-box .slick-slider .slick-dots .slick-active button {
      background: #17c8c0;
      opacity: 1; }
      .partners-box .slick-slider .slick-dots .slick-active button::before {
        content: '';
        background: #17c8c0;
        opacity: 1; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cms-strefa-dla-firm .column:not(.sidebar-main) .form.contact,
.cms-konwersja-b2b .column:not(.sidebar-main) .form.contact {
  float: none;
  width: 100%; }

.cms-strefa-dla-firm .column:not(.sidebar-additional) .form.contact,
.cms-konwersja-b2b .column:not(.sidebar-additional) .form.contact {
  float: none;
  width: 100%;
  clear: both;
  padding: 4rem 2rem;
  border-radius: 7px;
  background: #fff; }
  @media (min-width: 48em) {
    .cms-strefa-dla-firm .column:not(.sidebar-additional) .form.contact,
    .cms-konwersja-b2b .column:not(.sidebar-additional) .form.contact {
      min-width: 60rem; } }

.cms-strefa-dla-firm .cs-dashboard .fieldset,
.cms-konwersja-b2b .cs-dashboard .fieldset {
  max-width: 100% !important; }

.cms-strefa-dla-firm .cs-dashboard .legend,
.cms-konwersja-b2b .cs-dashboard .legend {
  padding: 0;
  margin: 0; }
  .cms-strefa-dla-firm .cs-dashboard .legend h2,
  .cms-konwersja-b2b .cs-dashboard .legend h2 {
    padding: 0;
    margin: 0; }

.cms-strefa-dla-firm #maincontent,
.cms-konwersja-b2b #maincontent {
  background: #edeff1; }

.cms-strefa-dla-firm .section-wrapper,
.cms-konwersja-b2b .section-wrapper {
  padding: 3rem 0;
  margin-left: -1rem;
  margin-right: -1rem; }
  .cms-strefa-dla-firm .section-wrapper .contact-box,
  .cms-konwersja-b2b .section-wrapper .contact-box {
    background: #fff;
    padding: 2rem;
    border-radius: 7px;
    margin: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 250px; }
    @media (min-width: 64em) {
      .cms-strefa-dla-firm .section-wrapper .contact-box,
      .cms-konwersja-b2b .section-wrapper .contact-box {
        min-height: 347px; } }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn {
      border: solid 2px;
      border-radius: 60px;
      padding: 0.5rem 1rem 0.5rem 3.5rem;
      display: inline-block;
      margin: 0.5rem 0.5rem 0.5rem 0;
      min-width: 200px;
      text-align: center;
      position: relative; }
      .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn::before,
      .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/telephone-purple.svg");
        position: absolute;
        left: 1.5rem;
        top: 53%;
        transform: translateY(-50%);
        line-height: 1; }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn-mail::before,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn-mail::before {
      content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/mail-purple.svg"); }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-box-hours,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-box-hours {
      padding: 1rem;
      display: inline-block;
      padding-left: 2.3rem;
      position: relative; }
      .cms-strefa-dla-firm .section-wrapper .contact-box .contact-box-hours::before,
      .cms-konwersja-b2b .section-wrapper .contact-box .contact-box-hours::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/clock-purple.svg");
        position: absolute;
        left: 0;
        top: 53%;
        line-height: 1;
        transform: translateY(-50%); }
  .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection,
  .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    min-height: auto;
    padding: 3rem 2rem;
    margin-top: 3rem;
    border: solid 2px #fa7013; }
    .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p,
    .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p {
      margin: 0;
      position: relative; }
      @media (min-width: 30em) {
        .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p,
        .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p {
          padding-left: 7rem; }
          .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p::before,
          .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p::before {
            content: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/exclamation-triangle-orange.svg);
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 0; } }

.cms-strefa-dla-firm .contact-row-tab9,
.cms-konwersja-b2b .contact-row-tab9 {
  margin-right: -1rem;
  margin-left: -1rem; }
  .cms-strefa-dla-firm .contact-row-tab9 .section-tab-title,
  .cms-konwersja-b2b .contact-row-tab9 .section-tab-title {
    padding: 0 1rem 1rem 1rem;
    margin-bottom: 0; }
  .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box,
  .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box {
    display: flex;
    padding: 1rem;
    flex-wrap: wrap; }
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title {
      padding: 1rem 0; }
      .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title .switch,
      .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title .switch {
        color: #455a64;
        padding: 1rem 3rem; }
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title.active > .switch,
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:focus,
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:hover,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title.active > .switch,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:focus,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:hover {
      border-bottom: solid;
      padding-bottom: 0.8rem;
      color: #17c8c0; }

.cms-strefa-dla-firm .section-contact-tabs,
.cms-konwersja-b2b .section-contact-tabs {
  margin-bottom: 8rem; }
  .cms-strefa-dla-firm .section-contact-tabs .content-tab-box,
  .cms-konwersja-b2b .section-contact-tabs .content-tab-box {
    display: flex;
    flex-direction: column;
    background: #fff;
    padding: 2rem;
    margin: 1rem;
    border-radius: 7px; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-name,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-name {
      font-weight: bold;
      padding-bottom: 1rem;
      font-size: 2rem; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-link,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-link {
      padding-bottom: 1rem;
      padding-left: 4rem; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-phone,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-phone {
      position: relative; }
      .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-phone::before,
      .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-phone::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/telephone-gray.svg");
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%); }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-mail,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-mail {
      position: relative; }
      .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-mail::before,
      .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-mail::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/mail-gray.svg");
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%); }

.cms-strefa-dla-firm .form.contact .field .control > textarea,
.cms-konwersja-b2b .form.contact .field .control > textarea {
  border-radius: 15px;
  min-height: 354px; }

@media (min-width: 64em) {
  .cms-strefa-dla-firm .form.contact .field.comment.required,
  .cms-konwersja-b2b .form.contact .field.comment.required {
    padding-right: 2rem;
    padding-left: 2rem; } }

@media (min-width: 80em) {
  .cms-strefa-dla-firm .form.contact .box-items-input,
  .cms-konwersja-b2b .form.contact .box-items-input {
    padding-right: 2rem; } }

.cms-strefa-dla-firm .form.contact .field.terms,
.cms-konwersja-b2b .form.contact .field.terms {
  padding: 1rem 0 0 0; }
  .cms-strefa-dla-firm .form.contact .field.terms .label,
  .cms-konwersja-b2b .form.contact .field.terms .label {
    width: calc(100% - 30px);
    padding-bottom: 0; }

.cms-strefa-dla-firm .form.contact .actions-toolbar,
.cms-konwersja-b2b .form.contact .actions-toolbar {
  display: flex;
  justify-content: flex-end; }

.cms-strefa-dla-firm .form.contact .box-item-terms,
.cms-konwersja-b2b .form.contact .box-item-terms {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-top: 2rem; }
  @media (min-width: 80em) {
    .cms-strefa-dla-firm .form.contact .box-item-terms,
    .cms-konwersja-b2b .form.contact .box-item-terms {
      min-height: 370px; } }

@media (max-width: 23.115em) {
  .cms-strefa-dla-firm .cs-image-teaser__slogan,
  .cms-konwersja-b2b .cs-image-teaser__slogan {
    font-size: 3rem; } }

.cms-strefa-dla-firm .cs-image-teaser__picture,
.cms-konwersja-b2b .cs-image-teaser__picture {
  min-height: 420px; }
  @media (max-width: 23.115em) {
    .cms-strefa-dla-firm .cs-image-teaser__picture,
    .cms-konwersja-b2b .cs-image-teaser__picture {
      aspect-ratio: 1/1 !important; } }
  @media (min-width: 48em) {
    .cms-strefa-dla-firm .cs-image-teaser__picture,
    .cms-konwersja-b2b .cs-image-teaser__picture {
      max-height: 400px; } }

.cms-strefa-dla-firm .cs-image-teaser__description,
.cms-konwersja-b2b .cs-image-teaser__description {
  font-size: 2rem;
  max-width: 900px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link {
  position: relative; }

.user-dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0px;
  background: white;
  list-style: none;
  padding: 5px;
  width: 100%;
  text-align: center;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
  border-radius: 7px; }
  .user-dropdown-menu li {
    background: white; }
  .user-dropdown-menu a {
    font-size: 1.6rem;
    font-weight: 700;
    color: #455a64;
    margin: 0.5rem 2rem;
    font-weight: normal;
    text-align: left; }

@media (min-width: 64.01em) {
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in:hover .user-dropdown-menu {
    display: block; } }

@media (min-width: 64.01em) {
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link::after {
    content: '\276F';
    rotate: 90deg;
    font-size: 2rem; }
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link:hover::after {
    rotate: 270deg; }
  .cs-header-user-nav__label {
    min-width: 80px; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.custom-modal-open {
  cursor: pointer; }

.custom-modal {
  display: none;
  z-index: -1;
  opacity: 0;
  height: 0px;
  width: 0px; }
  .custom-modal .content {
    z-index: -1;
    position: relative; }
  .custom-modal .custom-modal-close {
    background-color: #7e57c2;
    padding: 1rem 2rem;
    margin: 1rem;
    border: none;
    border-radius: 200px;
    width: -moz-fit-content;
    width: fit-content;
    color: white;
    font-size: 1.7rem;
    font-weight: 700;
    text-transform: uppercase;
    margin: 1rem auto;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 2%; }

.custom-modal.open {
  z-index: 997;
  opacity: 1;
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center; }
  .custom-modal.open .content {
    border-radius: 7px;
    background-color: #fff;
    color: #455a64;
    padding: 2rem;
    z-index: 999;
    max-width: 95vw;
    max-height: 95vh;
    min-width: 300px;
    min-height: 300px;
    overflow: auto;
    margin: 0 auto;
    width: 800px;
    height: -moz-fit-content;
    height: fit-content; }
  .custom-modal.open .overlay {
    z-index: 998;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    background-color: #000000b3; }

.newsletter-popup-content {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 2rem;
  font-size: 2.8rem; }
  .newsletter-popup-content h3 {
    font-size: 4rem; }
  .newsletter-popup-content h3, .newsletter-popup-content p {
    text-align: center; }
  .newsletter-popup-content p {
    padding-bottom: 2rem; }
  .newsletter-popup-content .popup-box-input {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column; }
    @media (min-width: 48em) {
      .newsletter-popup-content .popup-box-input {
        flex-direction: row; } }
    .newsletter-popup-content .popup-box-input .field {
      margin-bottom: 0 !important; }
  .newsletter-popup-content .popup-comment {
    font-size: 1.6rem; }
  .newsletter-popup-content .newsletter__btn {
    background: #fa7013;
    color: #fff;
    border-radius: 200px;
    cursor: pointer;
    border: solid 2px #fa7013;
    font-size: 2rem;
    width: 100%;
    line-height: 1.275em;
    padding: 1.2rem 3rem; }
    @media (min-width: 48em) {
      .newsletter-popup-content .newsletter__btn {
        width: 40%;
        margin-left: 2rem; } }
  .newsletter-popup-content .amform-form {
    width: 100%;
    max-width: 500px;
    padding: 0; }
  .newsletter-popup-content .amform-form .action.primary, .newsletter-popup-content .amform-parent .action.primary {
    margin-top: 0;
    cursor: pointer; }
  .newsletter-popup-content .cs-newsletter__actions {
    height: 5.4rem;
    width: 70px; }
    .newsletter-popup-content .cs-newsletter__actions .cs-newsletter__button {
      width: 100%; }
      .newsletter-popup-content .cs-newsletter__actions .cs-newsletter__button::before {
        content: ">"; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.rendered-form button,
.rendered-form input,
.rendered-form select,
.rendered-form textarea {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #455a64;
  background: #fff;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0 0 0.2em;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit; }

.rendered-form input.amform-checkbox {
  width: auto; }

.amcform-page-wrap {
  justify-content: flex-end; }

.amform-form {
  margin: 0 auto 10px;
  max-width: 700px;
  background: white;
  border-radius: 7px;
  padding: 3rem 1.5rem; }

.amform-versiontwo-label {
  font-size: 0.85em; }

.rendered-form .checkbox-group {
  border: 2px solid #dcdcdc;
  border-radius: 40px;
  padding: 2rem 4rem; }

.rendered-form .form-control:not([name="document"]), .rendered-form output {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #455a64;
  background: #fff;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0 0 0.2em;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit; }

.rendered-form .fieldset .fields .field.form-group {
  margin-bottom: 3rem; }

.rendered-form .fieldset .fields .field .input-text:hover:not([disabled]), .rendered-form .fieldset .fields .field .input-text:focus:not([disabled]) {
  border: 2px solid #7e57c2 !important;
  box-shadow: none !important; }

.amform-form .action.primary, .amform-parent .action.primary {
  background: #7e57c2;
  border-radius: 50px;
  padding: 1rem 2.5rem;
  margin-top: 4rem;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  white-space: nowrap;
  letter-spacing: 1px;
  border: none;
  width: 100%; }
  .amform-form .action.primary:hover, .amform-parent .action.primary:hover {
    color: #fff;
    background-color: #4d2c91; }
  @media (min-width: 48em) {
    .amform-form .action.primary, .amform-parent .action.primary {
      width: auto;
      position: relative; } }

.amform-form .amcform-toolbar {
  display: flex;
  justify-content: flex-end; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.redingo-unit-price-wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 0 0.5rem 0;
  font-size: 1.4rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.wishlist .cs-header-user-nav__qty-counter--wishlist {
  color: #fff;
  background-color: #17c8c0;
  top: -5px;
  right: -8px;
  padding: 0.8rem;
  width: 15px;
  height: 15px;
  position: absolute; }
  .wishlist .cs-header-user-nav__qty-counter--wishlist::before {
    content: none; }
  .wishlist .cs-header-user-nav__qty-counter--wishlist .cs-header-user-nav__qty-counter-span {
    min-width: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem; }

.cs-buybox__section--extras {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
  width: 100%; }
  @media (min-width: 48em) {
    .cs-buybox__section--extras {
      padding-top: 0 !important; } }
  .cs-buybox__section--extras .cs-buybox__addto-list {
    justify-content: flex-start; }
  .cs-buybox__section--extras .cs-buybox__addto-item--wishlist .cs-buybox__addto-icon--wishlist {
    width: 2rem;
    height: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .pagebuilder-mobile-only {
    display: inline-block; } }

.pagebuilder-mobile-hidden {
  display: none; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2Ntcy5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29uZmlnL2JyZWFrcG9pbnRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Jhc2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2ZvbnQtZmFtaWx5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2NvbnRhaW5lci9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL25vZGVfbW9kdWxlcy9pbmNsdWRlLW1lZGlhL2Rpc3QvX2luY2x1ZGUtbWVkaWEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9NYWdlbnRvX1RoZW1lL3dlYi9jc3Mvc291cmNlL19sYXlvdXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL25hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL19zbGlkZXIvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL25hdmlnYXRpb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9wYWdpbmF0aW9uL3BhZ2luYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9hZGR0b2NhcnQvYWRkdG9jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvYnV0dG9uL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXR0b24vYW5pbWF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2F1dGhvcml6YXRpb24tbGluay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYXV0aG9yaXphdGlvbi1saW5rL2F1dGhvcml6YXRpb24tbGluay5zY3NzIiwid2VicGFjazovL1tuYW1lXS9hdXRvY29tcGxldGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2JhZGdlL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9iYWRnZS9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9icmVhZGNydW1icy9icmVhZGNydW1icy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9jb21wb25lbnQtc3BhY2luZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jb250YWluZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY29va2llLW1lc3NhZ2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Nvb2tpZS1tZXNzYWdlL2Nvb2tpZS1tZXNzYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2RhaWx5ZGVhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGFpbHlkZWFsL2RhaWx5ZGVhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kaXNwbGF5LWNvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2Rpc3BsYXktY29udHJvbGxlci9kaXNwbGF5LWNvbnRyb2xsZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZHJvcGRvd24tc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZHJvcGRvd24tc3dpdGNoZXIvZHJvcGRvd24tc3dpdGNoZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZmllbGQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2ZpZWxkL2hvb2suc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9maWVsZC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL2ZpZWxkLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb290ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZm9vdGVyLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci1saW5rcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9nb29nbGUtcmVjYXB0Y2hhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9nb29nbGUtcmVjYXB0Y2hhL2dvb2dsZS1yZWNhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkZXIvc2VhcmNoL3NlYXJjaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci91c2VyLW5hdi91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3F0eS1jb3VudGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2hlYWRsaW5lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9oZWFkbGluZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9sYXp5bG9hZC9sYXp5bG9hZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9saW5rcy1ibG9jay1hZGR0by5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbGlua3MtYmxvY2stYWRkdG8vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbG9nby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21lc3NhZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWluaWNhcnQtcHJvZHVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbWluaWNhcnQtcHJvZHVjdC9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvaGlkZS1zY3JvbGxiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2FzcGVjdC1yYXRpby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9uZXdzbGV0dGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9uZXdzbGV0dGVyL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtbmF2aWdhdGlvbi9vZmZjYW52YXMtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtdG9nZ2xlL29mZmNhbnZhcy10b2dnbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMvb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhZ2UtYm90dG9tLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLWJvdHRvbS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLXRpdGxlL3BhZ2UtdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJpY2UtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L3ByaWNlLWJveC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtdGlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3N0cmluZy10by1udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXRpbGUvcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3RzLWxpc3QvcHJvZHVjdHMtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcXR5LWluY3JlbWVudC9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3NvY2lhbC1tZWRpYS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zb2NpYWwtbWVkaWEtbGlzdC9zb2NpYWwtbWVkaWEtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdGFyLXJhdGluZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3Rhci1yYXRpbmcvc3Rhci1yYXRpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3dhdGNoZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3N3YXRjaGVzL3N3YXRjaGVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3RvcGJhci90b3BiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvdHlwb2dyYXBoeS5zY3NzIiwid2VicGFjazovL1tuYW1lXS92aWRlby10ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3ZpZGVvLXRlYXNlci92aWRlby10ZWFzZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdmlzdWFsbHktaGlkZGVuLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Zpc3VhbGx5LWhpZGRlbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9ncm91cGVkLXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2dyb3VwZWQtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc2ltcGxlLXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3NpbXBsZS10YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9nby10b3Auc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vZ28tdG9wLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2JhY2tncm91bmRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2JhY2tncm91bmRzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtbW9kLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3Byb2R1Y3QtbW9kLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2J1eWJveC1zaWduLWluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2J1eWJveC1zaWduLWluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaG9tZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9ob21lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Jsb2cuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYmxvZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jaGVja291dC1jYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2NoZWNrb3V0LWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3ViY2F0ZWdvcmllcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9zdWJjYXRlZ29yaWVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Fib3V0LXVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2Fib3V0LXVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2IyYy1iMmIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYjJjLWIyYi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYXJ0bmVycy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9wYXJ0bmVycy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9iMmItcGFnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9iMmItcGFnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9oZWFkZXItdXNlci1hY2NvdW50LWRyb3Bkb3duLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2hlYWRlci11c2VyLWFjY291bnQtZHJvcGRvd24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY3VzdG9tLW1vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2N1c3RvbS1tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb3JtLXJlbmRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9mb3JtLXJlbmRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS91bml0LXByaWNlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3VuaXQtcHJpY2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vd2lzaGxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vd2lzaGxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFnZWJ1aWxkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vcGFnZWJ1aWxkZXIuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuLy8gQnJlYWtwb2ludHMgaW1wb3J0IGZyb20gdmlldy54bWwgW3B4XVxuJGJyZWFrcG9pbnRzX3B4OiBkZWVwLWdldCgkdmlldy14bWwsIHZhcnMsIE1hZ2VudG9fVGhlbWUsIGJyZWFrcG9pbnRzKTtcbiRicmVha3BvaW50c19lbTogKCk7XG5cbkBmdW5jdGlvbiBjYWxjdWxhdGUtYnJlYWtwb2ludHMoJGJyZWFrcG9pbnRzX2VtLCAkYnJlYWtwb2ludHNfcHgpIHtcbiAgICAkcmVzdWx0OiAkYnJlYWtwb2ludHNfZW07XG4gICAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRicmVha3BvaW50c19weCB7XG4gICAgICAgICRyZXN1bHQ6IG1hcC1tZXJnZShcbiAgICAgICAgICAgICRyZXN1bHQsXG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgdW5xdW90ZSgka2V5KTogJHZhbHVlIC8gMTYgKiAxZW0sXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgQHJldHVybiAkcmVzdWx0O1xufVxuXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cblxuJGJyZWFrcG9pbnRzOiBjYWxjdWxhdGUtYnJlYWtwb2ludHMoJGJyZWFrcG9pbnRzX2VtLCAkYnJlYWtwb2ludHNfcHgpICFkZWZhdWx0O1xuXG4vLyBwaG9uZTogMjMuMTI1ZW0gLSAzNzBweFxuLy8gcGhvbmVMZzogMzBlbSAtIDQ4MHB4LFxuLy8gdGFibGV0OiA0OGVtIC0gNzY4cHgsXG4vLyBsYXB0b3A6IDY0ZW0gLSAxMDI0cHgsXG4vLyBsYXB0b3BMZzogODBlbSAtIDEyODBweCxcbi8vIGRlc2t0b3A6IDkwZW0gLSAxNDQwcHgsXG4vLyB0djogMTIwZW0gLSAxOTIwcHgsXG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiA2Mi41JTtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICBoZWlnaHQ6IC13ZWJraXQtZmlsbC1hdmFpbGFibGU7IH1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuYm9keSB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBtaW4taGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOyB9XG5cbmJ1dHRvbixcbmlucHV0LFxudGV4dGFyZWEsXG5zZWxlY3Qge1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4vKiBIaWRlIEhUTUw1IFVwIGFuZCBEb3duIGFycm93cy4gKi9cbmlucHV0W3R5cGU9J251bWJlciddIHtcbiAgYXBwZWFyYW5jZTogdGV4dGZpZWxkOyB9XG4gIGlucHV0W3R5cGU9J251bWJlciddOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCBpbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgIG1hcmdpbjogMDsgfVxuXG4vKiBIaWRlIEhUTUw1ICdYJyBpbiBzZWFyY2ggaW5wdXQgKi9cbmlucHV0W3R5cGU9J3NlYXJjaCddIHtcbiAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBJbnRlcm5ldCBFeHBsb3JlciAqL1xuICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIENocm9tZSAqLyB9XG4gIGlucHV0W3R5cGU9J3NlYXJjaCddOjotbXMtY2xlYXIsIGlucHV0W3R5cGU9J3NlYXJjaCddOjotbXMtcmV2ZWFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDsgfVxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiwgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbiwgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4ubG9hZGluZy1tYXNrW2RhdGEtcm9sZT0nbWFpbi1jc3MtbG9hZGVyJ10ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiIsIi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkBmdW5jdGlvbiBkZWVwLWdldCgkbWFwLCAka2V5cy4uLikge1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICAkbWFwOiBtYXAtZ2V0KCRtYXAsICRrZXkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRtYXA7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL2ZvbnQtZmFtaWx5JztcblxuJGlucHV0X3JlbW92ZS1udW1iZXItYXBwZWFyYW5jZTogdHJ1ZSAhZGVmYXVsdDtcbiRpbnB1dF9yZW1vdmUtc2VhcmNoLWFwcGVhcmFuY2U6IHRydWUgIWRlZmF1bHQ7XG5cbmh0bWwge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiA2Mi41JTtcbiAgICBiYWNrZ3JvdW5kOiAkcGFnZV9iYWNrZ3JvdW5kO1xuICAgIC8vIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47IC8vIGhpZGVzIGhvcml6b250YWwgc2Nyb2xsYmFyIG9uIEVkZ2UgYW5kIElFXG4gICAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xufVxuXG4qLFxuKjpiZWZvcmUsXG4qOmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xufVxuXG5ib2R5IHtcbiAgICBAaW5jbHVkZSBmb250LWZhbWlseSgkZm9udF9mYW1pbHktcHJpbWFyeSk7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgICBtaW4taGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlO1xufVxuXG5idXR0b24sXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLyogSGlkZSBIVE1MNSBVcCBhbmQgRG93biBhcnJvd3MuICovXG5AaWYgJGlucHV0X3JlbW92ZS1udW1iZXItYXBwZWFyYW5jZSB7XG4gICAgaW5wdXRbdHlwZT0nbnVtYmVyJ10ge1xuICAgICAgICBhcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG5cbiAgICAgICAgJjo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7XG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qIEhpZGUgSFRNTDUgJ1gnIGluIHNlYXJjaCBpbnB1dCAqL1xuQGlmICRpbnB1dF9yZW1vdmUtc2VhcmNoLWFwcGVhcmFuY2Uge1xuICAgIGlucHV0W3R5cGU9J3NlYXJjaCddIHtcblxuICAgICAgICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIEludGVybmV0IEV4cGxvcmVyICovXG4gICAgICAgICY6Oi1tcy1jbGVhcixcbiAgICAgICAgJjo6LW1zLXJldmVhbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBDbGVhcnMgdGhlICdYJyBmcm9tIENocm9tZSAqL1xuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uLFxuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLFxuICAgICAgICAmOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1kZWNvcmF0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5sb2FkaW5nLW1hc2sge1xuICAgICZbZGF0YS1yb2xlPSdtYWluLWNzcy1sb2FkZXInXSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuQG1peGluIGZvbnQtZmFtaWx5KCRmb250cy4uLikge1xuICAgIEBpZiAkZm9udHMge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnRzLCAkZm9udC1mYW1pbHktZmFsbGJhY2s7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktZmFsbGJhY2s7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLmNzLWNvbnRhaW5lciB7XG4gIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuICAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMjhyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWNvbnRhaW5lcl9faW5uZXI6YmVmb3JlLCAuY3MtY29udGFpbmVyX19pbm5lcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDMyJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICAgICAgd2lkdGg6IDMwJTsgfSB9XG4gIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICB3aWR0aDogNTYlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA2NSU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA2NyU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4tLXNwYWNlLXRvcCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvYmFja2dyb3VuZC5wbmdcIik7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7IH0gfVxuICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtY29udGFpbmVyLS1vbnRvcCB7XG4gICAgei1pbmRleDogMzAxOyB9XG4gIC5jcy1jb250YWluZXItLXZpZXdwb3J0LXdpZHRoIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgLmNzLWNvbnRhaW5lci0tbm8tcGFkZGluZyB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgLmNzLWNvbnRhaW5lci0tdXNlLXdob2xlLXNjcmVlbiAuY3MtY29udGFpbmVyX19pbm5lciB7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5ib2R5LFxuaHRtbCB7XG4gIGhlaWdodDogMTAwJTtcbiAgbWF4LXdpZHRoOiAxMDB2dzsgfVxuXG4ubm8tc2Nyb2xsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7IH1cblxuLm5vLXNjcm9sbC1jaGlsZCB7XG4gIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG5cbiNtYWluY29udGVudCB7XG4gIGZsZXg6IDEgMCBhdXRvO1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxO1xuICBtaW4td2lkdGg6IDEwMCU7IH1cblxuLnBhZ2Utd3JhcHBlciB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS13cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWltcG9ydGFudDsgfSB9XG5cbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gIHdpZHRoOiBhdXRvO1xuICBwYWRkaW5nOiA0cmVtIDAgMDtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtaW4taGVpZ2h0OiAxMHJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgICBwYWRkaW5nOiA0cmVtIDAgMDsgfSB9XG5cbi5jbXMtaG9tZSAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICBwYWRkaW5nOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNtcy1ob21lIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cblxuLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAucGFnZS1sYXlvdXQtMWNvbHVtbiAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgcmlnaHQ6IDA7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB3aWR0aDogNDAlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAucGFnZS1sYXlvdXQtMWNvbHVtbiAucHJvZHVjdC1pbmZvLXdyYXBwZXIge1xuICAgICAgd2lkdGg6IDMwJTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5zaWRlYmFyLW1haW4sXG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xuICAgIHdpZHRoOiAyMi41JTtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNmMGYwZjA7IH1cbiAgLnBhZ2UtbGF5b3V0LTJjb2x1bW5zLWxlZnQgLmNvbHVtbnMge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5jb2x1bW4ubWFpbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5zaWRlYmFyLW1haW4ge1xuICAgIGZsb2F0OiBsZWZ0OyB9IH1cblxuYSwgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICM3ZTU3YzI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG5hOmhvdmVyLCBhOmZvY3VzLCBhOmFjdGl2ZSwgYTp2aXNpdGVkOmhvdmVyLCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICBjb2xvcjogIzRkMmM5MTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5naWZ0LW9wdGlvbnMtY2FydC1pdGVtIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGF5cGFsLWV4cHJlc3MtcmV2aWV3IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLnBheXBhbC1yZXZpZXcudmlldyAuY3MtY2FydC1pdGVtX19wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IH1cbiAgLnBheXBhbC1yZXZpZXcudmlldyAuY3MtY2FydC1pdGVtX19zdWJ0b3RhbCB7XG4gICAgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBheXBhbC1yZXZpZXcudmlldyB7XG4gICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuXG4ucGF5cGFsLWV4cHJlc3MtaW4tY29udGV4dC1taW5pLWNhcnQtY29udGFpbmVyIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCB7XG4gIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG5AbWl4aW4gY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgcGFkZGluZy1sZWZ0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRob3Jpem9udGFsLXBhZGRpbmc7XG59XG5cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuQG1peGluIGNvbnRhaW5lci1uZWdhdGVkKCRob3Jpem9udGFsLXBhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyKSB7XG4gICAgQGluY2x1ZGUgY29udGFpbmVyKCRob3Jpem9udGFsLXBhZGRpbmcpO1xuICAgIG1hcmdpbi1sZWZ0OiAtJGhvcml6b250YWwtcGFkZGluZztcbiAgICBtYXJnaW4tcmlnaHQ6IC0kaG9yaXpvbnRhbC1wYWRkaW5nO1xufVxuXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG5AbWl4aW4gY29udGFpbmVyLXdyYXBwZXIoJG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoKSB7XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jb250YWluZXIvbWl4aW4nO1xuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigpO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAmX19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci13cmFwcGVyKCk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzIlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tYWluLWNvbHVtbiB7XG4gICAgICAgIHdpZHRoOiA1NiU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogNjUlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA2NyU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNwYWNlLXRvcCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9nYWxsZXJ5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nJyk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1ub3Njcm9sbCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgJi0tb250b3Age1xuICAgICAgICB6LWluZGV4OiAzMDE7XG4gICAgfVxuXG4gICAgJi0tdmlld3BvcnQtd2lkdGgge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgJi0tbm8tcGFkZGluZyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICB9XG5cbiAgICAmLS11c2Utd2hvbGUtc2NyZWVuIHtcbiAgICAgICAgI3skcm9vdH1fX2lubmVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2Vcbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBoZWFkbGluZV9ob29rKCRsZXZlbCkge1xufVxuXG5AbWl4aW4gbGlua19ob29rKCkge1xufVxuXG5AbWl4aW4gbGlzdF9ob29rKCkge1xufVxuXG5AbWl4aW4gbGlzdC1pdGVtX2hvb2soKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9jb250YWluZXInO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kbnM6ICdjcy0nO1xuXG5ib2R5LFxuaHRtbCB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwdnc7XG59XG5cbi5uby1zY3JvbGwge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB3aWR0aDogMTAwdnc7XG4gICAgaGVpZ2h0OiAxMDB2aDtcbn1cblxuLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuICFpbXBvcnRhbnQ7IC8vIE92ZXJmbG93IGhhcyBiZWVuIG1vdmVkIHRvIGNoaWxkIGVsZW1lbnQgaW4gb3JkZXIgdG8gbWFpbnRhaW4gdmlzaWJpbGl0eSBvZiBpdGVtcyBpbiB0aGUgYmFja2dyb3VuZFxufVxuXG4jbWFpbmNvbnRlbnQge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICBtaW4td2lkdGg6IDEwMCU7XG59XG5cbi5wYWdlLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBwYWRkaW5nOiAkbWFpbi1jb2x1bW5fcGFkZGluZy1tb2JpbGU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkbWFpbi1jb2x1bW5fcGFkZGluZztcbiAgICB9XG59XG5cbi5jbXMtaG9tZSAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgIHBhZGRpbmc6ICRob21lcGFnZS1tYWluLWNvbHVtbl9wYWRkaW5nLW1vYmlsZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogJGhvbWVwYWdlLW1haW4tY29sdW1uX3BhZGRpbmc7XG4gICAgfVxufVxuXG4ucGFnZS1sYXlvdXQtMWNvbHVtbiB7XG4gICAgLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IHtcbiAgICAgICAgLnNpZGViYXItbWFpbixcbiAgICAgICAgLnNpZGViYXItYWRkaXRpb25hbCB7XG4gICAgICAgICAgICB3aWR0aDogMjIuNSU7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGNvbG9yX2dhbGxlcnk7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sdW1ucyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2x1bW4ubWFpbiB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAuc2lkZWJhci1tYWluIHtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5hIHtcbiAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAkY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UsXG4gICAgICAgICRjb2xvci1ob3ZlcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlclxuICAgICk7XG59XG5cbi5naWZ0LW9wdGlvbnMtY2FydC1pdGVtIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4vL1BheXBhbCBtb2R1bGVcbi5wYXlwYWwtZXhwcmVzcy1yZXZpZXcgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICB9XG59XG5cbi5wYXlwYWwtcmV2aWV3LnZpZXcge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAuI3skbnN9Y2FydC1pdGVtX19wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31jYXJ0LWl0ZW1fX3N1YnRvdGFsIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgfVxufVxuXG4ucGF5cGFsLWV4cHJlc3MtaW4tY29udGV4dC1taW5pLWNhcnQtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtO1xufVxuXG4ucGF5cGFsLXJldmlldy1kaXNjb3VudCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L2hvb2snO1xuQGltcG9ydCAndXRpbHMvZm9udC1mYW1pbHknO1xuXG4kdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LWZhbWlseTogJGZvbnRfZmFtaWx5LXByaW1hcnkgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtbWFyZ2luczogMXJlbSAwIDJyZW0gIWRlZmF1bHQ7XG5cbiR0eXBvZ3JhcGh5X2xpbmstY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saW5rLS1ob3Zlci1jb2xvcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfbGluay0taG92ZXItdGV4dC1kZWNvcmF0aW9uOiAkdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuJHR5cG9ncmFwaHlfbGlzdC1tYXJnaW46IDAgMCAyLjVyZW0gIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saXN0LXBhZGRpbmc6IDAgMCAwIDRyZW0gIWRlZmF1bHQ7XG5cbiR0eXBvZ3JhcGh5X2xpc3QtaXRlbS1tYXJnaW46IDAgMCAxcmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTIpIHtcbiAgICBAaW5jbHVkZSBmb250LWZhbWlseSgkdHlwb2dyYXBoeV9oZWFkbGluZS1mb250LWZhbWlseSk7XG5cbiAgICBmb250LXNpemU6ICRsZXZlbDtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAkdHlwb2dyYXBoeV9oZWFkbGluZS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLXRleHQtdHJhbnNmb3JtO1xuICAgIG1hcmdpbjogJHR5cG9ncmFwaHlfaGVhZGxpbmUtbWFyZ2lucztcblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lX2hvb2soJGxldmVsKTtcbn1cblxuQG1peGluIGxpbmsoJGNvbG9yOiAkdHlwb2dyYXBoeV9saW5rLWNvbG9yLFxuICAgICRjb2xvci1ob3ZlcjogJHR5cG9ncmFwaHlfbGluay0taG92ZXItY29sb3IsXG4gICAgJGRlY29yYXRpb246ICR0eXBvZ3JhcGh5X2xpbmstdGV4dC1kZWNvcmF0aW9uLFxuICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkdHlwb2dyYXBoeV9saW5rLS1ob3Zlci10ZXh0LWRlY29yYXRpb24pIHtcblxuICAgICYsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkZGVjb3JhdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUsXG4gICAgJjp2aXNpdGVkOmhvdmVyLFxuICAgICY6dmlzaXRlZDpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItaG92ZXI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb24taG92ZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGlua19ob29rKCk7XG59XG5cbkBtaXhpbiBsaXN0KCkge1xuICAgIG1hcmdpbjogJHR5cG9ncmFwaHlfbGlzdC1tYXJnaW47XG4gICAgcGFkZGluZzogJHR5cG9ncmFwaHlfbGlzdC1wYWRkaW5nO1xuXG4gICAgQGluY2x1ZGUgbGlzdF9ob29rKCk7XG59XG5cbkBtaXhpbiBsaXN0LWl0ZW0oKSB7XG4gICAgbWFyZ2luOiAkdHlwb2dyYXBoeV9saXN0LWl0ZW0tbWFyZ2luO1xuXG4gICAgQGluY2x1ZGUgbGlzdC1pdGVtX2hvb2soKTtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtc2xpZGVyLW5hdmlnYXRpb24ge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb24ge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMTE7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgd2lkdGg6IDQuNHJlbTtcbiAgICAgIGhlaWdodDogNS4ycmVtO1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOyB9XG4gICAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb24tLXByZXYge1xuICAgICAgICBsZWZ0OiAxLjVyZW07IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjI1O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbltkaXNhYmxlZF0gc3ZnIHtcbiAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uOm5vdChbZGlzYWJsZWRdKTpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6IDFweCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4yNSk7IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjRyZW07XG4gICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvbmF2aWdhdGlvbi9taXhpbic7XG5cbi4jeyRuc31zbGlkZXItbmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgQGluY2x1ZGUgc2xpZGVyLW5hdmlnYXRpb24oKTtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbiR0cmlnZ2VyX3dpZHRoOiA0LjRyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlcl9oZWlnaHQ6IDUuMnJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2VkZ2Utb2Zmc2V0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlcl9ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9zaGFkb3c6IDFweCAxcHggMnB4IDAgcmdiYSgkY29sb3JfYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuJHRyaWdnZXJfc2hhZG93LS1ob3ZlcjogMXB4IDFweCAxMHB4IDAgcmdiYSgkY29sb3JfYmxhY2ssIDAuMjUpICFkZWZhdWx0O1xuJHRyaWdnZXJfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDsgLy8gaWNvbiBjb2xvciBpbmhlcml0c1xuJHRyaWdnZXItLWRpc2FibGVkLW9wYWNpdHk6IDAuMjUgIWRlZmF1bHQ7XG4kdHJpZ2dlci0tZGlzYWJsZWQtZ3JheW91dDogdHJ1ZSAhZGVmYXVsdDtcblxuJHRyaWdnZXItaWNvbl93aWR0aDogMS40cmVtICFkZWZhdWx0O1xuJHRyaWdnZXItaWNvbl9oZWlnaHQ6IDIuN3JlbSAhZGVmYXVsdDtcblxuQG1peGluIHNsaWRlci1uYXZpZ2F0aW9uKCkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAxMTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogJHRyaWdnZXJfd2lkdGg7XG4gICAgaGVpZ2h0OiAkdHJpZ2dlcl9oZWlnaHQ7XG4gICAgYm9yZGVyOiAkdHJpZ2dlcl9ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJHRyaWdnZXJfcmFkaXVzO1xuICAgIGJhY2tncm91bmQ6ICR0cmlnZ2VyX2JhY2tncm91bmQ7XG4gICAgYm94LXNoYWRvdzogJHRyaWdnZXJfc2hhZG93O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgY29sb3I6ICR0cmlnZ2VyX2NvbG9yO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lO1xuXG4gICAgJi0tcHJldiB7XG4gICAgICAgIGxlZnQ6ICR0cmlnZ2VyX2VkZ2Utb2Zmc2V0O1xuICAgIH1cblxuICAgICYtLW5leHQge1xuICAgICAgICByaWdodDogJHRyaWdnZXJfZWRnZS1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkdHJpZ2dlci0tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICBAaWYgKCR0cmlnZ2VyLS1kaXNhYmxlZC1ncmF5b3V0ID09IHRydWUpIHtcbiAgICAgICAgICAgIHN2ZyB7XG4gICAgICAgICAgICAgICAgZmlsdGVyOiBncmF5c2NhbGUoMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdChbZGlzYWJsZWRdKTpob3ZlciB7XG4gICAgICAgIGJveC1zaGFkb3c6ICR0cmlnZ2VyX3NoYWRvdy0taG92ZXI7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkdHJpZ2dlci1pY29uX3dpZHRoO1xuICAgICAgICBoZWlnaHQ6ICR0cmlnZ2VyLWljb25faGVpZ2h0O1xuICAgICAgICBmaWxsOiBjdXJyZW50Q29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLW5hdmlnYXRpb24taG9vaygpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXNsaWRlci1wYWdpbmF0aW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiAwLjhyZW07XG4gIG1pbi1oZWlnaHQ6IDNyZW07IH1cbiAgLmNzLXNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbiB7XG4gICAgZ2FwOiAwO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gICAgLmNzLXNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbiBzcGFuIHtcbiAgICAgIGNvbG9yOiAjMTFhMDk5OyB9XG4gIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGlubGluZS1zaXplOiAyLjJyZW07XG4gICAgYmxvY2stc2l6ZTogMC45cmVtO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtaW5kZW50OiAtOTlyZW07IH1cbiAgICAuY3Mtc2xpZGVyLXBhZ2luYXRpb25fX2J1bGxldC5jdXJyZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMWEwOTk7IH1cbiAgICAuY3Mtc2xpZGVyLXBhZ2luYXRpb25fX2J1bGxldDpvbmx5LWNoaWxkIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vbWl4aW4nO1xuXG4uI3skbnN9c2xpZGVyLXBhZ2luYXRpb24ge1xuICAgIEBpbmNsdWRlIHNsaWRlci1wYWdpbmF0aW9uKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXRzLWdhcDogMC44cmVtICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXJhZGl1czogMnB4ICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZzogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZy0tY3VycmVudDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG5cbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtd2lkdGg6IDIuMnJlbSAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtaGVpZ2h0OiAwLjlyZW0gIWRlZmF1bHQ7XG5cbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2ZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2N1cnJlbnQtY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuXG5AbWl4aW4gc2xpZGVyLXBhZ2luYXRpb24oKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXRzLWdhcDtcbiAgICBtaW4taGVpZ2h0OiAzcmVtO1xuXG4gICAgJi0tZnJhY3Rpb24ge1xuICAgICAgICBnYXA6IDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICAgICAgY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uX2ZvbnQtd2VpZ2h0O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY3VycmVudC1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1bGxldCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1yYWRpdXM7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmc7XG4gICAgICAgIGJvcmRlcjogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1ib3JkZXI7XG4gICAgICAgIGlubGluZS1zaXplOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXdpZHRoO1xuICAgICAgICBibG9jay1zaXplOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWhlaWdodDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB0ZXh0LWluZGVudDogLTk5cmVtO1xuXG4gICAgICAgICYuY3VycmVudCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnLS1jdXJyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItcGFnaW5hdGlvbi1ob29rKCk7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cbi8qKlxuICogRGVmaW5lcyBwYWdlIGNvbnRhaW5lci4gVGhpcyBtaXhpbiBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbnRlbnQgaGFzIGFsd2F5cyBlcXVhbCBwYWRkaW5nXG4gKiBmb3IgbW9iaWxlIHNjcmVlbnMgb24gYm90aCBzaXplIG9mIHRoZSBkZXZpY2UuXG4gKi9cbi8qKlxuICogTmVnYXRlcyBwYXJlbnQgY29udGFpbmVyJ3MgcGFkZGluZyBhbmQgc2V0cyBpdCBvd24uXG4gKiBTb21ldGhpbWVzIHRoaXMgaGFzIHRvIGJlIGRvbmUgdG8gbWFrZSBiYWNrZ3JvdW5kIGV2ZW4gdG8gb3RoZXIgY29udGFpbmVycycgY29udGVudC5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWFkZHRvY2FydCB7XG4gIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuICAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgQHN1cHBvcnRzIChjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgMjAwcHgpKSB7XG4gICAgICAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kIDIwMHB4KTsgfSB9XG4gICAgLnBhZ2UtcHJvZHVjdC1kb3dubG9hZGFibGUgLnVwZGF0ZSAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpiZWZvcmUsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmJlZm9yZSB7XG4gICAgICB3aWR0aDogMy40ZW07XG4gICAgICBib3JkZXItcmFkaXVzOiAwIDIwMHB4IDIwMHB4IDA7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMCUsICM0ZDJjOTEgMCUsICM0ZDJjOTEgMTAwJSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246YWZ0ZXIge1xuICAgICAgd2lkdGg6IDNlbTtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICB6LWluZGV4OiAtMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24sIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIC8qIFxuICAgICAgICAgICAgICogQVRDIGJ0bi4gaW4gYnV5Ym94IHVzZXMgZGVmZXJBVENDbGljaygpXG4gICAgICAgICAgICAgKiBhcyBwYXJ0IG9mIHRoZSBgRmFzdGVyIEFkZCBUbyBDYXJ0YCBlbmFobmNlbWVudFxuICAgICAgICAgICAgICogdGhlcmVmb3JlIGl0J3MgYXBwZWFyYW5jZSBpcyBzZXQgdG8gbm9ybWFsIGFsbCB0aGUgdGltZS5cbiAgICAgICAgICAgICAqLyB9XG4gICAgICAuY3MtYnV5Ym94IC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXIgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiB7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXIgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiB7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAuY3MtYWRkdG9jYXJ0X19jb25maWd1cmUtaWNvbiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24sIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgd2lkdGg6IDIuMnJlbTtcbiAgICBoZWlnaHQ6IDIuMnJlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSAqL1xuICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovIH1cbiAgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4yczsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbCB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHdpZHRoOiAxMHB4O1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgYm90dG9tOiAwO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsLS0xIHtcbiAgICAgICAgbGVmdDogMDsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsLS0yIHtcbiAgICAgICAgbGVmdDogMTVweDtcbiAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjE1cyAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTMge1xuICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3MgIWltcG9ydGFudDsgfVxuICAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IC0xZW07XG4gICAgdG9wOiAtMXB4O1xuICAgIGJvdHRvbTogLTFweDtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMi41ZW0pO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMDEsIDAuNjUsIDAuMzgsIDEpO1xuICAgIGJhY2tncm91bmQ6ICMzMWE0M2E7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1uby10cmFuc2l0aW9ucyAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZyB7XG4gICAgICB0cmFuc2l0aW9uOiBub25lOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tZmFpbCAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZyB7XG4gICAgICBiYWNrZ3JvdW5kOiAjY2MxYzEwOyB9XG4gIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBoZWlnaHQ6IDEuNzI1ZW07XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMC4yczsgfVxuICAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgdHJhbnNsYXRlWCgtMmVtKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgcGFkZGluZy1yaWdodDogMy41cmVtOyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5LCAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayB7XG4gICAgICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHRvcDogMDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICB6LWluZGV4OiA0MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXN0aWNreSAudWktZGlhbG9nLCAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAudWktZGlhbG9nIHtcbiAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXN0aWNreSAuYmxvY2stbWluaWNhcnQ6YWZ0ZXIsIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC5ibG9jay1taW5pY2FydDphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAzLjJyZW0gIWltcG9ydGFudDsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbmssXG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbmsge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJveC1zaGFkb3c6IDFweCAzcHggNC41cmVtIDAgcmdiYSgzMCwgNDgsIDY3LCAwLjM0KTtcbiAgICBhbmltYXRpb246IG1pbmljYXJ0LWluIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayB7XG4gICAgYW5pbWF0aW9uOiBtaW5pY2FydC1vdXQgMC41cyBjdWJpYy1iZXppZXIoMC41NSwgMC4yLCAwLjg5LCAwLjQ1KTsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgb3BhY2l0eTogMDtcbiAgICB6LWluZGV4OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogdG9wIDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLCBsZWZ0IDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICBhbmltYXRpb246IG1vdmUtcXR5LWJhZGdlIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwLjVyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMS4zcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB0b3A6IDUuM3JlbTsgfSB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLW1pbmljYXJ0LXN0aWNreSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAxLjhyZW07IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlciAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Uge1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7IH1cbiAgLmNzLWFkZHRvY2FydC0tbG9hZGluZyAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwsIC5jcy1hZGR0b2NhcnQtLWRvbmUgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMmVtLCAwLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0xLjI1ZW0pOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tbG9hZGluZyAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwge1xuICAgICAgYW5pbWF0aW9uOiBiYWxsLWluIDFzIGluZmluaXRlOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWRvbmUgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZyB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNS4zcmVtLCAwLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1zdWNjZXNzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1zdWNjZXNzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwsXG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1pY29uIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcsIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjRzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnOmFmdGVyIHtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCxcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuNnMgbGluZWFyLCB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24sXG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiB7XG4gICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuXG5Aa2V5ZnJhbWVzIGJhbGwtaW4ge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMDsgfVxuICA1MCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDsgfSB9XG5cbkBrZXlmcmFtZXMgbWluaWNhcnQtaW4ge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbWluaWNhcnQtb3V0IHtcbiAgMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7IH0gfVxuXG5Aa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDgwJSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cbiAgLmNzLWFkZHRvY2FydCAuYmxvY2stbWluaWNhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiIsIi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGUsICRzaWRlKSB7XG4gICAgJGxlbmd0aDogbGVuZ3RoKCR2YXJpYWJsZSk7XG5cbiAgICBAaWYgKCRsZW5ndGggPT0gMSkge1xuICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gMikge1xuICAgICAgICBAaWYgKCRzaWRlID09ICd1cCcpIE9SICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdsZWZ0JykgT1IgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDMpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAnbGVmdCcpIE9SICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAndXAnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMyk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICgkbGVuZ3RoID09IDQpIHtcbiAgICAgICAgQGlmICgkc2lkZSA9PSAndXAnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDEpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDIpO1xuICAgICAgICB9IEBlbHNlIGlmICgkc2lkZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMyk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCA0KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gYnV0dG9uLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuXG5AbWl4aW4gYnV0dG9uX3NwYW4taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG5cbkBtaXhpbiBidXR0b25faWNvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jb250YWluZXIvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJGFkZHRvY2FydF9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGg6IDIuMnJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24taGVpZ2h0OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXdpZHRoICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1lZGdlLWd1dHRlcjogMC44ZW0gIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfYnV0dG9uLXNrZXdlZC1iYWNrZ3JvdW5kLXdpZHRoOiA1LjFyZW0gIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLWxlZnQ6IDFyZW0gIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLXJpZ2h0OiA0LjVyZW0gIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU6IDEwcHggIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWJnLXByaW1hcnk6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWJnLXNlY29uZGFyeTogJGNvbG9yX3N1Y2Nlc3MtNjAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3I6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWZpbGw6ICRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yICFkZWZhdWx0O1xuXG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1iZy1wcmltYXJ5OiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LWZhaWwtYmctc2Vjb25kYXJ5OiAkY29sb3JfZXJyb3ItNjAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3I6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYWpheC1mYWlsLWZpbGw6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWNvbG9yICFkZWZhdWx0O1xuXG4uI3skbnN9YWRkdG9jYXJ0IHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICAvLyBiZWNhdXNlIGJ1dHRvbiBjYW4ndCBoYXZlIG92ZXJmbG93LCB3ZSBuZWVkIHRvIGFkZCBpdCBvbiBidXR0b24gd3JhcHBlclxuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIEBpZiAoJGJ1dHRvbl9ib3JkZXItcmFkaXVzID4gMCkge1xuICAgICAgICAgICAgQHN1cHBvcnRzIChjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgJGJ1dHRvbl9ib3JkZXItcmFkaXVzKSkge1xuICAgICAgICAgICAgICAgIGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAkYnV0dG9uX2JvcmRlci1yYWRpdXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gSGlkZSB1bm5lY2Vzc2FyeSBhZGQgdG8gY2FydCBidXR0b24gb24gZG93bmxvYWRhYmxlIHByb2R1Y3QgdXBkYXRlIHBkcFxuICAgICAgICAucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAudXBkYXRlICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbiApO1xuXG4gICAgICAgICZbZGlzYWJsZWRdIHtcblxuICAgICAgICAgICAgLyogXG4gICAgICAgICAgICAgKiBBVEMgYnRuLiBpbiBidXlib3ggdXNlcyBkZWZlckFUQ0NsaWNrKClcbiAgICAgICAgICAgICAqIGFzIHBhcnQgb2YgdGhlIGBGYXN0ZXIgQWRkIFRvIENhcnRgIGVuYWhuY2VtZW50XG4gICAgICAgICAgICAgKiB0aGVyZWZvcmUgaXQncyBhcHBlYXJhbmNlIGlzIHNldCB0byBub3JtYWwgYWxsIHRoZSB0aW1lLlxuICAgICAgICAgICAgICovXG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uIHtcbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19mYWlsLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX2ZhaWwtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbiApO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIH1cblxuICAgICZfX2NvbmZpZ3VyZS1pY29uLFxuICAgICZfX2J1dHRvbi1pY29uLFxuICAgICZfX3N1Y2Nlc3MtaWNvbixcbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbigkdHlwZTogJGFkZHRvY2FydF9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbiApO1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIG1heC1oZWlnaHQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24taGVpZ2h0O1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgICAgIEBpZiAoJGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbiA9PSdyaWdodCcpIG9yICgkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uID09J2xlZnQnKSB7XG4gICAgICAgICAgICAjeyRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb259OiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuICAgIH1cblxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxcyBjdWJpYy1iZXppZXIoMCwgMC43NywgMC4xOCwgMSk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIH1cblxuICAgICZfX2xvYWRpbmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZSAqIDQ7XG4gICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcblxuICAgICAgICAmLWJhbGwge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuXG4gICAgICAgICAgICAmLS0xIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS0yIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4xNXMgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tMyB7XG4gICAgICAgICAgICAgICAgbGVmdDogMzBweDtcbiAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuM3MgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAtMWVtO1xuICAgICAgICB0b3A6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICBib3R0b206IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMi41ZW0pO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDAlLCAwLCAwKTtcbiAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40NXMgY3ViaWMtYmV6aWVyKDAuMDEsIDAuNjUsIDAuMzgsIDEpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1iZy1zZWNvbmRhcnk7XG5cbiAgICAgICAgI3skcm9vdH0tLW5vLXRyYW5zaXRpb25zICYge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1mYWlsICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGFkZHRvY2FydF9hamF4LWZhaWwtYmctc2Vjb25kYXJ5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1sYWJlbCxcbiAgICAmX19zdWNjZXNzLWljb24sXG4gICAgJl9fZmFpbC1sYWJlbCxcbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtaWNvbixcbiAgICAmX19mYWlsLWljb24ge1xuICAgICAgICBoZWlnaHQ6IDEuNzI1ZW07XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1sYWJlbCxcbiAgICAmX19mYWlsLWxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTJlbSk7IC8vIGNhbGMoKSBkb2Vzbid0IHdvcmsgaW4gSUUgc28gaSBoYWQgdG8gZHVwbGljYXRlIHRyYW5zbGF0ZVgoKSB0cmFuc2Zvcm0gdG8gYWRqdXN0IFggcG9zaXRpb25cbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogI3skYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLXJpZ2h0IC1cbiAkYWRkdG9jYXJ0X2J1dHRvbi1wYWRkaW5nLWxlZnRcbiAgICB9XG5cbiAgICA7XG59XG5cbiZfX21pbmljYXJ0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmLS1zdGlja3ksXG4gICAgJi0tdW5zdGljayB7XG4gICAgICAgIEBpbmNsdWRlIGNvbnRhaW5lci13cmFwcGVyKCk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICB6LWluZGV4OiA0MDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1taW5pY2FydCB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICByaWdodDogMy4ycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiZfX21pbmljYXJ0LWxpbmsge1xuXG4gICAgI3skcm9vdH1fX21pbmljYXJ0LS1zdGlja3kgJixcbiAgICAjeyRyb290fV9fbWluaWNhcnQtLXVuc3RpY2sgJiB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMi41cmVtIDFyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMDtcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LWluIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgYW5pbWF0aW9uOiBtaW5pY2FydC1vdXQgMC41cyBjdWJpYy1iZXppZXIoMC41NSwgMC4yLCAwLjg5LCAwLjQ1KTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbiZfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyIHtcbiAgICAkYmFkZ2Utd3JhcHBlcjogJjtcblxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksXG4gICAgICAgIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICAmLS1hbmltYXRpbmcge1xuICAgICAgICBhbmltYXRpb246IG1vdmUtcXR5LWJhZGdlIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIHRvcDogMC41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHRvcDogMS4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1LjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmI3skYmFkZ2Utd3JhcHBlcn0tLW1pbmljYXJ0LXN0aWNreSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDEuOHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JHJvb3R9X19taW5pY2FydC1xdHktYmFkZ2Uge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIH1cbn1cblxuJi0tbG9hZGluZyxcbiYtLWRvbmUge1xuICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDJlbSwgMCwgMCk7XG4gICAgfVxufVxuXG4mLS1sb2FkaW5nIHtcbiAgICAjeyRyb290fV9fbG9hZGluZyB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgdHJhbnNsYXRlWCgtMS4yNWVtKTsgLy8gY2FsYygpIGRvZXNuJ3Qgd29yayBpbiBJRSBzbyBpIGhhZCB0byBkdXBsaWNhdGUgdHJhbnNsYXRlWCgpIHRyYW5zZm9ybSB0byBhZGp1c3QgWCBwb3NpdGlvblxuXG4gICAgICAgICYtYmFsbCB7XG4gICAgICAgICAgICBhbmltYXRpb246IGJhbGwtaW4gMXMgaW5maW5pdGU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiYtLWRvbmUge1xuICAgICN7JHJvb3R9X19idXR0b24taWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2ZlZWRiYWNrLWJnIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLSN7JGFkZHRvY2FydF9idXR0b24tc2tld2VkLWJhY2tncm91bmQtd2lkdGggKyAwLjJ9LFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgMCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiYtLXN1Y2Nlc3Mge1xuICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB9XG59XG5cbiYtLWZhaWwge1xuICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19mYWlsLWxhYmVsIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB9XG59XG5cbiYtLWFuaW1hdGlvbi1kb25lIHtcblxuICAgICN7JHJvb3R9X19idXR0b24tbGFiZWwsXG4gICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC41cztcbiAgICB9XG5cbiAgICAjeyRyb290fV9fZmVlZGJhY2stYmcge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3N1Y2Nlc3MtbGFiZWwsXG4gICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMC42cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3N1Y2Nlc3MtaWNvbixcbiAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICB9XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlICovXG5Aa2V5ZnJhbWVzIGJhbGwtaW4ge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1pbiB7XG4gICAgMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbWluaWNhcnQtb3V0IHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIDE1JSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxuXG4gICAgODAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuXG4uYmxvY2stbWluaWNhcnQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG59IiwiQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9hbmltYXRpb24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vaG9vayc7XG5cbi8vIERlZmluZSBkZWZhdWx0IHR5cGUgZm9yIGJ1dHRvbnMuIFlvdSBjYW4gb3ZlcnJpZGUgaXQgaW5kaXZpZHVhbGx5IHBlciBidXR0b24gaW4gZWFjaCBjb21wb25lbnRcbi8vIFZhcmlhbnRzOiBwcmltYXJ5IHwgc2Vjb25kYXJ5IHwgbGluayB8IHN1Y2Nlc3MgfCBlcnJvclxuJGJ1dHRvbl9kZWZhdWx0LXR5cGU6ICdwcmltYXJ5JyAhZGVmYXVsdDtcblxuLy8gRGVmaW5lIGRlZmF1bHQgcG9zaXRpb24gZm9yIGljb25zIGluIGJ1dHRvbi4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IGxlZnQgfCByaWdodCB8IG5vLWljb24gfCBvbmx5LWljb25cbiRidXR0b25fZGVmYXVsdC1pY29uLXBvczogJ3JpZ2h0JyAhZGVmYXVsdDtcblxuLy8gR2VuZXJhbCBzdHlsZXMgZm9yIGJ1dHRvbnNcbiRidXR0b25fZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1zaXplOiAxcHggIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmc6IDAuNzVlbSAxZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uOiAzZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmUtaGVpZ2h0OiAxLjI3NWVtICFkZWZhdWx0O1xuJGJ1dHRvbl9ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1iZWZvcmUtd2lkdGg6IDMuNGVtICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tYWZ0ZXItd2lkdGg6IDNlbSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kYnV0dG9uX3RleHQtbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBwcmltYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9wcmltYXJ5LWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktZW5hYmxlLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgc2Vjb25kYXJ5YCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGUgZm9yIGBsaW5rYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9saW5rLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nOiAycmVtICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzdWNjZXNzYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9zdWNjZXNzLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtZW5hYmxlLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYGVycm9yYCBidXR0b24gdHlwZVxuJGJ1dHRvbl9lcnJvci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfZXJyb3ItNjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0LlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX3NwYW4tZm9udC1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbi8vIERlZmluZXMgaG93IG11Y2ggYnV0dG9uIGljb24gc2hvdWxkIGJlIHB1bGxlZCB2ZXJ0aWNhbGx5IHRvIGNlbnRlciBpdCBvbiBpY29uIGJ1dHRvbi5cbi8vIFNob3VsZCBiZSBkZWZpbmVkIGluIGVtIHRvIG1ha2UgaXQgcmVsYXRpdmUgdG8gYnV0dG9uJ3MgZm9udCBzaXplLlxuJGJ1dHRvbl9pY29uLW9mZnNldDogMC4xZW0gIWRlZmF1bHQ7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIGZ1bmN0aW9uLWNhbGMtbm8tdW5zcGFjZWQtb3BlcmF0b3JcblxuQG1peGluIGJ1dHRvbigkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGJ1dHRvbl9mb250LXdlaWdodDtcbiAgICB0ZXh0LWFsaWduOiAkYnV0dG9uX3RleHQtYWxpZ247XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAkYnV0dG9uX2xpbmUtaGVpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpZiAoJHR5cGUgIT0nbGluaycpIHtcbiAgICAgICAgcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBib3JkZXItY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgei1pbmRleDogNTtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3ByaW1hcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9wcmltYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSBvciAoJGljb25fcG9zID09J2xlZnQnKSB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nc2Vjb25kYXJ5Jykge1xuICAgICAgICBAaWYgKCRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdzZWNvbmRhcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSBvciAoJGljb25fcG9zID09J2xlZnQnKSB7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSwgZmlsbCAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuXG4gICAgICAgICoge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9zdWNjZXNzLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fc3VjY2Vzcy1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdlcnJvcicpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9hbmltYXRpb24oJHR5cGU6ICdlcnJvcicsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9lcnJvci0taG92ZXItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIEBpZiAoJHR5cGUgIT0nbGluaycpIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdwcmltYXJ5Jykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fcHJpbWFyeS1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc2Vjb25kYXJ5LWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3NlY29uZGFyeS1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fc3VjY2Vzcy1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zdWNjZXNzLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J2Vycm9yJykge1xuICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX2Vycm9yLWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9lcnJvci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9lcnJvci1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2Vycm9yLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIEBpZiAoJHR5cGUgIT0nbGluaycpIHtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J3ByaW1hcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fcHJpbWFyeS0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0nc2Vjb25kYXJ5Jykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2xpbmstLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSdzdWNjZXNzJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J2Vycm9yJykge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9lcnJvci0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9lcnJvci0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgIGN1cnNvcjogYXV0bztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKTtcbn1cblxuQG1peGluIGJ1dHRvbl9zcGFuKCR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcykge1xuICAgIG1hcmdpbi10b3A6ICRidXR0b25fc3Bhbi1mb250LW9mZnNldDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgbGV0dGVyLXNwYWNpbmc6ICRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZztcblxuICAgIEBpZiAoJGljb25fcG9zID09J3JpZ2h0Jykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZztcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcblxuICAgICAgICAgICAgQGlmICh1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pPT11bml0KGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICkpKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArIGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCN7JGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbn0gKyAje2dldC12YWx1ZS1mcm9tLWxpc3QoXG4gJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBlbHNlIGlmICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuXG4gICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuXG4gICAgICAgIEBpZiAodW5pdCgkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uKT09dW5pdChnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICkpKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRidXR0b25fcGFkZGluZy13aGVuLWljb24gKyBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IGNhbGMoI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArICN7Z2V0LXZhbHVlLWZyb20tbGlzdChcbiAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zIClcbiAgICAgICAgfSk7XG4gICAgfVxufVxufVxuXG5AZWxzZSBpZiAoJGljb25fcG9zID09J29ubHktaWNvbicpIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG5AaW5jbHVkZSBidXR0b25fc3Bhbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufVxuXG5AbWl4aW4gYnV0dG9uX2ljb24oJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zKSB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogJGJ1dHRvbl9mb250LXNpemU7XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICB9XG5cbiAgICBAaWYgKCRpY29uX3BvcyA9PSdvbmx5LWljb24nKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiAkYnV0dG9uX2ljb24tb2Zmc2V0O1xuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nIC8gMjtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZyAvIDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiAoJGljb25fcG9zID09J3JpZ2h0Jykge1xuICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAkc2lkZTogJGljb25fcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiAoJGljb25fcG9zID09J2xlZnQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIGxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25faWNvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufSIsIi8vIEluIHRoaXMgbWl4aW4geW91IGNhbiBkZWZpbmUgeW91ciBjdXN0b20gYW5pbWF0aW9uIGZvciBidXR0b25zXG4vLyBZb3UgY2FuIGNoZWNrIGV4YW1wbGVzIG9mIGFuaW1hdGlvbnMgaW4gaHR0cDovL2lhbmx1bm4uZ2l0aHViLmlvL0hvdmVyLyBsaWJyYXJ5XG5cbkBtaXhpbiBidXR0b25fYW5pbWF0aW9uKFxuICAgICR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fcHJpbWFyeS1iYWNrZ3JvdW5kLFxuICAgICRjb2xvcl9lbmQ6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZCxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvc1xuKSB7XG4gICAgQGlmICgkdHlwZSA9PSAncHJpbWFyeScpIGFuZFxuICAgICAgICAoKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0JykpXG4gICAge1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICAgICAgYm90dG9tOiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgbGVmdDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1dHRvbl9hbmltYXRpb24tYmVmb3JlLXdpZHRoO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCAkYnV0dG9uX2JvcmRlci1yYWRpdXMgJGJ1dHRvbl9ib3JkZXItcmFkaXVzIDA7XG4gICAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAwZGVnLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCAxMDAlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAgICAgMGRlZyxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDAlLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgODUlLFxuICAgICAgICAgICAgICAgIHRyYW5zcGFyZW50IDEwMCUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTAwJVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAncmlnaHQnKSBvciAoJGljb25fcG9zID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRidXR0b25fYW5pbWF0aW9uLWFmdGVyLXdpZHRoO1xuICAgICAgICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2VuZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgICAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbl9ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRidXR0b25fYm9yZGVyLXNpemUgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAjezIgKiAkYnV0dG9uX2JvcmRlci1zaXplfSk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYXV0aG9yaXphdGlvbi1saW5rIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW4tbGVmdDogMC45cmVtO1xuICBwYWRkaW5nOiAwIDAgMCAwLjNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rIHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDEuM3JlbTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxLjdyZW07IH0gfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBjb250ZW50OiAnJztcbiAgICBib3JkZXItbGVmdDogMC4ycmVtIHNvbGlkICNmZmY7IH1cbiAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluaywgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazpob3ZlciwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazpmb2N1cywgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazphY3RpdmUsIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2xpbms6dmlzaXRlZDpob3ZlciwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazpob3ZlciAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19pY29uIHtcbiAgICB3aWR0aDogMS44cmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGF1dGhvcml6YXRpb24tbGlua19pdGVtLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl9ib3JkZXItMTAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19ob3Zlci1kZWNvcmF0aW9uOiAkYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb24gIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4uI3skbnN9YXV0aG9yaXphdGlvbi1saW5rIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDAuOXJlbTtcbiAgICBwYWRkaW5nOiAwIDAgMCAwLjNyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDEuM3JlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItbGVmdDogJGF1dGhvcml6YXRpb24tbGlua19pdGVtLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICRjb2xvcjogJGF1dGhvcml6YXRpb24tbGlua19jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGF1dGhvcml6YXRpb24tbGlua19jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb24sXG4gICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGF1dGhvcml6YXRpb24tbGlua19ob3Zlci1kZWNvcmF0aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICBoZWlnaHQ6IDFyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi5jcy1hdXRvY29tcGxldGUge1xuICB3aWR0aDogMTAwJTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IDAgcmdiYSg2OSwgOTAsIDEwMCwgMC4xNyk7XG4gIHotaW5kZXg6IDIwMDtcbiAgbWFyZ2luLXRvcDogLTFweDsgfVxuICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbSB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGZvbnQtc2l6ZTogMS4yOXJlbTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDFyZW07IH0gfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkOmhvdmVyLCAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC5zZWxlY3RlZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbTpob3ZlciwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS5zZWxlY3RlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQ6bGFzdC1jaGlsZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1pbWFnZS1jb250YWluZXIsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0taW1hZ2UtY29udGFpbmVyIHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICBmbGV4LXNocmluazogMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1pbWFnZSwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1pbWFnZSB7XG4gICAgICB3aWR0aDogMy42cmVtO1xuICAgICAgaGVpZ2h0OiA0LjVyZW07IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1kZXRhaWxzLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMge1xuICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMgLmYtZml4LCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMgLmYtZml4IHtcbiAgICAgICAgaGVpZ2h0OiA1LjhyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1kZXRhaWxzIGltZywgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1kZXRhaWxzIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtYnJhbmQsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tYnJhbmQge1xuICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLW5hbWUsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tbmFtZSB7XG4gICAgICBmb250LXNpemU6IDEuMjlyZW07XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1wcmljZSwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1wcmljZSB7XG4gICAgICBtYXJnaW46IDAuM3JlbSAwIDA7IH1cbiAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94ID4gLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgPiAucHJpY2Uge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSA+IC5wcmljZSB7XG4gICAgICBjb2xvcjogI2U0MWYxMjtcbiAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSB7XG4gICAgICBvcmRlcjogLTE7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZXMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4taGVpZ2h0OiAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2Uge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLXBvcHVsYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0ICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I4NDE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCArIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9IH1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgbWFyZ2luOiAtMXB4IDAgMXJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdCAuYW1vdW50IHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDEuMjlyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQ6bm90KDplbXB0eSk6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG4gICAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQ6bm90KDplbXB0eSk6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcoJzsgfVxuXG4uYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUge1xuICBwYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW07XG4gIGJvcmRlci1ib3R0b206IG5vbmU7XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBmb250LXNpemU6IDEuMjlyZW07XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIG1hcmdpbjogMDsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGU6aG92ZXIsIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZS5zZWxlY3RlZCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlOm5vdCg6ZW1wdHkpOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudDsgfVxuXG5AbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gIGh0bWwuYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXZpc2libGUge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgfSB9XG5cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgaHRtbC5hdXRvY29tcGxldGUtZHJvcGRvd24tdmlzaWJsZSBib2R5IHtcbiAgICBvdmVyZmxvdy15OiBoaWRkZW47IH0gfVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBiYWRnZV9ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBiYWRnZV90eXBlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIGJhZGdlX3NwYW4taG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLypcbiAqIEJlY2F1c2UgcHJpY2UtYm94IGlzIHVzZWQgaW4gbXVsdGlwbGUgY29tcG9uZW50cyBsaWtlIHRpbGUsIGJ1eWJveCBldGMsXG4gKiB3ZSBuZWVkIHRvIG1vdmUgdmFyaWFibGVzIHRvIHNlcGFyYXRlIGZpbGUgdG8gaGF2ZSBwb3NzaWJpbGl0eSB0byBpbmNsdWRlIHRoZW1cbiAqIGluIGVhY2ggY29tcG9uZW50IHdpdGhvdXQgZ2VuZXJhdGUgcHJpY2UtYm94IGNvbXBvbmVudCBzdHlsZXMgbXVsdGlwbGUgdGltZXNcbiovXG5cbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yOiAkcHJpY2VfY29sb3IgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjogJHByaWNlX3NwZWNpYWwtY29sb3IgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuXG4kcHJpY2UtYm94X29sZC1wcmljZS1jb2xvcjogJHByaWNlX29sZC1jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2ggIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfbGFiZWwtY29sb3I6ICRwcmljZV9jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kcHJpY2UtYm94X2xhYmVsLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZGlzcGxheS1jb2xvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtbWFyZ2luOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM6IDFyZW0gIWRlZmF1bHQ7XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzJztcblxuJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQ6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXItcmFkaXVzOiAzcHggIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKCRjb2xvcl90ZXh0LTkwMCwgMC4xNykgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfdGl0bGUtcGFkZGluZzogMS4ycmVtIDNyZW0gMXJlbSAxcmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtZm9udC1zaXplOiAxLjI5cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW0taGVpZ2h0OiA1LjhyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tcGFkZGluZzogMC41cmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbWFyZ2luOiAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQ6ICRhdXRvY29tcGxldGVfbGlzdC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS10aHVtYm5haWwtd2lkdGg6IDMuNnJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS10aHVtYm5haWwtaGVpZ2h0OiA0LjVyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplOiAxLjI5cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW1fYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW1fYnJhbmQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV9pdGVtLXByaWNlLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1xdWFudGl0eS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW1fZGlzcGxheS1vbGQtcHJpY2UtZmlyc3Q6IHRydWUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS10ZXh0LWRlY29yYXRpb246ICRwcmljZS1ib3hfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuXG4uI3skbnN9YXV0b2NvbXBsZXRlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGF1dG9jb21wbGV0ZV9saXN0LWJvcmRlci1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogJGF1dG9jb21wbGV0ZV9saXN0LWJveC1zaGFkb3c7XG4gICAgei1pbmRleDogMjAwO1xuICAgIG1hcmdpbi10b3A6IC0xcHg7XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgQGlmIG5vdCAkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPCN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgYm90dG9tOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmF1dG9jb21wbGV0ZS1saXN0IGRkLFxuICAgICZfX2l0ZW0ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgcGFkZGluZzogJGF1dG9jb21wbGV0ZV9pdGVtLXBhZGRpbmc7XG4gICAgICAgIG1hcmdpbjogJGF1dG9jb21wbGV0ZV9pdGVtLW1hcmdpbjtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGF1dG9jb21wbGV0ZV9pdGVtLWJvcmRlcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pbWFnZSB7XG4gICAgICAgICAgICB3aWR0aDogJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLWRldGFpbHMge1xuICAgICAgICAgICAgZmxleDogMSAxIDEwMCU7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIC5mLWZpeCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0taGVpZ2h0O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtYnJhbmQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW1fYnJhbmQtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtbmFtZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLW5hbWUtY29sb3I7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi1wcmljZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAuM3JlbSAwIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtYm94IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgPiAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRhdXRvY29tcGxldGVfaXRlbV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuXG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlcyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIH1cblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2UoKTtcblxuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wb3B1bGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ3BvcHVsYXInKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ3BvcHVsYXInKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZnJlZS1zaGlwcGluZycpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZnJlZS1zaGlwcGluZycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdXRvY29tcGxldGUtbGlzdCB7XG4gICAgbWFyZ2luOiAtMXB4IDAgMXJlbTtcbiAgICBib3JkZXItdG9wOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci10b3A6IDA7XG4gICAgfVxuXG4gICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYW1vdW50IHtcbiAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1xdWFudGl0eS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuXG4gICAgICAgICY6bm90KDplbXB0eSkge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGUge1xuICAgIHBhZGRpbmc6ICRhdXRvY29tcGxldGVfdGl0bGUtcGFkZGluZztcbiAgICBib3JkZXItYm90dG9tOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWJvcmRlcjtcbiAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjtcbiAgICBmb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICBtYXJnaW46ICRhdXRvY29tcGxldGVfdGl0bGUtbWFyZ2luO1xuXG4gICAgJjpob3ZlcixcbiAgICAmLnNlbGVjdGVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmh0bWwuYXV0b2NvbXBsZXRlLWRyb3Bkb3duLXZpc2libGUge1xuICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIH1cblxuICAgIGJvZHkge1xuICAgICAgICBAbWVkaWEgKGhvdmVyOiBub25lKSB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvaG9vayc7XG5cbiRiYWRnZV9mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRiYWRnZV9mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGJhZGdlX2hlaWdodDogMmVtICFkZWZhdWx0O1xuJGJhZGdlX3BhZGRpbmc6IDAgMC43cmVtICFkZWZhdWx0O1xuJGJhZGdlX2JvcmRlcjogMCAhZGVmYXVsdDtcbiRiYWRnZV9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGJhZGdlX3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWRlZmF1bHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1uZXctYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLW5ldy1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWRpc2NvdW50LWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWRpc2NvdW50LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZnJlZS1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWZyZWUtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZnJlZS1zaGlwcGluZy1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLXBvcHVsYXItYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1wb3B1bGFyLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLXRvcC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXRvcC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG5AbWl4aW4gYmFkZ2UoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGVmYXVsdC1iYWNrZ3JvdW5kO1xuICAgIGNvbG9yOiAkYmFkZ2UtLWRlZmF1bHQtY29sb3I7XG4gICAgYm9yZGVyOiAkYmFkZ2VfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRiYWRnZV9ib3JkZXItcmFkaXVzO1xuICAgIHBhZGRpbmc6ICRiYWRnZV9wYWRkaW5nO1xuICAgIGZvbnQtc2l6ZTogJGJhZGdlX2ZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGJhZGdlX2ZvbnQtd2VpZ2h0O1xuICAgIG1pbi1oZWlnaHQ6ICRiYWRnZV9oZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICRiYWRnZV90ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIGJhZGdlX2hvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gYmFkZ2VfdHlwZSgkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgQGlmICgkdHlwZSA9PSduZXcnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tbmV3LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLW5ldy1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2ZyZWUnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZnJlZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1mcmVlLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZnJlZS1zaGlwcGluZycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWZyZWUtc2hpcHBpbmctY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdwb3B1bGFyJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXBvcHVsYXItYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tcG9wdWxhci1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2Rpc2NvdW50Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWRpc2NvdW50LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRpc2NvdW50LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0ncmVjZW50bHktYm91Z2h0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdkYWlseWRlYWwnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2RhaWx5ZGVhbC1wZHAnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWRhaWx5ZGVhbC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3RvcCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS10b3AtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tdG9wLWNvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUtaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBiYWRnZV9zcGFuKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsO1xuXG4gICAgJismIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBiYWRnZV9zcGFuLWhvb2soJHR5cGUpO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLWJyZWFkY3J1bWJzIHtcbiAgcGFkZGluZy10b3A6IDEuM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19pdGVtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDEuOTVlbSAwIDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjMTFhMDk5O1xuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICByaWdodDogMC44ZW07XG4gICAgICBjb250ZW50OiBcIj5cIjtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWJyZWFkY3J1bWJzX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLWJyZWFkY3J1bWJzX19zZXBhcmF0b3ItaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHJpZ2h0OiAwLjVlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDAuOGVtO1xuICAgIGhlaWdodDogMC44ZW07XG4gICAgZmlsbDogIzg4ODsgfVxuXG4uY3MtY29udGFpbmVyLS1icmVhZGNydW1icyB7XG4gIG1heC13aWR0aDogbm9uZTtcbiAgZGlzcGxheTogbm9uZTtcbiAgYmFja2dyb3VuZDogI2VkZWZmMTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZDogI2VkZWZmMTsgfSB9XG4iLCIvKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY3VzdG9tLXNob3c6IGRlZXAtZ2V0KCR2aWV3LXhtbCxcbiAgICAgICAgdmFycyxcbiAgICAgICAgTWFnZW50b19UaGVtZSxcbiAgICAgICAgYnJlYWRjcnVtYnMsXG4gICAgICAgIGN1c3RvbV9zZXBhcmF0b3IsXG4gICAgICAgIGRpc3BsYXkpICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2JnICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2JyZWFkY3J1bWJzLnBuZycpICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2JhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU6IDEuNnJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfaXRlbS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3IgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbnRlbnQ6ICc+JyAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlOiAxLjNyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31icmVhZGNydW1icyB7XG4gICAgJHJvb3Q6ICY7XG4gICAgcGFkZGluZy10b3A6ICRicmVhZGNydW1ic192ZXJ0aWNhbC1zcGFjZTtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwIDEuOTVlbSAwIDA7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkYnJlYWRjcnVtYnNfaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2xhc3QtaXRlbS1jb2xvcjtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29udGVudDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRicmVhZGNydW1ic19zZXBhcmF0b3ItY3VzdG9tLXNob3cpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvcjtcblxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLXZpc2l0ZWQtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1ob3Zlci1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlcGFyYXRvci1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgcmlnaHQ6IDAuNWVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIHdpZHRoOiAwLjhlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjhlbTtcbiAgICAgICAgZmlsbDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICB9XG59XG5cbi5jcy1jb250YWluZXIge1xuICAgICYtLWJyZWFkY3J1bWJzIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1jb2xvcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTsgfVxuICAuY3MtYnV0dG9uOmhvdmVyLCAuY3MtYnV0dG9uOmZvY3VzLCAuY3MtYnV0dG9uOmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gIC5jcy1idXR0b246YmVmb3JlLCAuY3MtYnV0dG9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMXB4O1xuICAgIGJvdHRvbTogLTFweDtcbiAgICByaWdodDogLTFweDsgfVxuICAuY3MtYnV0dG9uOmJlZm9yZSB7XG4gICAgd2lkdGg6IDMuNGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMjAwcHggMjAwcHggMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDAlLCAjNGQyYzkxIDAlLCAjNGQyYzkxIDEwMCUpOyB9XG4gIC5jcy1idXR0b246YWZ0ZXIge1xuICAgIHdpZHRoOiAzZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gIC5jcy1idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gIC5jcy1idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV0dG9uLCAuY3MtYnV0dG9uOnZpc2l0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAuY3MtYnV0dG9uICosIC5jcy1idXR0b246dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1idXR0b25bZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtYnV0dG9uX19zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtYnV0dG9uX19pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07IH1cblxuLmNzLWJ1dHRvbi1jb21wb25lbnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgbWFyZ2luOiAwIDAgM3JlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDpob3ZlciwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6Zm9jdXMsIC5jcy1idXR0b24tY29tcG9uZW50OmFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmJlZm9yZSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHJpZ2h0OiAtMXB4OyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmJlZm9yZSB7XG4gICAgd2lkdGg6IDMuNGVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAgMjAwcHggMjAwcHggMDtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDAlLCAjNGQyYzkxIDAlLCAjNGQyYzkxIDEwMCUpOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmFmdGVyIHtcbiAgICB3aWR0aDogM2VtO1xuICAgIG1pbi13aWR0aDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICB6LWluZGV4OiAtMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDpob3ZlcjphZnRlciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudCwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgIC5jcy1idXR0b24tY29tcG9uZW50ICosIC5jcy1idXR0b24tY29tcG9uZW50OnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQge1xuICAgICAgbWFyZ2luOiAwIDAgNHJlbTsgfSB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50LS1za2lwLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX2ljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9fYW1vdW50OmJlZm9yZSB7XG4gICAgY29udGVudDogJygnOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19hbW91bnQ6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJzsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9jb21wb25lbnQtc3BhY2luZyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRidXR0b24tZmFsbGJhY2tfdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRidXR0b24tY29tcG9uZW50X3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtcG9zaXRpb246IDUwJSAhZGVmYXVsdDtcbiRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtdHJhbnNsYXRpb246IHRyYW5zbGF0ZVgoLTUwJSkgIWRlZmF1bHQ7XG5cbi4jeyRuc31idXR0b24ge1xuICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgKTtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWZhbGxiYWNrX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uI3skbnN9YnV0dG9uLWNvbXBvbmVudCB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAkdHlwZTogJGJ1dHRvbi1jb21wb25lbnRfdHlwZSxcbiAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICk7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAkYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXBvc2l0aW9uO1xuICAgIHRyYW5zZm9ybTogJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC10cmFuc2xhdGlvbjtcblxuICAgICZfX3NwYW4ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2Ftb3VudCB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBtaXhpbiBjb21wb25lbnQtc3BhY2luZygkbWFyZ2lucy1jb25maWc6ICRjb21wb25lbnQtc3BhY2luZy1jb25maWd1cmF0aW9uKSB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgZGVmYXVsdCkge1xuICAgICAgICBtYXJnaW46IG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gRGVmYXVsdCBjb21wb25lbnQgbWFyZ2luIHZhbHVlXG4gICAgICAgIG1hcmdpbjogMCAwIDNyZW07XG4gICAgfVxuXG4gICAgQGlmIG1hcC1oYXMta2V5KCRtYXJnaW5zLWNvbmZpZywgcmVzcG9uc2l2ZSkge1xuICAgICAgICAvLyBBZGRpbmcgbWFyZ2luIHJ1bGVzIGZvciBlYWNoIHBhc3NlZCBicmVha3BvaW50XG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkbWFyZ2luIGluIG1hcC1nZXQoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRicmVha3BvaW50fSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogJG1hcmdpbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNraXAtc3BhY2luZyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4uY3MtY29udGFpbmVyIHtcbiAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtY29udGFpbmVyX19pbm5lcjpiZWZvcmUsIC5jcy1jb250YWluZXJfX2lubmVyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICBjbGVhcjogYm90aDsgfVxuICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogNDAlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzIlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMzAlOyB9IH1cbiAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgIHdpZHRoOiA1NiU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY1JTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDY3JTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbi0tc3BhY2UtdG9wIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07IH0gfVxuICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1jb250cmFzdCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZ1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsgfSB9XG4gIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLW5vc2Nyb2xsIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1jb250YWluZXItLW9udG9wIHtcbiAgICB6LWluZGV4OiAzMDE7IH1cbiAgLmNzLWNvbnRhaW5lci0tdmlld3BvcnQtd2lkdGgge1xuICAgIG1heC13aWR0aDogbm9uZTsgfVxuICAuY3MtY29udGFpbmVyLS1uby1wYWRkaW5nIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAuY3MtY29udGFpbmVyLS11c2Utd2hvbGUtc2NyZWVuIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtY29va2llLW1lc3NhZ2Uge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwYWRkaW5nOiAxLjJyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBib3gtc2hhZG93OiAwIC0wLjNyZW0gMC41cmVtIDAgcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgZm9udC1zaXplOiA4NSU7XG4gIHotaW5kZXg6IDk4O1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDExMCUsIDApO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xOHMgbGluZWFyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtY29va2llLW1lc3NhZ2UtLXNob3duIHtcbiAgICB6LWluZGV4OiAyMDI7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9faW5uZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDhyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19pbm5lciB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi13cmFwcGVyIHtcbiAgICBhbGlnbi1zZWxmOiBmbGV4LXN0YXJ0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICBhbGlnbi1zZWxmOiB1bnNldDsgfSB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCAuYmxvY2stY21zLWxpbmsud2lkZ2V0LFxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBwIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6aG92ZXIsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOmZvY3VzLCAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTphY3RpdmUsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHdpZHRoOiA1LjVyZW07XG4gICAgaGVpZ2h0OiA1LjVyZW07XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9faWNvbiB7XG4gICAgICAgIHRvcDogLTMuNXJlbTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbWFyZ2luLXRvcDogMS4ycmVtOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246aG92ZXIsIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmZvY3VzLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YmVmb3JlLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAzLjRlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMjAwcHggMjAwcHggMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAzZW07XG4gICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgICAgei1pbmRleDogLTI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24gKiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS4ycmVtOyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24tc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRjb29raWUtbWVzc2FnZV9iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfZm9udC1zaXplOiA4NSUgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfZm9udC1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLS1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnQ6ICd0YWJsZXQnICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYWxpZ246IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb29raWUtbWVzc2FnZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBwYWRkaW5nOiAxLjJyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvb2tpZS1tZXNzYWdlX2JhY2tncm91bmQtY29sb3I7XG4gICAgY29sb3I6ICRjb29raWUtbWVzc2FnZV9mb250LWNvbG9yO1xuICAgIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIGZvbnQtc2l6ZTogJGNvb2tpZS1tZXNzYWdlX2ZvbnQtc2l6ZTtcbiAgICB6LWluZGV4OiA5ODtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDExMCUsIDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMjVzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMThzIGxpbmVhcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgYm90dG9tOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLXNob3duIHtcbiAgICAgICAgei1pbmRleDogMjAyO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICZfX2lubmVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA4cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXdyYXBwZXIge1xuICAgICAgICBhbGlnbi1zZWxmOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1hbGlnbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgLmJsb2NrLWNtcy1saW5rLndpZGdldCxcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgIH1cblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkY29va2llLW1lc3NhZ2VfbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLS1ob3ZlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgd2lkdGg6IDUuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiA1LjVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIHRvcDogLTMuNXJlbTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjb29raWUtbWVzc2FnZV9pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkY29va2llLW1lc3NhZ2VfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjb29raWUtbWVzc2FnZV9pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1kYWlseWRlYWwge1xuICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kYWlseWRlYWxfX2hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5jcy1kYWlseWRlYWxfX3RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1kYWlseWRlYWxfX2l0ZW1zLWFtb3VudCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogc3RyZXRjaDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMC4zcmVtIDAuNXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAgIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsIHtcbiAgICAgIHdpZHRoOiA1MCU7XG4gICAgICBiYWNrZ3JvdW5kOiAjZTQxZjEyO1xuICAgICAgei1pbmRleDogNTsgfVxuICAgIC5jcy1kYWlseWRlYWwtLXRlYXNlciAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgICBtaW4taGVpZ2h0OiA0cmVtOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1pY29uIHtcbiAgICB3aWR0aDogMS45cmVtO1xuICAgIGhlaWdodDogMi40cmVtO1xuICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgIHBhZGRpbmc6IDJweCAwIDA7IH1cbiAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBwYWRkaW5nOiAycHggMCAwOyB9XG4gIC5jcy1kYWlseWRlYWwtLXRpbGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAzOyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19hdmFpbGFiaWxpdHkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogIzg4ODtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgcGFkZGluZzogMnB4IDRweDtcbiAgICAgIHotaW5kZXg6IDQ7XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDU5OXB4KSB7XG4gICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Omxhc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7IH1cbiAgICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpsYXN0LWNoaWxkIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi12YWx1ZTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogbm9uZTsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsIHtcbiAgICAgICAgICB3aWR0aDogYXV0bzsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Om5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCkge1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKTpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lOyB9XG4gICAgICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuOHJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbSAhaW1wb3J0YW50OyB9XG4gICAgICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMCA3cHggN3B4IDA7IH1cbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tdmFsdWU6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWRhaWx5ZGVhbF9fYmFkZ2UtcGRwLWljb24ge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgei1pbmRleDogMTA7XG4gICAgZmlsbDogI2ZmZjsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJGRhaWx5ZGVhbC0tdGlsZS1wb3NpdGlvbjogYWJzb2x1dGUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWJvdHRvbTogMCAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtbGVmdDogMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLWFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1tYXJnaW46IDAgMCAwLjVyZW0gIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfdGl0bGUtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfdGl0bGUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktY29sb3I6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJhY2tncm91bmQ6ICRjb2xvcl9ncmF5ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktcGFkZGluZzogMnB4IDRweCAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2l0ZW1zLWFtb3VudC1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tanVzdGlmeS1jb250ZW50OiBzdHJldGNoICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtbWFyZ2luLWZhY3RvcjogM3B4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tdGlsZS1tYXJnaW4tZmFjdG9yOiAxcHggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW4gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXdpZHRoOiAxMDAlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1wYWRkaW5nOiAwLjNyZW0gMC41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1saW5lLWhlaWdodDogMSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYmFja2dyb3VuZDogbm9uZSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwtd2lkdGg6IDUwJSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwtYmFja2dyb3VuZDogJGNvbG9yX2NyaW1zb24gIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWljb24td2lkdGg6IDEuOXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWljb24taGVpZ2h0OiAyLjRyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWZpbGw6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXNpemU6IDEuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1jb2xvcjogJGNvbG9yX2NyaW1zb24gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1wYWRkaW5nOiAycHggMCAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC13ZWlnaHQ6IGluaGVyaXQgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1jb2xvcjogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1wYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1wYWRkaW5nICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcblxuJGRhaWx5LWRlYWwtdGVhc2VyX3Byb2R1Y3QtZGQtY291bnRlci1taW4taGVpZ2h0OiA0cmVtICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1maWxsLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi8vIEJlY2F1c2UgdGhlcmUgaXNuJ3QgZW5vdWdoIHNwYWNlIGZvciBkaXNwbGF5IGZ1bGwgY291bnRlciBvbiBtb2JpbGUgKGRlcGVuZHMgb24gZGVzaW5nKSwgd2UgY2FuIGRpc3BsYXkgY291bnRlciBpbiBsaWdodGVyIHZlcnNpb24gKG9ubHkgb24gdGlsZSlcbi8vIFNldCBgZmFsc2VgIHRvIGlnbm9yZSBsaWdodGVyIHZlcnNpb25cbiRkYWlseWRlYWxfZnVsbC1jb3VudGVyLWxpZ2h0ZXItdmVyc2lvbi1icmVha3BvaW50OiAnPDYwMHB4JyAhZGVmYXVsdDtcblxuLiN7JG5zfWRhaWx5ZGVhbCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46ICRkYWlseWRlYWxfaGVhZGVyLW1hcmdpbjtcbiAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsX2hlYWRlci1mb250LXNpemU7XG5cbiAgICAgICAgQGlmICRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGZsZXggb3JcbiAgICAgICAgICAgICRkYWlseWRlYWxfaGVhZGVyLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGlubGluZS1mbGV4XG4gICAgICAgIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGRhaWx5ZGVhbF9oZWFkZXItanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRkYWlseWRlYWxfaGVhZGVyLWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGFpbHlkZWFsX3RpdGxlLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF90aXRsZS1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAmX19pdGVtcy1hbW91bnQge1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF9pdGVtcy1hbW91bnQtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheTtcbiAgICAgICAgbWFyZ2luOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1tYXJnaW47XG5cbiAgICAgICAgQGlmICRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGZsZXggb3JcbiAgICAgICAgICAgICRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXkgPT1cbiAgICAgICAgICAgIGlubGluZS1mbGV4XG4gICAgICAgIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGRhaWx5ZGVhbF9jb3VudGRvd24tanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRkYWlseWRlYWxfY291bnRkb3duLWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXdpZHRoO1xuICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXBhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZGlzcGxheTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZmxleC1kaXJlY3Rpb247XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1saW5lLWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1iYWNrZ3JvdW5kO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXM7XG5cbiAgICAgICAgJi0tc3BlY2lhbCB7XG4gICAgICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC13aWR0aDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tdGVhc2VyICYge1xuICAgICAgICAgICAgbWluLWhlaWdodDogJGRhaWx5LWRlYWwtdGVhc2VyX3Byb2R1Y3QtZGQtY291bnRlci1taW4taGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLWljb24ge1xuICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWhlaWdodDtcbiAgICAgICAgZmlsbDogJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1maWxsO1xuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWRpc3BsYXk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1kaXNwbGF5O1xuICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICBjb2xvcjogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtY29sb3I7XG4gICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJi0tdGlsZSB7XG4gICAgICAgIHBvc2l0aW9uOiAkZGFpbHlkZWFsLS10aWxlLXBvc2l0aW9uO1xuICAgICAgICBsZWZ0OiAkZGFpbHlkZWFsLS10aWxlLWxlZnQ7XG4gICAgICAgIGJvdHRvbTogJGRhaWx5ZGVhbC0tdGlsZS1ib3R0b207XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB6LWluZGV4OiAzO1xuXG4gICAgICAgICN7JHJvb3R9X19hdmFpbGFiaWxpdHkge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWNvbG9yO1xuICAgICAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktcGFkZGluZztcbiAgICAgICAgICAgIHotaW5kZXg6IDQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1ib3JkZXItcmFkaXVzO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZGFpbHlkZWFsX2Z1bGwtY291bnRlci1saWdodGVyLXZlcnNpb24tYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQuLi5cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6bm90KDpvbmx5LWNoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtLXNwZWNpYWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOm5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS44cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuOHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJvcmRlci1yYWRpdXMgMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19jb3VudGRvd24tbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFBEUFxuICAgICZfX2JhZGdlLXBkcC1pY29uIHtcbiAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi1oZWlnaHQ7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICBmaWxsOiAkZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWZpbGwtY29sb3I7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWRpc3BsYXktY29udHJvbGxlci0taGlkZGVuLW1vYmlsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5jcy1kaXNwbGF5LWNvbnRyb2xsZXItLWhpZGRlbi1kZXNrdG9wIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWRpc3BsYXktY29udHJvbGxlciB7XG4gICAgJi0taGlkZGVuLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbi1kZXNrdG9wIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1kcm9wZG93bi1zd2l0Y2hlciB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1zaHJpbms6IDA7IH1cbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAxLjNyZW07XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItbGVmdDogMC4ycmVtIHNvbGlkICNmZmY7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLXN0b3JlczpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fb3B0aW9uLWljb24ge1xuICAgIG1pbi13aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMS41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogMC42cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1sYW5ndWFnZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX29wdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNXJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4ICNkY2RjZGMgc29saWQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xNXMgbGluZWFyLCByaWdodCAwLjE1cyBsaW5lYXIsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICByaWdodDogM3JlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgcmlnaHQ6IDIuNXJlbTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtIDAgMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUsIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjpiZWZvcmUge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICByaWdodDogMC41cmVtOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlcjphZnRlciB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICByaWdodDogMDsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIuYWN0aXZlOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7IH0gfVxuICAgIC5hY3RpdmUgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDNweDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAuYWN0aXZlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXItc3BhbiB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3Qge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1jb2xvcjogI2YwZjBmMDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgbGVmdDogMXJlbTsgfSB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0IC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tY3VycmVuY3kge1xuICAgICAgcmlnaHQ6IC0xcmVtOyB9XG4gICAgLmFjdGl2ZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0ICFpbXBvcnRhbnQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluazpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMS40cmVtIDJyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0LWl0ZW0tbGluayB7XG4gICAgICAgICAgcGFkZGluZzogMC42cmVtIDEuOHJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTsgfSB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBzZXVkb2ljb25fYmVmb3JlLWhvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHBzZXVkb2ljb25fYWZ0ZXItaG9vaygkdHlwZSkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtYm90dG9tLWJvcmRlcjogMXB4ICRjb2xvcl9ib3JkZXItNTAwIHNvbGlkICFkZWZhdWx0O1xuXG4vLyBPZmZjYW52YXMgdHJpZ2dlciBvcHRpb25zXG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1hY3RpdmU6ICd1cCcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItd2lkdGg6IDAuN3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1vZmZzZXQ6IDNyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8gRHJvcGRvd24gdHJpZ2dlciBvcHRpb25zXG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTgwMCAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvci0tYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0OiAnZG93bicgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmU6ICd1cCcgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItaGVpZ2h0OiAwLjFyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1vZmZzZXQ6IDAuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfdG9wYmFyLXNlcGFyYXRvci1ib3JkZXI6IDAuMnJlbSBzb2xpZCAkY29sb3JfYm9yZGVyLTEwMCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy1oZWlnaHQ6IDEuNXJlbSAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5OiAxLjRyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTogMS4xcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9ZHJvcGRvd24tc3dpdGNoZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIGxlZnQ6IDEuM3JlbTtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc3RvcmVzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb24ge1xuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1sYW5ndWFnZSAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy13aWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dpdGNoZXItb3B0aW9ucyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5O1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLWJvdHRvbS1ib3JkZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICBAaWYgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWVuYWJsZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICRhcnJvdy1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgJGhlaWdodDogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAkYXJyb3ctb2Zmc2V0OiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1ob3ZlcixcbiAgICAgICAgICAgICAgICAkY29sb3ItZXhwYW5kZWQ6XG4gICAgICAgICAgICAgICAgICAgICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1jb2xvci0tYWN0aXZlLFxuICAgICAgICAgICAgICAgICRhY3RpdmUtc2VsZWN0b3I6ICcmLmFjdGl2ZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1zZWNvbmRhcnk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcblxuICAgICAgICAgICAgQGlmICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAkd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGRyb3Bkb3duLXN3aXRjaGVyLXRyaWdnZXItY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkY29sb3ItZXhwYW5kZWQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICRhY3RpdmUtc2VsZWN0b3I6ICcmLmFjdGl2ZSdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGRyb3Bkb3duLXN3aXRjaGVyX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1ib3JkZXItY29sb3I7XG4gICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgIGJvcmRlci13aWR0aDogMCAxcHggMXB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1jdXJyZW5jeSB7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaXRlbS1saW5rIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWl0ZW0tY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNHJlbSAycmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1wcmltYXJ5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC42cmVtIDEuOHJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vaG9vayc7XG5cbiRwc2V1ZG9pY29uLXR5cGU6ICdwbHVzJyAhZGVmYXVsdDsgLy8gcGx1cyAoZGVmYXVsdCkgb3IgYXJyb3dcbi8vIEFuaW1hdGlvbiBmb3IgYXJyb3dzIHdvcmtzIG9ubHkgaWYgZGVmYXVsdCBhbmQgYWN0aXZlIGRpcmVjdGlvbiBhcmUgb3Bwb3NpdGVcbiRwc2V1ZG9pY29uLWFuaW1hdGU6IHRydWUgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1hbmltYXRpb24tdGltZTogMC4xNXMgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1ob3Zlci1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1leHBhbmRlZC1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi13aWR0aDogMS4ycmVtICFkZWZhdWx0O1xuJHBzZXVkb2ljb24taGVpZ2h0OiAwLjJyZW0gIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldDogJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbi8vIEFkZGl0aW9uYWwgc2V0dGluZ3MgZm9yIGFycm93c1xuJHBzZXVkb2ljb24tYXJyb3ctZGVmYXVsdC1kaXJlY3Rpb246ICd1cCcgIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1hcnJvdy1hY3RpdmUtZGlyZWN0aW9uOiAnZG93bicgIWRlZmF1bHQ7XG4vLyBJbiBzb21lIGNhc2VzIChpdCBkZXBlbmRzIG9uICRwc2V1ZG9pY29uLXdpZHRoL2hlaWdodCB2YWx1ZSksIHdlIG5lZWQgdG8gZml4IG9mZnNldCBmb3IgbGVmdCBwYXJ0IG9mIGljb25cbiRwc2V1ZG9pY29uLWFycm93LWxlZnQtb2Zmc2V0OiBjYWxjKFxuICAgICN7JHBzZXVkb2ljb24tcG9zaXRpb24tc2lkZS1vZmZzZXR9ICsgI3skcHNldWRvaWNvbi13aWR0aH0gLSAjezIgKlxuICAgICAgICAkcHNldWRvaWNvbi1oZWlnaHR9XG4pICFkZWZhdWx0O1xuXG4kcHNldWRvaWNvbi1hY3RpdmUtc2VsZWN0b3I6ICcmW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdJyAhZGVmYXVsdDtcblxuQG1peGluIHBzZXVkb2ljb24oXG4gICAgJHR5cGU6ICRwc2V1ZG9pY29uLXR5cGUsXG4gICAgJGFuaW1hdGVkOiAkcHNldWRvaWNvbi1hbmltYXRlLFxuICAgICRhbmltYXRpb24tdGltZTogJHBzZXVkb2ljb24tYW5pbWF0aW9uLXRpbWUsXG4gICAgJGNvbG9yOiAkcHNldWRvaWNvbi1jb2xvcixcbiAgICAkY29sb3ItaG92ZXI6ICRwc2V1ZG9pY29uLWhvdmVyLWNvbG9yLFxuICAgICRjb2xvci1leHBhbmRlZDogJHBzZXVkb2ljb24tZXhwYW5kZWQtY29sb3IsXG4gICAgJHdpZHRoOiAkcHNldWRvaWNvbi13aWR0aCxcbiAgICAkaGVpZ2h0OiAkcHNldWRvaWNvbi1oZWlnaHQsXG4gICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAkcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldCxcbiAgICAkYXJyb3ctZGVmYXVsdDogJHBzZXVkb2ljb24tYXJyb3ctZGVmYXVsdC1kaXJlY3Rpb24sXG4gICAgJGFycm93LWFjdGl2ZTogJHBzZXVkb2ljb24tYXJyb3ctYWN0aXZlLWRpcmVjdGlvbixcbiAgICAkYXJyb3ctb2Zmc2V0OiAkcHNldWRvaWNvbi1hcnJvdy1sZWZ0LW9mZnNldCxcbiAgICAkYWN0aXZlLXNlbGVjdG9yOiAkcHNldWRvaWNvbi1hY3RpdmUtc2VsZWN0b3Jcbikge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlLFxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6ICR3aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG5cbiAgICAgICAgQGlmICgkYW5pbWF0ZWQpIHtcbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0gJ2Fycm93Jykge1xuICAgICAgICAgICAgICAgIEBpZiAoKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIGFuZCAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpKSBvclxuICAgICAgICAgICAgICAgICAgICAoKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykgYW5kICgkYXJyb3ctYWN0aXZlID09ICd1cCcpKSBvclxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKVxuICAgICAgICAgICAgICAgICAgICApIG9yXG4gICAgICAgICAgICAgICAgICAgICgoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0JykgYW5kICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0JykpXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJGFuaW1hdGlvbi10aW1lIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0ICRhbmltYXRpb24tdGltZSBsaW5lYXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gKDIgKiAkYW5pbWF0aW9uLXRpbWUpIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5ICRhbmltYXRpb24tdGltZSBlYXNlLW91dCxcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIEBpZiAoJGNvbG9yLWhvdmVyICE9ICRjb2xvcikge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICBAaWYgKCRjb2xvci1ob3ZlciAhPSAkY29sb3IpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgKCRjb2xvci1leHBhbmRlZCAhPSAkY29sb3IpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItZXhwYW5kZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09ICdhcnJvdycpIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgNTAlLCAwKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpO1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRhY3RpdmUtc2VsZWN0b3J9IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoMCkgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbl9iZWZvcmUtaG9vaygkdHlwZSk7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb25fYWZ0ZXItaG9vaygkdHlwZSk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4uY3MtZmllbGQsXG4uY3MtaW5wdXQge1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWZpZWxkLl9lZGl0aW5nIC5maWVsZC1lcnJvcixcbiAgLmNzLWlucHV0Ll9lZGl0aW5nIC5maWVsZC1lcnJvciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZmllbGRfX2NvbnRyb2wsXG4gIC5jcy1pbnB1dF9fY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWZpZWxkX19sYWJlbCxcbiAgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyB9XG4gICAgLnJlcXVpcmVkIC5jcy1maWVsZF9fbGFiZWw6YWZ0ZXIsIC5yZXF1aXJlZFxuICAgIC5jcy1pbnB1dF9fbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyAqJztcbiAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5jcy1maWVsZF9faW5wdXQsIC5jcy1maWVsZF9fdGV4dGFyZWEsXG4gIC5jcy1pbnB1dF9faW5wdXQsXG4gIC5jcy1pbnB1dF9fdGV4dGFyZWEge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgIC5jcy1maWVsZF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX190ZXh0YXJlYTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dDo6cGxhY2Vob2xkZXIsIC5jcy1maWVsZF9fdGV4dGFyZWE6OnBsYWNlaG9sZGVyLFxuICAgIC5jcy1pbnB1dF9faW5wdXQ6OnBsYWNlaG9sZGVyLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1maWVsZF9faW5wdXRbZGlzYWJsZWRdLCAuY3MtZmllbGRfX3RleHRhcmVhW2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX2lucHV0W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dC5tYWdlLWVycm9yLCAuY3MtZmllbGRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksIC5jcy1maWVsZF9fdGV4dGFyZWEubWFnZS1lcnJvciwgLmNzLWZpZWxkX190ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAgIC5jcy1pbnB1dF9faW5wdXQubWFnZS1lcnJvcixcbiAgICAuY3MtaW5wdXRfX2lucHV0Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYS5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWEubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5jcy1maWVsZF9fc2VsZWN0LFxuICAuY3MtaW5wdXRfX3NlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuY3MtZmllbGRfX3NlbGVjdDo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuY3MtaW5wdXRfX3NlbGVjdDotbW96LWZvY3VzcmluZyxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19zZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyMzdlNTdjMiclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3RbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3Qgb3B0aW9uLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0IG9wdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5jcy1maWVsZF9fcmFkaW8sXG4gIC5jcy1pbnB1dF9fcmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsIC5jcy1maWVsZF9fcmFkaW86LW1vei1mb2N1c3JpbmcsXG4gICAgLmNzLWlucHV0X19yYWRpbzo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuY3MtaW5wdXRfX3JhZGlvOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW86aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3JhZGlvOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzdlNTdjMicgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgICAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQsIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZDpob3ZlciwgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkOmZvY3VzLFxuICAgICAgLmNzLWlucHV0X19yYWRpbzpjaGVja2VkLFxuICAgICAgLmNzLWlucHV0X19yYWRpbzpjaGVja2VkOmhvdmVyLFxuICAgICAgLmNzLWlucHV0X19yYWRpbzpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvW2Rpc2FibGVkXSxcbiAgICAuY3MtZmllbGRfX3JhZGlvW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtZmllbGRfX3JhZGlvW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwsXG4gICAgLmNzLWlucHV0X19yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X19yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWlucHV0X19yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmNzLWZpZWxkX19jaGVja2JveCxcbiAgLmNzLWlucHV0X19jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMWVtO1xuICAgIHdpZHRoOiAxZW07XG4gICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgYm9yZGVyLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmNzLWZpZWxkX19jaGVja2JveDotbW96LWZvY3VzcmluZyxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzN2U1N2MyJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZCwgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkOmhvdmVyLCAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQ6Zm9jdXMsXG4gICAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQsXG4gICAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQ6aG92ZXIsXG4gICAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3hbZGlzYWJsZWRdLFxuICAgIC5jcy1maWVsZF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1maWVsZF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94W2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94W2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94W2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nJTIzN2U1N2MyJyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveC5tYWdlLWVycm9yLCAuY3MtZmllbGRfX2NoZWNrYm94Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X19jaGVja2JveC5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5jcy1maWVsZF9faWNvbixcbiAgLmNzLWlucHV0X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEuM2VtO1xuICAgIGhlaWdodDogMS4zZW07XG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIHRvcDogMC44ZW07XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZmllbGRfX25vdGUsXG4gIC5jcy1pbnB1dF9fbm90ZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgcGFkZGluZzogMC4zZW0gMCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gIC5jcy1maWVsZF9fZXJyb3IsXG4gIC5jcy1pbnB1dF9fZXJyb3Ige1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuXG4uZmllbGQge1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmZpZWxkLl9lZGl0aW5nIC5maWVsZC1lcnJvciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQuX3N1Y2Nlc3M6bm90KC5fd2FybikgLmNvbnRyb2wge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5maWVsZC5fc3VjY2Vzczpub3QoLl93YXJuKSAuY29udHJvbDphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMS4zZW07XG4gICAgICBoZWlnaHQ6IDEuM2VtO1xuICAgICAgcmlnaHQ6IDAuOGVtO1xuICAgICAgdG9wOiAwLjhlbTtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWFnZXMvY2hlY2stZ3JlZW4uc3ZnXCIpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyL2NvbnRhaW47XG4gICAgICBjb250ZW50OiAnJzsgfVxuICAuZmllbGQgLmNvbnRyb2wge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEge1xuICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgICAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgICAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYVtkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkIC5jb250cm9sIC5uZXN0ZWQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCAubmVzdGVkIC5maWVsZCB7XG4gICAgICAgIG1heC13aWR0aDogNDglOyB9XG4gIC5maWVsZCAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTsgfVxuICAuZmllbGQuY2hvaWNlIGxhYmVsLmxhYmVsIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5maWVsZC5yZXF1aXJlZCA+IC5sYWJlbDphZnRlciwgLmZpZWxkLl9yZXF1aXJlZCA+IC5sYWJlbDphZnRlciB7XG4gICAgY29udGVudDogJyAqJztcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAuZmllbGQucmVxdWlyZWQgLl9yZXF1aXJlZCA+IC5sYWJlbDphZnRlciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQgLmlucHV0LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuaW5wdXQtdGV4dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yLCAuZmllbGQgLmlucHV0LXRleHQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0LnJlcXVpcmVkLWVudHJ5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmZpZWxkIC5zZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgcGFkZGluZy1yaWdodDogMi4zZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQgLnNlbGVjdDotbW96LWZvY3VzcmluZywgLmZpZWxkIC5zZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5zZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLnNlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzN2U1N2MyJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuZmllbGQgLnNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZCAuc2VsZWN0IG9wdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5maWVsZCAuY2hlY2tib3gge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cztcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIGJvcmRlci1jb2xvcjogIzdlNTdjMjsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Oi1tb3otZm9jdXMtaW5uZXIsIC5maWVsZCAuY2hlY2tib3g6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuY2hlY2tib3g6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3ZTU3YzInIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkLCAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQ6aG92ZXIsIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveFtkaXNhYmxlZF0sXG4gICAgLmZpZWxkIC5jaGVja2JveFtkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmZpZWxkIC5jaGVja2JveFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nJTIzN2U1N2MyJyBkPSdNNS4zMTMgMTAuMTA4SDUuMjRhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LS40MWwtMS45NDctMi41NWExLjA2NCAxLjAwNSAwIDAgMSAxLjcyMy0xLjE3NUw1LjQ2MyA3LjU2IDkuMDYgNC4xOWExLjA2NCAxLjAwNSAwIDAgMSAuNzUtLjI5N2guODQ2YTEuMDY0IDEuMDA1IDAgMCAxIDAgMi4wMDRoLS40NUw2LjA2NCA5LjgxYTEuMDY0IDEuMDA1IDAgMCAxLS43NS4yOTh6Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveC5tYWdlLWVycm9yLCAuZmllbGQgLmNoZWNrYm94Lm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2U0MWYxMjsgfVxuICAuZmllbGQgLnJhZGlvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQgLnJhZGlvOjotbW96LWZvY3VzLWlubmVyLCAuZmllbGQgLnJhZGlvOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5maWVsZCAucmFkaW86aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLnJhZGlvOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG4gICAgLmZpZWxkIC5yYWRpbzpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzN2U1N2MyJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAgIC5maWVsZCAucmFkaW86Y2hlY2tlZCwgLmZpZWxkIC5yYWRpbzpjaGVja2VkOmhvdmVyLCAuZmllbGQgLnJhZGlvOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5maWVsZCAucmFkaW9bZGlzYWJsZWRdLFxuICAgIC5maWVsZCAucmFkaW9bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5maWVsZCAucmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Qge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgcGFkZGluZy1yaWdodDogMi4zZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzZGNkY2RjJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDAuN2VtIGF1dG8sIDEwMCU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjM3ZTU3YzInJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuZmllbGQuY3VzdG9tZXItbmFtZS1wcmVmaXggc2VsZWN0IG9wdGlvbiB7XG4gICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiBpbml0aWFsOyB9XG4gIC5maWVsZC5maWVsZC1kb2IgaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGlucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGlucHV0Lm1hZ2UtZXJyb3IsIC5maWVsZC5maWVsZC1kb2IgaW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOjpiZWZvcmUsIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOjphZnRlciB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiAqLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24gc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07IH1cbiAgLmZpZWxkLl9lcnJvciAuaW5wdXQtdGV4dCwgLmZpZWxkLl9lcnJvciAuaW5wdXQtdGV4dDpob3Zlcjpub3QoOmZvY3VzKSxcbiAgLmZpZWxkLl9lcnJvciAuY2hlY2tib3gsXG4gIC5maWVsZC5fZXJyb3IgLmNoZWNrYm94OmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5maWVsZCAuY29udHJvbC5fd2l0aC10b29sdGlwIGlucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgLmZpZWxkIC5maWVsZC10b29sdGlwIHtcbiAgICBwb3NpdGlvbjogc3RhdGljOyB9XG4gICAgLmZpZWxkIC5maWVsZC10b29sdGlwIC5sYWJlbCxcbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudCB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgICAgLmZpZWxkIC5maWVsZC10b29sdGlwIC5maWVsZC10b29sdGlwLWNvbnRlbnQ6YmVmb3JlLCAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmZpZWxkIC5ub3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cblxuLmZpZWxkOm5vdCguY2hvaWNlKTpub3QoLmxpbWl0ZXIpOm5vdCgudGVybXMpOm5vdCguY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlcikge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmZpZWxkOm5vdCguY2hvaWNlKTpub3QoLmxpbWl0ZXIpOm5vdCgudGVybXMpOm5vdCguY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlcikgLmxhYmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMTBweDtcbiAgICBsZWZ0OiAyMHB4O1xuICAgIHotaW5kZXg6IDM7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwYWRkaW5nOiAwIDVweDtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5maWVsZDpub3QoLmNob2ljZSk6bm90KC5saW1pdGVyKTpub3QoLnRlcm1zKTpub3QoLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXIpIC5sYWJlbCAuZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWwge1xuICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG5cbmlucHV0W25hbWU9XCJmYWt0dXJhX2VsZWt0cm9uaWN6bmFcIl0gKyBsYWJlbCB7XG4gIHRvcDogMnB4ICFpbXBvcnRhbnQ7IH1cblxuLmZpZWxkW25hbWU9XCJhbWFzdHlQYXltZW50QXR0cmlidXRlcy5mYWt0dXJhX2VsZWt0cm9uaWN6bmFcIl0gPiBsYWJlbCB7XG4gIHRvcDogMnB4ICFpbXBvcnRhbnQ7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmN1c3RvbWVyLWFkZHJlc3MtZm9ybSAuZmllbGQuc3RyZWV0IC5sYWJlbCB7XG4gIHRvcDogMTBweDsgfVxuXG4uZmllbGQudGVybXMgLmxhYmVsIHtcbiAgdG9wOiAtM3B4ICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDI0cHggIWltcG9ydGFudDsgfVxuXG4uY3MtZGFzaGJvYXJkIC5maWVsZCB7XG4gIG1hcmdpbi1ib3R0b206IDJyZW0gIWltcG9ydGFudDsgfVxuXG4uZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWwge1xuICBwYWRkaW5nOiAwIDVweDtcbiAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDsgfVxuXG5kaXYubWFnZS1lcnJvcjpub3QoLl9lZGl0aW5nKSxcbmRpdi5maWVsZC1lcnJvcjpub3QoLl9lZGl0aW5nKSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDAuODVlbTtcbiAgcGFkZGluZzogMC4zZW0gMCAwO1xuICBjb2xvcjogIzY5Njk2OTtcbiAgY29sb3I6ICNlNDFmMTI7IH1cblxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBmaWVsZC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0LWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pY29uLWhvb2soJHR5cGU6ICcnKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1ub3RlLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtd2FybmluZy1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0LWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jaGVja2JveC1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtZG9iLWhvb2soKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3VyaS1mcmllbmRseS1oZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9ob29rJztcblxuJGZpZWxkX2ZvbnQtc2l6ZTogMS44cmVtICFkZWZhdWx0O1xuJGZpZWxkX3RyYW5zaXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcblxuJGZpZWxkX2xhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfbGFiZWwtcGFkZGluZy1ib3RvbTogMC41cmVtICFkZWZhdWx0O1xuXG4kZmllbGRfaW5wdXQtZm9udC1zaXplOiAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtcGFkZGluZzogJGJ1dHRvbl9wYWRkaW5nICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU6IDJweCBzb2xpZCAkY29sb3ItcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1czogMjAwcHggIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5OiAwLjY1ICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9lcnJvci1mb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfZXJyb3ItaW5wdXQtYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX25vdGUtZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZpZWxkX25vdGUtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJGZpZWxkX2Vycm9yLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfd2FybmluZy1jb2xvcjogJGNvbG9yX3dhcm5pbmctNTAwICFkZWZhdWx0O1xuLy8gQmFzZWQgb24gaHR0cHM6Ly93d3cuZmlsYW1lbnRncm91cC5jb20vbGFiL3NlbGVjdC1jc3MuaHRtbFxuJGZpZWxkX3NlbGVjdC1mb250LXNpemU6ICRmaWVsZF9pbnB1dC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1wYWRkaW5nLXJpZ2h0OiAyLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcblxuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJSAhZGVmYXVsdDtcblxuLy8gTm90ZSB0aGF0IHNlbGVjdCBiYWNrZ3JvdW5kIG5lZWRzIHRvIGJlIGRlZmluZWQgYXMgYmFja2dyb3VuZC1pbWFnZSB0byBwcmV2ZW50XG4vLyBvcHRpb24gZWxlbWVudHMgZnJvbSBpbmhlcml0aW5nIGl0IG9uIHNvbWUgYnJvd3NlcnMuXG4kZmllbGRfc2VsZWN0LWljb24tZmlsbDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbCl9JyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksXG4gICAgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPScje3VyaS1mcmllbmRseS1oZXgoJGZpZWxkX3NlbGVjdC1pY29uLWZpbGwtYWN0aXZlKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpICFkZWZhdWx0O1xuXG4kZmllbGRfc2VsZWN0LWJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlOiAycHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdy1hY3RpdmU6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eSAhZGVmYXVsdDtcblxuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbiRmaWVsZF9yYWRpby1mb250LXNpemU6IDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1zaXplOiAxZW0gIWRlZmF1bHQ7XG4vLyBMZXRzIHlvdSBhZGp1c3QgYm90aCByYWRpbyBhbmQgY2hlY2tib3ggYWxpZ25tZW50IGJhc2VkIG9uIGZvbnQgeW91J3ZlIGNob3Nlbi5cbiRmaWVsZF9yYWRpby1vZmZzZXQ6IC0wLjA2MjVlbSAhZGVmYXVsdDtcbi8vIEFsaWduaW5nIGFueXRoaW5nIHRoYXQgY29tZXMgYWZ0ZXIgd2l0aCBpbnB1dCBwYWRkaW5ncywgdGhpcyAxcHggc3RhbmRzIGZvciBpbnB1dCdzIGJvcmRlciB3aWR0aC5cbiRmaWVsZF9yYWRpby1tYXJnaW46ICRmaWVsZF9yYWRpby1vZmZzZXQgY2FsYygjezEuNWVtIC0gJGZpZWxkLXJhZGlvLXNpemV9ICsgMXB4KSAwIDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW0gIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1hY3RpdmU6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8taWNvbi1maWxsOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfcmFkaW8taWNvbi1maWxsKX0nIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKSAhZGVmYXVsdDtcblxuJGZpZWxkX3JhZGlvLWJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJvcmRlci1hY3RpdmU6IDJweCBzb2xpZCAkY29sb3ItcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWNoZWNrZWQ6IDJweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm94LXNoYWRvdzogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ6IG5vbmUgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHkgIWRlZmF1bHQ7XG5cbiRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtc2l6ZTogMWVtIDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9jaGVja2JveC1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NwYXRoIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfY2hlY2tib3gtaWNvbi1maWxsKX0nIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIikgIWRlZmF1bHQ7XG5cbiRmaWVsZF9pY29uLXdpZHRoOiAxLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9pY29uLWhlaWdodDogMS4zZW0gIWRlZmF1bHQ7XG4kZmllbGRfaWNvbi1zdWNjZXNzLWJhY2tncm91bmQ6IHVybCgnLi4vaW1hZ2VzL2NoZWNrLWdyZWVuLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyIC8gY29udGFpbiAhZGVmYXVsdDtcblxuJGZpZWxkX2RvYi1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG5AbWl4aW4gZmllbGQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfZm9udC1zaXplO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmLl9lZGl0aW5nIHtcbiAgICAgICAgLmZpZWxkLWVycm9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvcigpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9lcnJvci1mb250LXNpemU7XG4gICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgbWFyZ2luLXRvcDogMC4yZW07XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbCgpIHtcbiAgICBmb250LXdlaWdodDogJGZpZWxkX2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGZpZWxkX2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgIGNvbG9yOiAkZmllbGRfbGFiZWwtY29sb3I7XG4gICAgcGFkZGluZy1ib3R0b206ICRmaWVsZF9sYWJlbC1wYWRkaW5nLWJvdG9tO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtcmVxdWlyZWQoKSB7XG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcgKic7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfZXJyb3ItNTAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNvbnRyb2woKSB7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jb250cm9sLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWlucHV0KCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGZpZWxkX2lucHV0LWxpbmUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRmaWVsZF9pbnB1dC1wYWRkaW5nO1xuICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGZpZWxkX2lucHV0LWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX2lucHV0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfaW5wdXQtYm9yZGVyO1xuICAgIGJveC1zaGFkb3c6ICRmaWVsZF9pbnB1dC1ib3gtc2hhZG93O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDsgLy8gUmVtb3ZlcyBkcm9wIHNoYWRvdyBmcm9tIGlucHV0cyBvbiBpT1MuXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBjb2xvcjogJGZpZWxkX2lucHV0LXBsYWNlaG9sZGVyLWNvbG9yO1xuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3IoKSB7XG5cbiAgICAmLFxuICAgICY6aG92ZXI6bm90KDpmb2N1cykge1xuICAgICAgICBib3JkZXI6ICRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3ItaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaWNvbigkdHlwZTogJycpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6ICRmaWVsZF9pY29uLXdpZHRoO1xuICAgIGhlaWdodDogJGZpZWxkX2ljb24taGVpZ2h0O1xuICAgIHJpZ2h0OiAwLjhlbTtcbiAgICB0b3A6IDAuOGVtO1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRmaWVsZF9pY29uLXN1Y2Nlc3MtYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pY29uLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gZmllbGQtbm90ZSgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmaWVsZF9ub3RlLWZvbnQtc2l6ZTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gICAgY29sb3I6ICRmaWVsZF9ub3RlLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtbm90ZS1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvcigpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICBjb2xvcjogJGZpZWxkX2Vycm9yLWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3ItaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtd2FybmluZygpIHtcbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICBjb2xvcjogJGZpZWxkX3dhcm5pbmctY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC13YXJuaW5nLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXNlbGVjdCgpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6ICRmaWVsZF9zZWxlY3QtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0O1xuICAgIHBhZGRpbmc6ICRmaWVsZF9zZWxlY3QtcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ7XG4gICAgY29sb3I6ICRmaWVsZF9zZWxlY3QtY29sb3I7XG4gICAgYm9yZGVyLXJhZGl1czogJGZpZWxkX3NlbGVjdC1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgMCAwLjJlbTsgLy8gQWRkIHNwYWNpbmcgdW5kZXIgbGFiZWwuIFRoaXMgY2FuJ3QgYmUgYWRkZWQgdG8gbGFiZWwgaXRzZWxmIGJlY2F1c2UgdGhleSBhcmUgc29tZXRpbWVzIHJlbmRlcmVkIGVtcHR5LlxuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWltYWdlO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtcG9zaXRpb247XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtc2l6ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZTtcblxuICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcbiAgICAmOi1tb3otZm9jdXNyaW5nLFxuICAgICY6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9zZWxlY3QtYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9zZWxlY3QtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk7XG4gICAgfVxuXG4gICAgb3B0aW9uIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgY29sb3I6IGluaXRpYWw7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWxhYmVsKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvKCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIHdpZHRoOiAkZmllbGRfcmFkaW8tc2l6ZTtcbiAgICBtYXJnaW46ICRmaWVsZF9yYWRpby1tYXJnaW47XG4gICAgZm9udC1zaXplOiAkZmllbGRfcmFkaW8tZm9udC1zaXplO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvOyAvLyBQcmV2ZW50IGZsZXggcGFyZW50IGZyb20gYnJlYWtpbmcgZGltZW5zaW9ucy5cbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3c7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtc2l6ZTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWUsXG4gICAgICAgIGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAmOi1tb3otZm9jdXNyaW5nIHtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyOiAkZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Y2hlY2tlZCB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItY2hlY2tlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWNoZWNrZWQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdy1jaGVja2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0sXG4gICAgJltkaXNhYmxlZF0rLmxhYmVsLFxuICAgICZbZGlzYWJsZWRdKy5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfcmFkaW8tZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZW5hYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWxhYmVsKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94KCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvKCk7XG5cbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfY2hlY2tib3gtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9jaGVja2JveC1iYWNrZ3JvdW5kLXNpemU7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2IoKSB7XG4gICAgaW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkZmllbGRfZG9iLWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvcyApO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkZmllbGRfZG9iLWJ1dHRvbi1pY29uLXBvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtZG9iLWhvb2soKTtcbn0iLCJAaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4vLyBPdXIgQkVNIGNvbXBvbmVudC5cbi5jcy1maWVsZCxcbi8vIExlZnQgZm9yIG5vdyBmb3IgY29tcGF0aWJpbGl0eSBzYWtlLlxuLmNzLWlucHV0IHtcbiAgICBAaW5jbHVkZSBmaWVsZCgpO1xuXG4gICAgJl9fY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2woKTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG5cbiAgICAgICAgLnJlcXVpcmVkICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2lucHV0LFxuICAgICZfX3RleHRhcmVhIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgICZfX3JhZGlvIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgICAgICAvLyBUbyByZXdyaXRlIHRvIHByb3BlciBzY3NzIHN5bnRheCBhZnRlciBnZXR0aW5nIHJpZCBvZiAuY3MtaW5wdXQgY2xhc3NcbiAgICAgICAgJiArIC5jcy1pbnB1dF9fbGFiZWwsXG4gICAgICAgICYgKyAuY3MtZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jaGVja2JveCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUbyByZXdyaXRlIHRvIHByb3BlciBzY3NzIHN5bnRheCBhZnRlciBnZXR0aW5nIHJpZCBvZiAuY3MtaW5wdXQgY2xhc3NcbiAgICAgICAgJiArIC5jcy1pbnB1dF9fbGFiZWwsXG4gICAgICAgICYgKyAuY3MtZmllbGRfX2xhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaWNvbigpO1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxuXG4gICAgJl9fZXJyb3Ige1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1lcnJvcigpO1xuICAgIH1cbn1cbi8vIE1hZ2VudG8gY2xhc3NlcyB1c2VkIGluIGNoZWNrb3V0LCBsb2dpbi9yZWdpc3RlciBmb3JtcyBldGMuXG4uZmllbGQge1xuICAgIEBpbmNsdWRlIGZpZWxkKCk7XG4gICAgLy8gY3VzdG9tIGxhYmVsXG4gICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xuXG5cbiAgICAmLl9zdWNjZXNzOm5vdCguX3dhcm4pIHtcbiAgICAgICAgLmNvbnRyb2wge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pY29uKCdzdWNjZXNzJyk7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udHJvbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2woKTtcblxuICAgICAgICA+IHRleHRhcmVhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG4gICAgICAgIH1cblxuICAgICAgICAubmVzdGVke1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgICAgIC5maWVsZHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDQ4JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG4gICAgICAgIFxuICAgIH1cblxuICAgICYuY2hvaWNlIGxhYmVsLmxhYmVsIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgJi5yZXF1aXJlZCxcbiAgICAmLl9yZXF1aXJlZCB7XG4gICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsLXJlcXVpcmVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkIHtcbiAgICAgICAgLl9yZXF1aXJlZCB7XG4gICAgICAgICAgICA+IC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhpZGUgYXN0ZXJpc2tzIGZvciBsYWJlbHMgaW5zaWRlIGZpZWxkc2V0cyBhcyB0aGV5IGFyZSB1c3VhbGx5IHJlbmRlcmVkIGVtcHR5LlxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYucmVxdWlyZWQtZW50cnkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3Qge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QoKTtcbiAgICB9XG5cbiAgICAuY2hlY2tib3gge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJiArIC5sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1jaGVja2JveC1sYWJlbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhZGlvIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgICAgICAmICsgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXJhZGlvLWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmN1c3RvbWVyLW5hbWUtcHJlZml4IHtcbiAgICAgICAgc2VsZWN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5maWVsZC1kb2Ige1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1kb2IoKTtcbiAgICB9XG5cbiAgICAmLl9lcnJvciB7XG4gICAgICAgIC5pbnB1dC10ZXh0LFxuICAgICAgICAuY2hlY2tib3gge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJldmVydGluZyBzdHlsZXMgZm9yIGlucHV0IHdpdGggdG9vbHRpcC5cbiAgICAuY29udHJvbC5fd2l0aC10b29sdGlwIGlucHV0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gICAgLy8gUmV2ZXJ0aW5nIGluZm8gdG9vbHRpcCBzdHlsZXMgdG8gbWFrZSBpdCBhcHBlYXIgYXMgbm90ZSBiZWxvdyB0aGUgaW5wdXQuXG4gICAgLmZpZWxkLXRvb2x0aXAge1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuXG4gICAgICAgIC5sYWJlbCxcbiAgICAgICAgLmZpZWxkLXRvb2x0aXAtYWN0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG5cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ub3RlIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbm90ZSgpO1xuICAgIH1cbn1cblxuLmZpZWxkOm5vdCguY2hvaWNlKTpub3QoLmxpbWl0ZXIpOm5vdCgudGVybXMpOm5vdCguY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlcil7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIFxuICAgIC5sYWJlbHtcbiAgICAgICAgLy9jdXN0b20gbGFiZWxcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICBsZWZ0OiAyMHB4O1xuICAgICAgICB6LWluZGV4OiAzO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAuZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWx7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaW5wdXRbbmFtZT1cImZha3R1cmFfZWxla3Ryb25pY3puYVwiXStsYWJlbCB7XG4gICAgdG9wOiAycHghaW1wb3J0YW50O1xufVxuLmZpZWxkW25hbWU9XCJhbWFzdHlQYXltZW50QXR0cmlidXRlcy5mYWt0dXJhX2VsZWt0cm9uaWN6bmFcIl0+bGFiZWx7XG4gICAgdG9wOiAycHghaW1wb3J0YW50O1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jdXN0b21lci1hZGRyZXNzLWZvcm17XG4gICAgLmZpZWxkLnN0cmVldHtcbiAgICAgICAgLmxhYmVse1xuICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZmllbGQudGVybXN7XG4gICAgLmxhYmVse1xuICAgICAgICB0b3A6IC0zcHghaW1wb3J0YW50O1xuICAgICAgICBsZWZ0OiAyNHB4IWltcG9ydGFudDtcbiAgICB9XG59XG4uY3MtZGFzaGJvYXJkIC5maWVsZHtcbiAgICBtYXJnaW4tYm90dG9tOiAycmVtIWltcG9ydGFudDtcbn1cblxuLmZpZWxkc2V0IC5mdWxsbmFtZSAuZmllbGQgLmxhYmVse1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIHdpZHRoOiBhdXRvIWltcG9ydGFudDtcbn1cblxuLy8gSGFzIHRvIGJlIHNjb3BlZCB0byBkaXYsIG90aGVyd2lzZSBpdCBjb2xsaWRlcyB3aXRoIGlucHV0IGNsYXNzLlxuZGl2Lm1hZ2UtZXJyb3I6bm90KC5fZWRpdGluZyksXG5kaXYuZmllbGQtZXJyb3I6bm90KC5fZWRpdGluZykge1xuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cblxuLy8gY3VzdG9tIHN0eWxlXG4vLyAuZmllbGQuc3RyZWV0IC5maWVsZCAubGFiZWx7XG4vLyAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuLy8gICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4vLyAgICAgcGFkZGluZy10b3A6IDZweDtcbi8vICAgICB3aWR0aDogMTAwJTtcbi8vICAgICBoZWlnaHQ6IGF1dG87XG4vLyB9XG5cbiIsIi8qKlxuICogRm9vdGVyIGNvbXBvbmVudCBjdXN0b21pemF0aW9uLlxuICogQHNlZSAvTWFnZW50b19UaGVtZS90ZW1wbGF0ZXMvZm9vdGVyL2NvbHVtbnMucGh0bWwgZm9yIHRlbXBsYXRlcy5cbiAqL1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kZm9vdGVyX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRmb290ZXJfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJGZvb3Rlcl9lZGdlLWd1dHRlcjogJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRmb290ZXJfc2VjdGlvbi1lZGdlLWd1dHRlcjogJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdmVydGljYWwtb2Zmc2V0OiAyZW0gIWRlZmF1bHQ7XG5cbiRmb290ZXJfc2VjdGlvbi1zZXBhcmF0b3ItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG5cbiRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS00ICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXBhZGRpbmc6ICRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQgJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi10aXRsZS10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG5cbiRmb290ZXJfc2VjdGlvbi1wc2V1ZG9pY29uLWluY2x1ZGU6IHRydWUgIWRlZmF1bHQ7XG5cbiRmb290ZXJfcHJvbW8tZGlzcGxheS1vbi1tb2JpbGU6IGZhbHNlICFkZWZhdWx0O1xuJGZvb3Rlcl9sb2dvLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGZvb3Rlcl9sb2dvLXdpZHRoOiAxMy41ZW0gIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28taGVpZ2h0OiAyLjNlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWZvb3RlciB7XG4gICAgJHJvb3Q6ICY7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgIGJhY2tncm91bmQ6ICRmb290ZXJfYmFja2dyb3VuZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDAgMCAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuXG4gICAgaDMge1xuICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIC8vIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAwICRmb290ZXJfZWRnZS1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgLypkaXNwbGF5OiBmbGV4OyovXG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogNHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcHJvbW8ge1xuICAgICAgICAgICAgQGlmICRmb290ZXJfcHJvbW8tZGlzcGxheS1vbi1tb2JpbGUgPT1mYWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmtzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGZvb3Rlcl9zZWN0aW9uLXZlcnRpY2FsLW9mZnNldDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogNTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWV4dHJhcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlY3Rpb24ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3c2xldHRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc29jaWFscyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXN0b3Jlcy1zd2l0Y2hlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIC5waG9uZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zbWFsbCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1haWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWFpbC1sb2dvLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbi0tY29sbGFwc2libGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA5NiU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMzBweCAxMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjNweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM4ODg7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgICZfX3NlY3Rpb24tdGl0bGUsXG4gICAgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgICAgIEBpZiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtaGVhZGxpbmUtbGV2ZWwgIT0nbm9uZScge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtaGVhZGxpbmUtbGV2ZWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRmb290ZXJfc2VjdGlvbi10aXRsZS10cmFuc2Zvcm07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2VjdGlvbi0tY29sbGFwc2libGUgJiB7XG4gICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAgICAgQGlmICRmb290ZXJfc2VjdGlvbi1wc2V1ZG9pY29uLWluY2x1ZGUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fc2VjdGlvbi0tc29jaWFscyAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbi1jb250ZW50LFxuICAgIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2VjdGlvbi0tY29sbGFwc2libGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Nob3AtbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6ICRmb290ZXJfbG9nby1kaXNwbGF5O1xuICAgICAgICB3aWR0aDogJGZvb3Rlcl9sb2dvLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRmb290ZXJfbG9nby1oZWlnaHQ7XG4gICAgICAgIG1pbi13aWR0aDogJGZvb3Rlcl9sb2dvLXdpZHRoO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1mb290ZXIge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxuXG4gICAgJi0tZm9vdGVyLXVzcHMge1xuICAgICAgICAuI3skbnN9aW1hZ2UtdGVhc2VyX19jb250ZW50IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uY3MtZm9vdGVyX19jb250ZW50IHtcbiAgICAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMge1xuICAgICAgICBtYXJnaW46IDJyZW0gMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvcHlyaWdodCxcbiAgICAgICAgLmF1dGhvciB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3NpbHZlci1jaGFsaWNlO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3NpbHZlci1jaGFsaWNlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNvY2lhbHMge1xuICAgICAgICAgICAgcGFkZGluZzogOHB4IDMwcHg7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3Jfc2lsdmVyLWNoYWxpY2U7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pbnN0YWdyYW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1saW5rcz4uY3MtZm9vdGVyX19zZWN0aW9uIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgfVxuXG4gICAgLy8gLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzPi5jcy1mb290ZXJfX3NlY3Rpb24uY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSB7XG4gICAgLy8gICAgIC8vIG1heC13aWR0aDogMjAwcHg7XG4gICAgLy8gfVxufSIsIi8qKlxuICogRm9vdGVyIGNvbXBvbmVudCBjdXN0b21pemF0aW9uLlxuICogQHNlZSAvTWFnZW50b19UaGVtZS90ZW1wbGF0ZXMvZm9vdGVyL2NvbHVtbnMucGh0bWwgZm9yIHRlbXBsYXRlcy5cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtZm9vdGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMCAwIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5jcy1mb290ZXIgaDMge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7IH1cbiAgLmNzLWZvb3RlciBwIHtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGZvbnQtc2l6ZTogMTZweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyIHAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWZvb3RlciB7XG4gICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG4gIC5jcy1mb290ZXJfX2NvbnRlbnQge1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fY29udGVudCB7XG4gICAgICAgIC8qZGlzcGxheTogZmxleDsqL1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMi41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fY29udGVudCB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19pdGVtIHtcbiAgICAgIGZsZXg6IDE7IH0gfVxuICAuY3MtZm9vdGVyX19pdGVtLS1wcm9tbyB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19pdGVtLS1wcm9tbyB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19pdGVtLS1wcm9tbyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICAgICAgZmxleC1iYXNpczogYXV0bztcbiAgICAgICAgZmxleC1ncm93OiAxOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19pdGVtLS1saW5rcyB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19pdGVtLS1saW5rcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgIG1hcmdpbi10b3A6IDJlbTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19pdGVtLS1saW5rcyB7XG4gICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19pdGVtLS1saW5rcyB7XG4gICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgZmxleC1ncm93OiA1OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19pdGVtLS1leHRyYXMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtYmFzaXM6IDEwMCU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWV4dHJhcyB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGZsZXgtYmFzaXM6IDI1JTtcbiAgICAgIGZsZXgtZ3JvdzogMjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9fc2VjdGlvbiB7XG4gICAgICBmbGV4OiAxOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1uZXdzbGV0dGVyIHtcbiAgICAgIGZsZXgtZ3JvdzogMjsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tc29jaWFscyB7XG4gICAgICBtYXJnaW4tdG9wOiA0cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1zdG9yZXMtc3dpdGNoZXIge1xuICAgICAgbWFyZ2luLXRvcDogNHJlbTtcbiAgICAgIG1heC13aWR0aDogMjByZW07IH0gfVxuICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5waG9uZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gICAgLmNzLWZvb3Rlcl9fc2VjdGlvbiAuY29udGVudCAuc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWZvb3Rlcl9fc2VjdGlvbiAuY29udGVudCAubWFpbCB7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbiAuY29udGVudCAubWFpbDpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbC1sb2dvLnN2Z1wiKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUge1xuICAgICAgd2lkdGg6IDk2JTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgIHBhZGRpbmc6IDhweCAzMHB4IDEwcHg7XG4gICAgICBib3JkZXItcmFkaXVzOiAyM3B4O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODsgfSB9XG4gIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsXG4gIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTpiZWZvcmUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGU6YWZ0ZXIsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXTpiZWZvcmUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICAgICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4O1xuICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMTVzIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTpiZWZvcmUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGU6YWZ0ZXIsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXTpiZWZvcmUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlXG4gICAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXTphZnRlciB7XG4gICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoLTkwZGVnKSAhaW1wb3J0YW50O1xuICAgICAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZVthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1zb2NpYWxzIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLXNvY2lhbHNcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSxcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0ndGl0bGUnXSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LFxuICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBmb250LXNpemU6IDEuMmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tY29udGVudCwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tY29udGVudCxcbiAgICAgIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSdjb250ZW50J10ge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gIC5jcy1mb290ZXJfX3Nob3AtbG9nbyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEzLjVlbTtcbiAgICBoZWlnaHQ6IDIuM2VtO1xuICAgIG1pbi13aWR0aDogMTMuNWVtO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlOyB9XG5cbi5jcy1jb250YWluZXItLWZvb3RlciB7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuXG4uY3MtY29udGFpbmVyLS1mb290ZXItdXNwcyAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50IHtcbiAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cblxuLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMge1xuICBtYXJnaW46IDJyZW0gMDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLmNvcHlyaWdodCxcbiAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLmF1dGhvciB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGNvbG9yOiAjYjBiMGIwOyB9XG4gICAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLmNvcHlyaWdodCBhLFxuICAgIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIC5hdXRob3IgYSB7XG4gICAgICBjb2xvcjogI2IwYjBiMCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIC5zb2NpYWxzIHtcbiAgICBwYWRkaW5nOiA4cHggMzBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjYjBiMGIwO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIC5zb2NpYWxzIHtcbiAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICBib3JkZXI6IHVuc2V0OyB9IH1cbiAgICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuc29jaWFscyAuaW5zdGFncmFtIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuXG4uY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1saW5rcyA+IC5jcy1mb290ZXJfX3NlY3Rpb24ge1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEuNXJlbTsgfVxuIiwiLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuXG5AbWl4aW4gdmlzdWFsbHktaGlkZGVuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IC8qIDEgKi9cbn1cblxuQG1peGluIHZpc3VhbGx5LXZpc2libGUge1xuICAgIGNsaXA6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mb290ZXItbGlua3Mge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLWZvb3Rlci1saW5rc19faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMC4zZW07IH1cbiAgLmNzLWZvb3Rlci1saW5rcyBhLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1mb290ZXItbGlua3MgYTpob3ZlciwgLmNzLWZvb3Rlci1saW5rcyBhOmZvY3VzLCAuY3MtZm9vdGVyLWxpbmtzIGE6YWN0aXZlLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZDpob3ZlciwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRmb290ZXItbGlua3NfbGlzdC1pdGVtLW1hcmdpbjogMCAwIDAuM2VtICFkZWZhdWx0O1xuXG4kZm9vdGVyLWxpbmtzX2xpbmstZm9udC1zaXplOiAycmVtICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWNvbG9yOiAjNDU1YTY0ICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWNvbG9yOiAjNGQyYzkxICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTogMHB4ICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctZGVza3RvcDogMHB4ICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyLWxpbmtzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46ICRmb290ZXItbGlua3NfbGlzdC1pdGVtLW1hcmdpbjtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgbGluaygkY29sb3I6ICRmb290ZXItbGlua3NfbGluay1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWNvbG9yLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICRmb290ZXItbGlua3NfbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICRmb290ZXItbGlua3NfbGluay1ob3Zlci1kZWNvcmF0aW9uICk7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctbW9iaWxlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZm9vdGVyLWxpbmtzX2xpbmstZm9udC1zaXplO1xuXG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZm9vdGVyLWxpbmtzX2xpbmstcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWdvb2dsZS1yZWNhcHRjaGEge1xuICBtYXJnaW46IDFyZW0gMDsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fYmFkZ2UtLWludmlzaWJsZSAuZ3JlY2FwdGNoYS1iYWRnZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIGhlaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHdpZHRoOiAwICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGEsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6Zm9jdXMsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6YWN0aXZlLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzRkMmM5MTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBtYXJnaW46IDFyZW0gMDsgfVxuICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGEsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6Zm9jdXMsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6YWN0aXZlLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1nb29nbGUtcmVjYXB0Y2hhLS1uZXdzbGV0dGVyIC5jcy1nb29nbGUtcmVjYXB0Y2hhX19ub3RlIGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tY3VzdG9tZXJfY3JlYXRlIHtcbiAgICBtYXJnaW4tdG9wOiAtMnJlbTsgfVxuICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tY3VzdG9tZXJfbG9naW4gLmctcmVjYXB0Y2hhIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGdvb2dsZS1yZWNhcHRjaGFfbWFyZ2luOiAxcmVtIDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LW1hcmdpbjogMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX3RleHQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvci1ob3ZlcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbi1ob3Zlcjogbm9uZSAhZGVmYXVsdDtcblxuLy8gbmV3c2xldHRlclxuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1tYXJnaW46IDFyZW0gMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLWhvdmVyOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1kZWNvcmF0aW9uLWhvdmVyOiB1bmRlcmxpbmUgIWRlZmF1bHQ7XG5cbi4jeyRuc31nb29nbGUtcmVjYXB0Y2hhIHtcbiAgICAkcm9vdDogJjtcblxuICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbWFyZ2luO1xuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICAmLS1pbnZpc2libGUge1xuICAgICAgICAgICAgLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICAgICAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ub3RlIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtbWFyZ2luO1xuICAgICAgICBmb250LXNpemU6ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1jb2xvcjtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGxpbmsoXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvci1ob3ZlcixcbiAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24taG92ZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1uZXdzbGV0dGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLW1hcmdpbjtcblxuICAgICAgICAjeyRyb290fV9fbm90ZSB7XG4gICAgICAgICAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1tYXJnaW47XG4gICAgICAgICAgICBmb250LXNpemU6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWNvbG9yO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgICAgICAgICAkY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6XG4gICAgICAgICAgICAgICAgICAgICAgICAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbi1ob3ZlclxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jdXN0b21lcl9jcmVhdGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAtMnJlbTtcbiAgICB9XG5cbiAgICAmLS1jdXN0b21lcl9sb2dpbiB7XG4gICAgICAgIC5nLXJlY2FwdGNoYSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIFZhcmlhYmxlcyByZWxhdGVkIHRvIHN0aWNreSBoZWFkZXIgYW5kIHRvcGJhciBvbiBtb2JpbGUgZGV2aWNlcy5cbiAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAqIElmIHlvdSBoYXZlIG1vcmUgZWxlbWVudHMgb24gdG9wLCB5b3UgaGF2ZSB0byBpbmNsdWRlIHRoZWlyIGhlaWdodC5cbiAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG5cbi8qKlxuICAgICAqIFN0eWxlcyByZWxhdGVkIHRvIHN0aWNreSBoZWFkZXIgYW5kIHRvcGJhciBvbiBtb2JpbGUgZGV2aWNlcy5cbiAgICAgKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gICAgICovXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgcGFkZGluZy10b3A6IDguM3JlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogNXJlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gICAgcG9zaXRpb246IHN0aWNreTtcbiAgICB6LWluZGV4OiA4MDA7XG4gICAgdG9wOiAwO1xuICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZpeGVkIHBvc2l0aW9uaW5nIHJlcXVpcmVkIHRvIHdvcmsgd2l0aCBvZmZjYW52YXMgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgICovIH1cbiAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3Blbi5uby1zY3JvbGwgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1jb250YWluZXItLWhlYWRlciB7XG4gICAgdG9wOiAwOyB9IH1cblxuLmNzLWhlYWRlciB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgaGVpZ2h0OiA1cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6IDguM3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgLmNzLWhlYWRlciB7XG4gICAgICBoZWlnaHQ6IDEwcmVtOyB9IH1cbiAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgaGVpZ2h0OiA1cmVtO1xuICAgIHotaW5kZXg6IDMwMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDguM3JlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBib3JkZXItYm90dG9tOiB1bnNldDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAxMHJlbTsgfSB9XG4gIC5jcy1oZWFkZXJfX29mZmNhbnZhcy10b2dnbGUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmbGV4OiAwIDEgNHJlbTsgfVxuICAgIC5jcy1oZWFkZXJfX29mZmNhbnZhcy10b2dnbGUgcGF0aC5zdDAge1xuICAgICAgZmlsbDogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX29mZmNhbnZhcy10b2dnbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDE7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcGFkZGluZzogMC43cmVtIDAgMC43cmVtIDByZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2xvZ28ge1xuICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2xvZ28ge1xuICAgICAgICBmbGV4OiAwIDEgYXV0bztcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgLnBhZ2UtcHJpbnQgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBwYWRkaW5nOiAycmVtIDA7IH1cbiAgICAgIC5wYWdlLXByaW50IC5jcy1oZWFkZXJfX2xvZ286YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMzAwO1xuICAgIHRvcDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW0gIWltcG9ydGFudDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICAgIC5jcy1oZWFkZXJfX3NlYXJjaC0tYWN0aXZlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdG9wOiBpbml0aWFsOyB9IH1cbiAgLmNzLWhlYWRlcl9fdXNlci1uYXYge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXg6IDAgMSAzMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fdXNlci1uYXYge1xuICAgICAgICBmbGV4OiAwIDEgMjUlOyB9IH1cbiAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24ge1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMCAxcmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiA0cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24taWNvbiB7XG4gICAgZmlsbDogIzg4ODtcbiAgICBoZWlnaHQ6IDIuNXJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fYmFjay1idXR0b24taWNvbiB7XG4gICAgICAgIGhlaWdodDogMnJlbTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJGhlYWRlcl9mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4vLyAkaGVhZGVyX2JvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTIwMCAhZGVmYXVsdDtcbiRoZWFkZXJfYm9yZGVyLWJvdHRvbTogdW5zZXQgIWRlZmF1bHQ7XG5cbiRoZWFkZXJfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4vLyBIb3Jpem9udGFsIGFsaWduIG9mIHRoZSBzZWFyY2hib3ggaWYgaXQncyBkaXNwbGF5ZWQgYXMgYSBsYXllciAtIGAkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludGBcbiRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudDogY2VudGVyICFkZWZhdWx0O1xuXG4vLyBJZiB5b3Ugd2FudCB0byBjb3ZlciAnc2VhcmNoJyBpdGVtIGluIGhlYWRlciBieSBzZWFyY2hib3gsIHByb3ZpZGUgcHJvcGVyIG5lZ2F0aXZlIG1hcmdpbiBiYXNlZCBvbiB5b3VyIGRlc2lnblxuLy8gSXQgd29ya3Mgb25seSBpZiAnJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQnIGhhcyB2YWxpZCBicmVha3BvaW50IGFuZCBgJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50YCA9IGZsZXgtZW5kXG4kaGVhZGVyX3NlYXJjaGJveC1tYXJnaW4tdG8tY292ZXItc2VhcmNoLWl0ZW06IC02LjhyZW0gIWRlZmF1bHQ7XG5cbi8vIENoYW5nZSBpbiBldGMvdmlldy54bWwgaWYgbmVjZXNzYXJ5XG4kaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGU6IGRlZXAtZ2V0KCR2aWV3LXhtbCxcbiAgICAgICAgdmFycyxcbiAgICAgICAgTWFnZW50b19UaGVtZSxcbiAgICAgICAgaGVhZGVyLFxuICAgICAgICBtb2JpbGVfaXNfc3RpY2t5KSAhZGVmYXVsdDtcblxuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZTogMCAhZGVmYXVsdDtcbiRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi10YWJsZXQ6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi1tb2JpbGUgIWRlZmF1bHQ7XG5cbi8qKlxuICogVmFyaWFibGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICogSWYgeW91IGhhdmUgbW9yZSBlbGVtZW50cyBvbiB0b3AsIHlvdSBoYXZlIHRvIGluY2x1ZGUgdGhlaXIgaGVpZ2h0LlxuICovXG4kc3RpY2t5LWhlYWRlci1wYWdlLXdyYXBwZXItb2Zmc2V0LW1vYmlsZTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDtcbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtdGFibGV0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0ICFkZWZhdWx0O1xuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1oZWFkZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpZiAoJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlIGFuZCAkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlICE9dHJ1ZSkge1xuXG4gICAgLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbiAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3BlbiAucGFnZS13cmFwcGVyLm5vLXNjcm9sbC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtdGFibGV0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuI3skbnN9Y29udGFpbmVyIHtcbiAgICAgICAgJi0taGVhZGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICAgICAgei1pbmRleDogODAwO1xuICAgICAgICAgICAgICAgIHRvcDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDtcblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIEZpeGVkIHBvc2l0aW9uaW5nIHJlcXVpcmVkIHRvIHdvcmsgd2l0aCBvZmZjYW52YXMgZWxlbWVudHMuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4ubm8tc2Nyb2xsICYge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRoZWFkZXJfc3RpY2t5LXRvcC1wb3NpdGlvbi1tb2JpbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31oZWFkZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgZm9udC1zaXplOiAkaGVhZGVyX2ZvbnQtc2l6ZTtcblxuICAgIEBpZiAoJGhlYWRlcl9pcy1zdGlja3ktb24tbW9iaWxlKSB7XG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LWRlc2t0b3A7XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcbiAgICAgICAgei1pbmRleDogMzAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlcl9iYWNrZ3JvdW5kO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1heC13aWR0aDogMTAwdnc7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkaGVhZGVyX2JvcmRlci1ib3R0b207XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29mZmNhbnZhcy10b2dnbGUge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZsZXg6IDAgMSA0cmVtO1xuICAgICAgICBcbiAgICAgICAgcGF0aC5zdDAge1xuICAgICAgICAgICAgZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLW1lbnUtaXMtcmlnaHQpIHtcbiAgICAgICAgICAgIG9yZGVyOiA0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAxIDE7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMC43cmVtIDAgMC43cmVtIDByZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGhlYWRlcl9iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCBhbmQgJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50ID09J2ZsZXgtZW5kJ1xuXG4gICAgICAgICkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQgPT0nZmxleC1lbmQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkaGVhZGVyX3NlYXJjaGJveC1tYXJnaW4tdG8tY292ZXItc2VhcmNoLWl0ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX191c2VyLW5hdiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIC8vIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXg6IDAgMSAzMCU7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDEgMjUlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXg6IDAgMSAyNSU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFjay1idXR0b24ge1xuICAgICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDRyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgZmlsbDogJGNvbG9yX2JvcmRlci03MDA7XG4gICAgICAgIGhlaWdodDogMi41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGVyLXNlYXJjaCB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlci1zZWFyY2gge1xuICAgICAgd2lkdGg6IDYwJTsgfSB9XG4gIC5jcy1oZWFkZXItc2VhcmNoLS1pbi1vZmZjYW52YXMge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YmVmb3JlLCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDpiZWZvcmUge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgIHRvcDogLTAuNXJlbTtcbiAgICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgIHRvcDogMTAwJTtcbiAgICAgIHotaW5kZXg6IDIwOTsgfVxuICAgIC5hY3RpdmUtcG9wdXAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmJlZm9yZSwgLmFjdGl2ZS1wb3B1cCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBib3JkZXItY29sb3I6ICM3ZTU3YzI7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDIxMDtcbiAgICBtYXJnaW46IDA7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9IH1cbiAgICAuYWpheC1sb2FkaW5nIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpmb2N1cyArIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24gLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLXNlYXJjaCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICBvcGFjaXR5OiAwOyB9XG4gICAgLmFqYXgtbG9hZGluZyAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6Zm9jdXMgKyAuY3MtaGVhZGVyLXNlYXJjaF9fYWN0aW9uIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1sb2FkZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYWN0aW9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB6LWluZGV4OiAyMjA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjAwcHg7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb24ge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb246aG92ZXIge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KSwgb3BhY2l0eSAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1sb2FkZXIge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDEwMCUpOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHdpZHRoOiA1cmVtO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAuN3JlbSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24sIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24gKiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24ge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMC4zcmVtKTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbi0tc2VhcmNoIHtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgaGVpZ2h0OiAycmVtOyB9XG4gICAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLXNlYXJjaCBwYXRoIHtcbiAgICAgICAgZmlsbDogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1sb2FkZXIge1xuICAgICAgc3Ryb2tlOiAjN2U1N2MyO1xuICAgICAgd2lkdGg6IDMuMnJlbTtcbiAgICAgIGhlaWdodDogMy4ycmVtOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgIGxlZnQ6IDAuNXJlbTtcbiAgICByaWdodDogMC41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNXJlbSAtIDEuMjc1ZW0gLSA3cmVtKTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19hdXRvY29tcGxldGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICBib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICB3aWR0aDogNjAlOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kaGVhZGVyLXNlYXJjaF9mb250LXNpemU6IDEuNnJlbSAhZGVmYXVsdDtcbi8vIE9uIGlPUyB0aGUgc2VhcmNoIGlucHV0IGhhcyB0byBiZSBhdCBsZWFzdCAxNnB4IGxhcmdlLFxuLy8gb3RoZXJ3aXNlIGl0IHdpbGwgbmVlZGxlc3NseSB0cmlnZ2VyIHBhZ2Ugem9vbSBvbmNlIHRoZSBpbnB1dCBpcyBmb2N1c2VkLlxuLy8gLSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yOTg5MjYzL2Rpc2FibGUtYXV0by16b29tLWluLWlucHV0LXRleHQtdGFnLXNhZmFyaS1vbi1pcGhvbmVcbi8vIC0gaHR0cHM6Ly93d3cud2FycmVuY2hhbmRsZXIuY29tLzIwMTkvMDQvMDIvc3RvcC1pcGhvbmVzLWZyb20tem9vbWluZy1pbi1vbi1mb3JtLWZpZWxkcy9cbiRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZS1tb2JpbGU6IDEuNnJlbSAhZGVmYXVsdDtcblxuLy8gV2lkdGggb2YgdGhlIHNlYXJjaCBmaWVsZC4gV29ya3Mgb25seSBmb3IgYCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50YCBicmVha3BvaW50LCBpbiBvdGhlciBjYXNlIGl0J3MgYWx3YXlzIDEwMCVcbiRoZWFkZXItc2VhcmNoLXdpZHRoLWFzLWxheWVyOiA2MCUgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2Nsb3NlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDogNXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2J1dHRvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC43cmVtKSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfaWNvbi1zZWFyY2gtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvci1ob3ZlcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZS1kYXJrICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfaWNvbi1sb2FkZXItY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMC4zcmVtKSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfYnV0dG9uLWNvbnRhaW5lci10cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cyAkdHJhbnNpdGlvbi1lYXNpbmdfc2xvd2Rvd24tOTAwLFxuICAgIG9wYWNpdHkgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYm94LXNoYWRvdzogMCA0cHggMTBweCAwIHJnYmEoMCwgMCwgMCwgMC4xNykgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9hdXRvY29tcGxldGUtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4uI3skbnN9aGVhZGVyLXNlYXJjaCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkaGVhZGVyLXNlYXJjaC13aWR0aC1hcy1sYXllcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWluLW9mZmNhbnZhcyB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2ZpZWxkIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgICAgICAgIGxlZnQ6IC0wLjVyZW07XG4gICAgICAgICAgICByaWdodDogLTAuNXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgIHRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvdHRvbTogLTAuNXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMCAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJvdHRvbTogLTFyZW07XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB6LWluZGV4OiAyMDk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAuYWN0aXZlLXBvcHVwICYge1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG5cbiAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXNlYXJjaF9mb250LXNpemUtbW9iaWxlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDIxMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGhlYWRlci1zZWFyY2hfZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICArI3skcm9vdH1fX2FjdGlvbiB7XG4gICAgICAgICAgICAgICAgLmFqYXgtbG9hZGluZyAmIHtcbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1jb250YWluZXItLXNlYXJjaCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHotaW5kZXg6IDIyMDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGhlYWRlci1zZWFyY2hfYnV0dG9uLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICAmX19jbG9zZS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGxpbmVhcjtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRoZWFkZXItc2VhcmNoX2Nsb3NlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tY29udGFpbmVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB0cmFuc2l0aW9uOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tY29udGFpbmVyLXRyYW5zaXRpb247XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxvYWRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAnb25seS1pY29uJ1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAkaGVhZGVyLXNlYXJjaF9idXR0b24td2lkdGg7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB0cmFuc2Zvcm06ICRoZWFkZXItc2VhcmNoX2J1dHRvbi10cmFuc2Zvcm07XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICB0cmFuc2Zvcm06ICRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtO1xuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcblxuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfaWNvbi1zZWFyY2gtY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxvYWRlciB7XG4gICAgICAgICAgICBzdHJva2U6ICRoZWFkZXItc2VhcmNoX2ljb24tbG9hZGVyLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDMuMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMy4ycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fYXV0b2NvbXBsZXRlIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDFyZW0pO1xuICAgICAgICBsZWZ0OiAwLjVyZW07XG4gICAgICAgIHJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlfSAtICN7JGZpZWxkX3NlbGVjdC1saW5lLWhlaWdodH0gLSA3cmVtKTtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6ICRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1ib3gtc2hhZG93O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNjAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDEuNXJlbTtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMTVlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZzogMCAwLjdyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXYge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZsZXg6IDEgMSAyNSU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50IGEge1xuICAgICAgbWF4LXdpZHRoOiAxNjBweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudCBhIHtcbiAgICAgICAgICBtaW4td2lkdGg6IDE0NXB4OyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdiAubWluaWNhcnQtd3JhcHBlciA+IC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtZXZlbmx5O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDByZW07IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2gge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaDpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiB7XG4gICAgd2lkdGg6IDIuNnJlbTtcbiAgICBoZWlnaHQ6IDIuNnJlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdW5zZXQ7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjNyZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjbGlwOiBhdXRvO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjNyZW07IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBwYWRkaW5nOiAwIDAuOXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaW5lLWhlaWdodDogMTAwJTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGhlaWdodDogMS44ZW07XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgdHJhbnNpdGlvbjogdG9wIDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLCBsZWZ0IDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLW1pbmljYXJ0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmY2I3Mzk7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMWEwOTk7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1oYXZlLWl0ZW1zIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tZW1wdHk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnMCc7XG4gICAgICB3aWR0aDogMDsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1jbG9uZWQge1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgei1pbmRleDogMTIwMDtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zaXRpb246IHRvcCAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSwgbGVmdCAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgYW5pbWF0aW9uOiBtb3ZlLXF0eS1iYWRnZSAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgIHRvcDogMC41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtYW5pbWF0aW5nIHtcbiAgICAgICAgICB0b3A6IDEuM3JlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtYW5pbWF0aW5nIHtcbiAgICAgICAgICB0b3A6IDMuNXJlbTsgfSB9XG5cbkBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgODUlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICA5NSUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTAwJSB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItc3BhbiB7XG4gICAgbWluLXdpZHRoOiAxY2g7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdiAubWluaWNhcnQtYW1vdW50LXdyYXBwZXIgPiAubWluaWNhcnQtYW1vdW50LXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWluLXdpZHRoOiA0MHB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXYgLm1pbmljYXJ0LWFtb3VudC13cmFwcGVyID4gLm1pbmljYXJ0LWFtb3VudC10ZXh0IC5taW5pY2FydC1hbW91bnQtdGV4dC0tZW1wdHk6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnMCwwMCB6xYInOyB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHF0eS1jb3VudGVyX2hvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3R5cGUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfc3Bhbi1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG5AaW1wb3J0ICdjb21wb25lbnRzL3F0eS1jb3VudGVyL21peGluJztcblxuJGhlYWRlci11c2VyLW5hdl9pdGVtczogMyAhZGVmYXVsdDsgLy8gbnVtYmVyIG9mIGl0ZW1zIGluIGhlYWRlciB1c2VyIG5hdiAod2l0aG91dCBzZWFyY2ggaXRlbSlcblxuJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aDogMi42cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLWhlaWdodDogJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoICFkZWZhdWx0O1xuXG4vLyBTZXQgdXAgd2hlbiBsYWJlbCBpbiBoZWFkZXIgdXNlciBuYXYgc2hvdWxkIGJlIHZpc2libGVcbi8vIFN1cHBvcnRlZCB2YWx1ZXM6IHRydWUgKGFsd2F5cykgfCBmYWxzZSAobmV2ZXIpIHwgYnJlYWtwb2ludFxuJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlOiAnPj10YWJsZXQnICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXNpemU6IDEuNnJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVuc2V0ICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1tYXJnaW4tdG9wOiAwLjNyZW0gIWRlZmF1bHQ7XG5cbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItY29tcGFyZS1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItd2lzaGxpc3Qtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLW1pbmljYXJ0LXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tc2hvdzogdHJ1ZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXRpbWU6ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSAhZGVmYXVsdDtcblxuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci10b3Atb2Zmc2V0OiAtMC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtbW9iaWxlOiAtMC41cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtdGFibGV0OiAtMXJlbSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItcmlnaHQtb2Zmc2V0LWRlc2t0b3A6IC0xcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9aGVhZGVyLXVzZXItbmF2IHtcbiAgICAkcm9vdDogJjtcblxuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIFxuICAgIGhlaWdodDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICRoZWFkZXItdXNlci1uYXZfaXRlbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09ZmFsc2UpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMSAoMTAwJSAvICgkaGVhZGVyLXVzZXItbmF2X2l0ZW1zICsgMSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gKCRoZWFkZXItdXNlci1uYXZfaXRlbXMgKyAxKSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgZmxleDogMCAwICgxMDAlIC8gJGhlYWRlci11c2VyLW5hdl9pdGVtcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tYWNjb3VudCB7XG4gICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTYwcHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTQ1cHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1pbmljYXJ0LXdyYXBwZXI+LmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDByZW07XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkaGVhZGVyLXVzZXItbmF2X2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGhlYWRlci11c2VyLW5hdl9pY29uLWhlaWdodDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGhlYWRlci11c2VyLW5hdl9sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi10b3A6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtbWFyZ2luLXRvcDtcbiAgICAgICAgY29sb3I6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZSA9PXRydWUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWYgKCRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZSA9PWZhbHNlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTsgLy8gTGFiZWwgaXMgbm90IGRpc3BsYXllZCBvbiBzY3JlZW4gYnV0IGFjY2Vzc2libGUgZm9yIHNjcmVlbiByZWFkZXJzXG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGV9KSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktdmlzaWJsZSgpO1xuXG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1tYXJnaW4tdG9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcXR5LWNvdW50ZXIge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcigpO1xuXG4gICAgICAgIG9wYWNpdHk6IDE7XG5cbiAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi1zaG93KSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXRpbWU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlKCd3aXNobGlzdCcpO1xuXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksXG4gICAgICAgICAgICAgICAgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1pbmljYXJ0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ21pbmljYXJ0Jyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb21wYXJlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ2NvbXBhcmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhdmUtaXRlbXMge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgICAgICAgICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItd2lzaGxpc3Qtc2hvdy1lbXB0eSkge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1taW5pY2FydC1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS1jb21wYXJlIHtcbiAgICAgICAgICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItY29tcGFyZS1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgY29udGVudDogJzAnO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdC1jbG9uZWQge1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgei1pbmRleDogMTIwMDtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSxcbiAgICAgICAgICAgICAgICBsZWZ0IDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3QtYW5pbWF0aW5nIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgICAgICB0b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHRvcDogMS4zcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAzLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgICAgICAgMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDE1JSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgODUlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgICAgIH1cblxuICAgICAgICA5NSUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIDEwMCUge1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHktY291bnRlci1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfc3BhbigpO1xuICAgIH1cblxuICAgIC5taW5pY2FydC1hbW91bnQtd3JhcHBlcj4ubWluaWNhcnQtYW1vdW50LXRleHQge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgLm1pbmljYXJ0LWFtb3VudC10ZXh0LS1lbXB0eSB7XG4gICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgY29udGVudDogJzAsMDAgesWCJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vayc7XG5cbiRxdHktY291bnRlcl9mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2hlaWdodDogMS44ZW0gIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfcGFkZGluZzogMCAwLjlyZW0gIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfYm9yZGVyOiAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2JvcmRlci1yYWRpdXM6IDUwcHggIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0tZGVmYXVsdC1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWRlZmF1bHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kOiAkY29sb3JfeWVsbG93LW9yYW5nZSAhZGVmYXVsdDtcbiRxdHktY291bnRlci0tbWluaWNhcnQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1jb21wYXJlLWJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1jb21wYXJlLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRxdHktY291bnRlci0td2lzaGxpc3QtYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBxdHktY291bnRlcigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRxdHktY291bnRlci0tZGVmYXVsdC1jb2xvcjtcbiAgICBib3JkZXI6ICRxdHktY291bnRlcl9ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJHF0eS1jb3VudGVyX2JvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJHF0eS1jb3VudGVyX3BhZGRpbmc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAkcXR5LWNvdW50ZXJfZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiAkcXR5LWNvdW50ZXJfZm9udC13ZWlnaHQ7XG4gICAgaGVpZ2h0OiAkcXR5LWNvdW50ZXJfaGVpZ2h0O1xuXG4gICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl90eXBlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBAaWYgKCR0eXBlID09J3dpc2hsaXN0Jykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLXdpc2hsaXN0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nbWluaWNhcnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0tbWluaWNhcnQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0tbWluaWNhcnQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdjb21wYXJlJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0tY29tcGFyZS1jb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl90eXBlLWhvb2soJHR5cGUpO1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfc3BhbigkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgbWluLXdpZHRoOiAxY2g7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtaGVhZGxpbmUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNsZWFyOiBib3RoO1xuICBwYWRkaW5nOiAwIDAgMmVtIDA7XG4gIG1hcmdpbjogMCAwIDJlbSAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMCAwIDNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwIDAgNHJlbTsgfSB9XG4gIC5jcy1oZWFkbGluZS0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWhlYWRsaW5lX190aXRsZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMi42ZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkbGluZV9fdGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmJlZm9yZSwgLmNzLWhlYWRsaW5lX190aXRsZTphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNkY2RjZGM7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YmVmb3JlLCAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmJlZm9yZSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDAuNmVtOyB9XG4gICAgLmNzLWhlYWRsaW5lX190aXRsZTphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMC42ZW07IH1cbiAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkbGluZV9fc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGhlYWRsaW5lLWhvb2soKSB7XG59XG5cbkBtaXhpbiBoZWFkbGluZS10aXRsZS1ob29rKCkge1xufVxuXG5AbWl4aW4gaGVhZGxpbmUtc3VidGl0bGUtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGxpbmUvbWl4aW4nO1xuXG4uI3skbnN9aGVhZGxpbmUge1xuICAgIEBpbmNsdWRlIGhlYWRsaW5lKCk7XG5cbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlKCk7XG4gICAgfVxuXG4gICAgJl9fc3VidGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkbGluZS1zdWJ0aXRsZSgpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGxpbmUvaG9vayc7XG5cbiRoZWFkbGluZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWZvbnQtc2l6ZTogMi42ZW0gIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuLy8gU2hvdyBmbGV4aWJsZSBkZWNvcmF0aW9uIGxpbmVzIGF0IHRoZSBzaWRlcyBvZiB0aGUgdGl0bGUuXG4kaGVhZGxpbmVfdGl0bGUtbGluZXMtZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1saW5lcy1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRoZWFkbGluZV9zdWJ0aXRsZS1jb2xvcjogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtZm9udC1zaXplOiAyZW0gIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfc3VidGl0bGUtcGFkZGluZzogMnJlbSAwICFkZWZhdWx0O1xuXG5AbWl4aW4gaGVhZGxpbmUge1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwYWRkaW5nOiAwIDAgMmVtIDA7XG4gICAgbWFyZ2luOiAwIDAgMmVtIDA7XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS1ob29rKCk7XG59XG5cbkBtaXhpbiBoZWFkbGluZS10aXRsZShcbiAgICAkY29sb3I6ICRoZWFkbGluZV90aXRsZS1jb2xvcixcbiAgICAkZm9udC1zaXplOiAkaGVhZGxpbmVfdGl0bGUtZm9udC1zaXplLFxuICAgICRmb250LXdlaWdodDogJGhlYWRsaW5lX3RpdGxlLWZvbnQtd2VpZ2h0LFxuICAgICR0ZXh0LXRyYW5zZm9ybTogJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtLFxuICAgICRsaW5lcy1lbmFibGVkOiAkaGVhZGxpbmVfdGl0bGUtbGluZXMtZW5hYmxlZCxcbiAgICAkbGluZXMtY29sb3I6ICRoZWFkbGluZV90aXRsZS1saW5lcy1jb2xvclxuKSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0ZXh0LXRyYW5zZm9ybTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICB9XG5cbiAgICBAaWYgJGxpbmVzLWVuYWJsZWQge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaW5lcy1jb2xvcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMC42ZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS10aXRsZS1ob29rKCk7XG59XG5cbkBtaXhpbiBoZWFkbGluZS1zdWJ0aXRsZShcbiAgICAkY29sb3I6ICRoZWFkbGluZV9zdWJ0aXRsZS1jb2xvcixcbiAgICAkZm9udC1zaXplOiAkaGVhZGxpbmVfc3VidGl0bGUtZm9udC1zaXplLFxuICAgICRmb250LXdlaWdodDogJGhlYWRsaW5lX3N1YnRpdGxlLWZvbnQtd2VpZ2h0LFxuICAgICR0ZXh0LXRyYW5zZm9ybTogJGhlYWRsaW5lX3N1YnRpdGxlLXRleHQtdHJhbnNmb3JtXG4gICAgXG4pIHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdGV4dC10cmFuc2Zvcm07XG4gICAgbWFyZ2luOiAkaGVhZGxpbmVfc3VidGl0bGUtbWFyZ2luO1xuICAgIHBhZGRpbmc6ICRoZWFkbGluZV9zdWJ0aXRsZS1wYWRkaW5nO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZS1zdWJ0aXRsZS1ob29rKCk7XG59XG4iLCIubGF6eWxvYWQsXG4ubGF6eWxvYWRpbmcsXG4uc3dpcGVyLWxhenkge1xuICAgIC8vIEFkZGVkIHRvIHByZXZlbnQgbGF6eVNpemVzIGZyb20gZGVsYXlpbmcgaW1hZ2VzIGxvYWQuXG4gICAgb3BhY2l0eTogMC4wMDE7XG59XG5cbi5sYXp5bG9hZFtkYXRhLWJnXSB7XG4gICAgb3BhY2l0eTogMTtcbn1cblxuLmxhenlsb2FkZWQsXG4uc3dpcGVyLWxhenktbG9hZGVkIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycztcbn1cblxuLy8gSW1hZ2UgdGVhc2VyIGltYWdlcyBnZXQgMTAwJSBldmVuIGJlZm9yZSBsb2FkaW5nLFxuLy8gd2hpY2ggcmVzdWx0cyBpbiBiaWcgcGxhY2Vob2xkZXIgaW1hZ2UgYW5kIGVtcHR5IHNwYWNlIGJlbG93IHRlYXNlclxuLy8gVG8gcHJldmVudCBiaWcgcGxhY2Vob2xkZXIgaW1hZ2VzIDFweCBoZWlnaHQgaXMgZm9yY2VkIG9uIG5vdCB5ZXN0IGxvYWRlZCBpbWFnZXNcbi5jcy1pbWFnZS10ZWFzZXJfX2ltYWdlLmxhenlsb2FkOm5vdCgubGF6eWxvYWRlZCkge1xuICAgIGhlaWdodDogMXB4O1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZG9uIC5jcy1saW5rcy1ibG9jay1hZGR0byB7XG4gICAgcGFkZGluZy10b3A6IDA7IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvLS1jZW50ZXJlZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0gKyAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0gKyAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzRkMmM5MTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24ge1xuICAgIHdpZHRoOiAxLjM3NWVtO1xuICAgIGhlaWdodDogMS4zNzVlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2ljb24tLXdpc2hsaXN0IHBhdGgge1xuICAgICAgZmlsbDogI2U0MWYxMjsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0tY29tcGFyZSBwYXRoIHtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9fY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjogJGxpbmstY29sb3JfYmFzZS1ob3ZlciAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19pY29uLXdpZHRoOiAxLjM3NWVtICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0OiAxLjM3NWVtICFkZWZhdWx0O1xuXG4uI3skbnN9bGlua3MtYmxvY2stYWRkdG8ge1xuICAgICRyb290OiAmO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgfVxuXG4gICAgLiN7JG5zfXByb2R1Y3QtdGlsZV9fYWRkb24gJiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICYtLWNlbnRlcmVkIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICArICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUtLWxpc3QgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRsaW5rcy1ibG9jay1hZGR0b19ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICB3aWR0aDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNHJlbTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9ncmF5O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX3dpc2hsaXN0LWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1jb21wYXJlIHtcbiAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRsaW5rcy1ibG9jay1hZGR0b19jb21wYXJlLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbG9nbyB7XG4gIGhlaWdodDogMTAwJTsgfVxuICAuY3MtbG9nb19faW1hZ2Uge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1sb2dvX19pbWFnZS0tZGVza3RvcCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1sb2dvX19pbWFnZS0tZGVza3RvcCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIC5jcy1sb2dvX19pbWFnZS0tbW9iaWxlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtbG9nb19faW1hZ2UtLW1vYmlsZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggLmNzLWxvZ29fX2ltYWdlLS1tb2JpbGUge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi4jeyRuc31sb2dvIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTsgLy8gRml4ZXMgaGVpZ2h0OiBhdXRvIGJ1ZyBvbiBjaHJvbWUuXG5cbiAgICAgICAgJi0tZGVza3RvcCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1vYmlsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLm1lc3NhZ2VzIHtcbiAgbWF4LXdpZHRoOiAxMjhyZW07XG4gIG1hcmdpbjogMCBhdXRvOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZSxcbi5tZXNzYWdlIHtcbiAgbWFyZ2luOiAxcmVtIDA7XG4gIHBhZGRpbmc6IDEuMnJlbSAxcmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMS4ycmVtIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiAycmVtIDJyZW07XG4gIHBhZGRpbmctbGVmdDogNC4zcmVtOyB9XG5cbi5tZXNzYWdlLmdsb2JhbC5kZW1vIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDIuNHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZDogcmVkO1xuICBwYWRkaW5nOiAycmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDA7IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1zdWNjZXNzLFxuLm1lc3NhZ2Uuc3VjY2VzcyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNkNWVmZDc7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnXCIpO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLS1ub3RpY2UsXG4ubWVzc2FnZS53YXJuaW5nIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjRjYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24td2FybmluZy5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLWluZm8sXG4ubWVzc2FnZS5pbmZvLFxuLm1lc3NhZ2Uubm90aWNlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZkZjRjYTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24taW5mby5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLWVycm9yLFxuLm1lc3NhZ2UuZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhkMGNlO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1lcnJvci5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX3RleHQsXG4ubWVzc2FnZSBzcGFuIHtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtc2l6ZTogMS40cmVtOyB9XG5cbi5jcy1tZXNzYWdlcy0tc3BhY2UtdG9wIHtcbiAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRtZXNzYWdlc19zdWNjZXNzLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zdWNjZXNzLTIwMCAhZGVmYXVsdDtcbiRtZXNzYWdlc19pbmZvLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl93YXJuaW5nLTIwMCAhZGVmYXVsdDtcbiRtZXNzYWdlc19ub3RpY2UtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3dhcm5pbmctMjAwICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2Vycm9yLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9lcnJvci0yMDAgIWRlZmF1bHQ7XG5cbiRtZXNzYWdlc19zdWNjZXNzLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19pbmZvLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19ub3RpY2UtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2Vycm9yLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcblxuJG1lc3NhZ2VzX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfcGFkZGluZzogMS4ycmVtIDFyZW0gMXJlbSAhZGVmYXVsdDtcbiRtZXNzYWdlc190ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kbWVzc2FnZV9pY29uLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG1lc3NhZ2VfaWNvbi1oZWlnaHQ6ICRtZXNzYWdlX2ljb24td2lkdGggIWRlZmF1bHQ7XG5cbi5tZXNzYWdlcyB7XG4gICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZSxcbi5tZXNzYWdlIHtcbiAgICBtYXJnaW46IDFyZW0gMDtcbiAgICBwYWRkaW5nOiAkbWVzc2FnZXNfcGFkZGluZztcbiAgICBib3JkZXItcmFkaXVzOiAkbWVzc2FnZXNfYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEuMnJlbSBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkbWVzc2FnZV9pY29uLXdpZHRoICRtZXNzYWdlX2ljb24taGVpZ2h0O1xuICAgIHBhZGRpbmctbGVmdDogNC4zcmVtO1xufVxuLm1lc3NhZ2UuZ2xvYmFsLmRlbW97XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBiYWNrZ3JvdW5kOiByZWQ7XG4gICAgcGFkZGluZzogMnJlbSAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tc3VjY2Vzcyxcbi5tZXNzYWdlLnN1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZXNzYWdlc19zdWNjZXNzLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1zdWNjZXNzLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX3N1Y2Nlc3MtYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLW5vdGljZSxcbi5tZXNzYWdlLndhcm5pbmcge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtZXNzYWdlc19ub3RpY2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXdhcm5pbmcuc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfbm90aWNlLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1pbmZvLFxuLm1lc3NhZ2UuaW5mbyxcbi5tZXNzYWdlLm5vdGljZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX2luZm8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWluZm8uc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfaW5mby1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tZXJyb3IsXG4ubWVzc2FnZS5lcnJvciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX2Vycm9yLWJhY2tncm91bmQtY29sb3I7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1lcnJvci5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19lcnJvci1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fdGV4dCxcbi5tZXNzYWdlIHNwYW4ge1xuICAgIGNvbG9yOiAkbWVzc2FnZXNfdGV4dC1jb2xvcjtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzIHtcbiAgICAkcm9vdDogJjtcblxuICAgICYtLXNwYWNlLXRvcCB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi5jcy1taW5pY2FydC1wcm9kdWN0IHtcbiAgZGlzcGxheTogZmxleDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2UtY29udGFpbmVyIHtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2UtY29udGFpbmVyIGltZyB7XG4gICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2ltYWdlIHtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vdmVydmlldyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fZGV0YWlscyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2JyYW5kLXdyYXBwZXIge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2JyYW5kIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZS13cmFwcGVyIHtcbiAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZS13cmFwcGVyIHtcbiAgICAgICAgZmxleC1iYXNpczogNzAlOyB9IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lOnZpc2l0ZWQsIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lOmhvdmVyIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pdGVtLXByaWNpbmcge1xuICAgIG9yZGVyOiAzOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZy0td2l0aC1zcGVjaWFsIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pdGVtLXByaWNpbmctLXdpdGgtc3BlY2lhbCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgICAgICBjb2xvcjogI2E4YjFiNzsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZy0td2l0aC1zcGVjaWFsIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgICAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlIHtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlIHtcbiAgICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZS1sYWJlbCwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtc3VidGl0bGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjNDg0ODQ4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSA+IC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgdmVydGljYWwtYWxpZ246IGluaXRpYWw7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMCwgMC42NiwgMC4zMiwgMC45OSk7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW4tdG9wOiAtMC40cmVtO1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwLS1xdHkge1xuICAgICAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy13cmFwcGVyICsgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtZ3JvdXAtLXF0eSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogMC41cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWxhYmVsIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtbGFiZWw6YWZ0ZXIge1xuICAgICAgY29udGVudDogJzonOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXZhbHVlIHtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdmFsdWVfX3ZhbHVlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdmFsdWVfX3ZhbHVlIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAxLjJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi13cmFwcGVyIHtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdCAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAxIDAgOXJlbTtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiA0cmVtO1xuICAgIG1heC13aWR0aDogNHJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWlucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6OnBsYWNlaG9sZGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b24sIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4xZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbjpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKixcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbjpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICosXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqIHtcbiAgICBmaWxsOiAjNGQyYzkxOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiB7XG4gICAgd2lkdGg6IDEuNnJlbTtcbiAgICBoZWlnaHQ6IDEuNnJlbTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqIHtcbiAgICBmaWxsOiAjN2U1N2MyOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24tbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICM0NTVhNjQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRtaW5pY2FydC1vZmZjYW52YXM6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci0taG92ZXI6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvciAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtYWxpZ25tZW50OiBsZWZ0ICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X25hbWUtcGFkZGluZzogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy12YWx1ZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZzogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9uc190b2dnbGUtZGlzYWJsZTogZmFsc2UgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Rfb3B0aW9ucy10aXRsZS1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplOiAycmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9wcmljZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlOiB0cnVlICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9xdHktZW5hYmxlOiB0cnVlICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDogM3JlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktYnV0dG9uLWljb24tcG9zOiAnb25seS1pY29uJyAhZGVmYXVsdDtcblxuLiN7JG5zfW1pbmljYXJ0LXByb2R1Y3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcblxuICAgICZfX2ltYWdlLWNvbnRhaW5lciB7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fb3ZlcnZpZXcge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xuICAgIH1cblxuICAgICZfX2RldGFpbHMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19icmFuZC13cmFwcGVyIHtcbiAgICAgICAgdGV4dC1hbGlnbjogJG1pbmljYXJ0LXByb2R1Y3RfYnJhbmQtYWxpZ25tZW50O1xuICAgIH1cblxuICAgICZfX2JyYW5kIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLXBhZGRpbmc7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3ZlcnZpZXctZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA3MCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgJjp2aXNpdGVkLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yLWhvdmVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbS1wcmljaW5nIHtcbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICYtLXdpdGgtc3BlY2lhbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlX29sZC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X19wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlX3NwZWNpYWwtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgbm90ICRtaW5pY2FydC1wcm9kdWN0X3Nob3ctc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgLnByaWNlLWluY2x1ZGluZy10YXgsXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ByaWNlLWxhYmVsLFxuICAgICZfX29wdGlvbnMtc3VidGl0bGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICAgICAmW2FyaWEtZXhwYW5kZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy10aXRsZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgd2lkdGg6IDFyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZVxuICAgICAgICAgICAgJHRyYW5zaXRpb24tZWFzaW5nX3Nsb3dkb3duLTkwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTAuNHJlbTtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtZ3JvdXAge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICYtLXF0eSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXdyYXBwZXIgKyAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWNvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnNfdG9nZ2xlLWRpc2FibGUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1sYWJlbCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy1mb250LXNpemU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLXZhbHVlIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtdmFsdWUtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICZfX3ZhbHVlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnNfdG9nZ2xlLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICB9XG5cbiAgICBAaWYgKCRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGUpIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleDogMSAwIDlyZW07XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWlucHV0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIHdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9xdHktZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWJ1dHRvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJl9fcXR5LFxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLFxuICAgICZfX29wdGlvbnMtdGl0bGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyxcbiAgICAgICAgICAgICN7JHJvb3R9X19hY3Rpb24taWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNnJlbTtcbiAgICAgICAgaGVpZ2h0OiAxLjZyZW07XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tc2l6ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1pY29uLFxuICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgKiB7XG4gICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAjeyRyb290fV9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKioqXG4gKiBIaWRlIG5hdGl2ZSBicm93c2VyJ3Mgc2Nyb2xsYmFyXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBwcmV0dGllci1pZ25vcmUgKi9cbi5jcy1taW5pY2FydF9fY2xvc2Uge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICBib3JkZXI6IDA7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC0xLjVyZW07XG4gIHdpZHRoOiA1cmVtO1xuICBoZWlnaHQ6IDVyZW07XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcmlnaHQ6IDAuNXJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlOmZvY3VzLCAuY3MtbWluaWNhcnRfX2Nsb3NlOmFjdGl2ZSwgLmNzLW1pbmljYXJ0X19jbG9zZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0OyB9XG5cbi5jcy1taW5pY2FydF9fY2xvc2UtaWNvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgd2lkdGg6IDJyZW07XG4gICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgbGVmdDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNDg0ODQ4O1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2Utb3V0LCBvcGFjaXR5IDAuMTVzIGVhc2Utb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmhvdmVyOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmhvdmVyOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjk2OTY5OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvblthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoOTBkZWcpICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSByb3RhdGUoLTkwZGVnKSAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50OyB9XG5cbi5jcy1taW5pY2FydF9fY2xvc2UtdGV4dCB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4OyB9XG5cbi5jcy1taW5pY2FydF9fdGl0bGUtd3JhcHBlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMnJlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBmb250LXNpemU6IDIuMXJlbTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7IH1cblxuLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbCB7XG4gIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWw6bm90KC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5KTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAuY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsOm5vdCguY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsLS1lbXB0eSk6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcpJzsgfVxuICAuY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsLS1lbXB0eSAuY291bnQge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsge1xuICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5jcy1taW5pY2FydF9fZWRpdC1saW5rIC5jcy1saW5rX19pY29uIHtcbiAgICBwYWRkaW5nOiAwIDAgMCAxcmVtOyB9XG5cbi5jcy1taW5pY2FydF9fY29udGVudCB7XG4gIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNzLW1pbmljYXJ0X19jb250ZW50IC5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xuICAgIGhlaWdodDogdW5zZXQ7IH1cblxuLmNzLW1pbmljYXJ0X19saXN0IHtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtbWluaWNhcnRfX2xpc3QtLXNjcm9sbCB7XG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDM2cmVtKTtcbiAgICBvdmVyZmxvdy15OiBhdXRvOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fbGlzdC0tc2Nyb2xsIHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQzcmVtKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fbGlzdC0tc2Nyb2xsIHtcbiAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDM4cmVtKTsgfSB9XG5cbi5jcy1taW5pY2FydF9fbGlzdC1pdGVtIHtcbiAgcGFkZGluZzogMS41cmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWFyZ2luLWJvdHRvbTogMDtcbiAgcGFkZGluZzogMS41cmVtIDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0X19saXN0LWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4uY3MtbWluaWNhcnRfX2FjdGlvbnMtd3JhcHBlciB7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTtcbiAgYm94LXNoYWRvdzogMCAtNXB4IDVweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4yNyk7IH1cblxuLmNzLW1pbmljYXJ0X19hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2FjdGlvbnM6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7IH1cblxuLmNzLW1pbmljYXJ0X19lbXB0eSB7XG4gIHBhZGRpbmc6IDJyZW0gMDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5jcy1taW5pY2FydF9fc3VidG90YWwge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuNXJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tYm90dG9tOiAxLjJyZW07IH1cblxuLmNzLW1pbmljYXJ0X19zdWJ0b3RhbC1wcmljZSAucHJpY2Uge1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDIuMXJlbSAhaW1wb3J0YW50OyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpmb2N1cywgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YmVmb3JlIHtcbiAgICB3aWR0aDogMy40ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMCUsICM0ZDJjOTEgMCUsICM0ZDJjOTEgMTAwJSk7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YWZ0ZXIge1xuICAgIHdpZHRoOiAzZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0LCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0W2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OjpiZWZvcmUsIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OjphZnRlciB7XG4gICAgY29udGVudDogbm9uZTsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0LCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydCAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0LXNwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogNGVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0LWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuXG4uY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1OyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgbWFyZ2luOiAzcmVtIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6OmJlZm9yZSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fbWVzc2FnZXMge1xuICBwYWRkaW5nOiAwIDJyZW07IH1cblxuLmNzLW1pbmljYXJ0LW9mZmNhbnZhc19fd3JhcHBlciB7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogcHJldHRpZXItaWdub3JlICovXG4uY3MtbWluaWNhcnRfX2Nhcm91c2VsIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgZWFzZS1pbjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1yZWFkeSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLWNvbnRhaW5lciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IGNhbGMoNDByZW0gKyAycmVtKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNDByZW0gKyAoMiAqIDJyZW0pKSk7XG4gICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tcmVhZHkge1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9XG4gICAgLmRyYXdlci0tdmlzaWJsZSAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIHJpZ2h0OiBjYWxjKDQwcmVtICsgKDIgKiAycmVtKSk7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKDQwcmVtICsgKDQgKiAycmVtKSkpOyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXIgLmNzLWhlYWRsaW5lIHtcbiAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICBwYWRkaW5nOiAycmVtIDAgMDsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICAgIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtc3Bpbm5lciB7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHdpZHRoOiAxMXJlbTtcbiAgICBoZWlnaHQ6IDExcmVtO1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1sb2FkaW5nIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtc3Bpbm5lciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgei1pbmRleDogMTA7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgIC0tZ2FwOiAwLjhyZW07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtIDAuOHJlbSk7XG4gICAgLS1zaXplOiB2YXIoLS1iYXNlLXNpemUpO1xuICAgIC8qKlxuICAgICAqIGNsYXNzLWJhc2VkIGNvbHVtbnMgY29uZmlnIHJlbGF0ZXMgdG8gY2xhc3NuYW1lcywgbGlrZSAnLS1pdGVtcy1pbi1yb3ctNCdcbiAgICAgKiB3aGljaCBhcmUgYWRkZWQgdG8gZWxlbWVudHMsIGRlcGVuZGluZyBvbiB0aGUgQ0MgQ29tcG9uZW50cyBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgIDIgLVxuICAgICAgICAgICAgICAgIDEgKlxuICAgICAgICAgICAgICAgIHZhcigtLWdhcCkgL1xuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgKTtcbiAgICAvKiAgY29udGFpbmVyIHBhZGRpbmcgZml4ICAqL1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgxLjg3NWVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAtLWJhc2Utc2l6ZTogY2FsYygxMjhyZW0gLSAwLjhyZW0pOyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLS11c2Utd2hvbGUtc2NyZWVuIHtcbiAgICAgICAgLS1iYXNlLXNpemU6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAgICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLS11c2Utd2hvbGUtc2NyZWVuIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5O1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAxMjhyZW0pIC8gMik7XG4gICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAxMjhyZW0pIC8gMik7XG4gICAgICAgICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtIDEyOHJlbSkgLyAyKTsgfSB9XG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgYW5kIChtaW4td2lkdGg6IDgxLjg3NWVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAtLWJhc2Utc2l6ZTogMTI4cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLWdhcDogMC44cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMilcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDIpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMyAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAyICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMylcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAzIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAzKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDQgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMyAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDQpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDQgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMyAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDQpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDgxLjgxMjVlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC0tY29udGFpbmVyLXdpZHRoIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoOyB9IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIGdhcDogMDtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgIG92ZXJzY3JvbGwtYmVoYXZpb3ItaW5saW5lOiBjb250YWluO1xuICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluOyB9XG4gICAgICBAc3VwcG9ydHMgKHNjcm9sbC1iZWhhdmlvcjogc21vb3RoKSB7XG4gICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAgICAgICAgIG92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtbm9uZTtcbiAgICAgICAgICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7IH1cbiAgICAgICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZsZXg6IDAgMCB2YXIoLS1zaXplKTtcbiAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbiAgICAgIHNjcm9sbC1zbmFwLWFsaWduOiBzdGFydDtcbiAgICAgIG1pbi13aWR0aDogMDsgfVxuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuXG4ubWluaWNhcnQtd3JhcHBlciAudWktZGlhbG9nIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuIiwiLyoqKlxuICogSGlkZSBuYXRpdmUgYnJvd3NlcidzIHNjcm9sbGJhclxuICovXG5cbkBtaXhpbiBoaWRlLXNjcm9sbGJhciB7XG4gICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lO1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTtcblxuICAgICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBlbmFibGVkXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfb2ZmY2FudmFzLXdyYXBwZXI6IDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLXBhZGRpbmc6IDEuNXJlbSAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy10aXRsZS1wYWRkaW5nOiAxcmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWl0ZW0tcGFkZGluZzogMS41cmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yOiBmYWxzZSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtb2Zmc2V0LWlwaG9uZS1maXg6IDQwcmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfX2Nsb3NlLWluY2x1ZGUtcHNldWRvaWNvbjogdHJ1ZSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtcHNldWRvaWNvbi10eXBlOiAncGx1cycgIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1saW5lLXdpZHRoOiAwLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nOiAycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbjogJ2NlbnRlcicgIWRlZmF1bHQ7IC8vIERlZmF1bHQgdmFsdWU6IGNlbnRlci4gUG9zc2libGUgdmFsdWVzOiBjZW50ZXIgLyB0b3AgLyBib3R0b21cbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0OiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbjogJ2NlbnRlcicgIWRlZmF1bHQ7IC8vIERlZmF1bHQgdmFsdWU6IGNlbnRlci4gUG9zc2libGUgdmFsdWVzOiBjZW50ZXIgLyBsZWZ0IC8gcmlnaHRcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZzogM3JlbSAhZGVmYXVsdDtcbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSBlYXNlLWluICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU6IDExcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zaG93LWJyZWFrcG9pbnQ6ICc+PWxhcHRvcCcgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9wYWRkaW5nOiAycmVtIDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jbG9zZS1idXR0b24tY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2l0ZW0tcGFkZGluZzogMS41cmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJG1pbmljYXJ0X2JveC1zaGFkb3c6IDAgMCAyMXB4IDAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMjcpICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfd2lkdGg6IDQwcmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfY29udGVudC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYWN0aW9uLXdyYXBwZXJfYm94LXNoYWRvdzogMCAtNXB4IDVweCAtNXB4XG4gICAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMjcpICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBwcm9kdWN0c19jYXJvdXNlbCxcbiAgICBlbmFibGVkXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX2l0ZW0tcGVyLXJvdzogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgcHJvZHVjdHNfY2Fyb3VzZWwsXG4gICAganMsXG4gICAgY29sdW1uc0NvbmZpZ1xuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X21lc3NhZ2UtdHlwZTogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9tZXNzYWdlc1xuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9tb2JpbGUtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX2Rlc2t0b3AtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX25leHQtc2xpZGUtdmlzaWJsZTogMC44cmVtICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4uI3skbnN9bWluaWNhcnQge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fY2xvc2Uge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICBoZWlnaHQ6IDVyZW07XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICBAaWYgKCRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfX2Nsb3NlLXBzZXVkb2ljb24tdHlwZSxcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRtaW5pY2FydF9fY2xvc2UtY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkbWluaWNhcnRfX2Nsb3NlLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICR3aWR0aDogJG1pbmljYXJ0X19jbG9zZS13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGhcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAmX19jbG9zZS10ZXh0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X3BhZGRpbmc7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnRfaXRlbS1oZWFkbGluZS1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbTtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbWluaWNhcnRfaXRlbS1ib3JkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtcy10b3RhbCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoI3skcm9vdH1fX2l0ZW1zLXRvdGFsLS1lbXB0eSkge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgLmNvdW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTUwMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lZGl0LWxpbmsge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgIC4jeyRuc31saW5rX19pY29uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAubG9hZC5pbmRpY2F0b3I6YmVmb3JlIHtcbiAgICAgICAgICAgIGhlaWdodDogdW5zZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcblxuICAgICAgICAmLS1zY3JvbGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA0M3JlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzhyZW0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1mcmVlLXNoaXBwaW5nLWluZGljYXRvciB7XG4gICAgICAgICAgICAgICAgLyogaVBob25lIFggYW5kIFhzIE1heCAqL1xuICAgICAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlblxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS13aWR0aDogMzc1cHgpXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogODEycHgpXG4gICAgICAgICAgICAgICAgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMylcbiAgICAgICAgICAgICAgICBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbWluaWNhcnRfb2ZmY2FudmFzLW9mZnNldC1pcGhvbmUtZml4fSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvKiBpUGhvbmUgWFIgKi9cbiAgICAgICAgICAgICAgICAvKiBwcmV0dGllci1pZ25vcmUgKi9cbiAgICAgICAgICAgICAgICBAbWVkaWEgb25seSBzY3JlZW5cbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2Utd2lkdGg6IDQxNHB4KVxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS1oZWlnaHQ6IDg5NnB4KVxuICAgICAgICAgICAgICAgIGFuZCAoLXdlYmtpdC1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpXG4gICAgICAgICAgICAgICAgYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtICN7JG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeH0pICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X2l0ZW0tcGFkZGluZztcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1pbmljYXJ0X2l0ZW0tYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zLXdyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZztcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3N1YnRvdGFsIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS4ycmVtO1xuICAgIH1cblxuICAgICZfX3N1YnRvdGFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbSAhaW1wb3J0YW50O1xuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjFyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1jaGVja291dCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLXZpZXdjYXJ0IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tY2Fyb3VzZWwge1xuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXNwYWNpbmc7XG4gICAgICAgICAgICBtYXJnaW46ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLWJvcmRlcjtcblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uID09ICdsZWZ0JyB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1wb3NpdGlvbiA9PSAncmlnaHQnIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDAgMnJlbTtcblxuICAgICAgICBAaWYgKCRtaW5pY2FydF9tZXNzYWdlLXR5cGUgPT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X21lc3NhZ2UtdHlwZSA9PSAnZml4ZWQnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDRyZW07XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogOTk5OTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtb2ZmY2FudmFzX193cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy13cmFwcGVyO1xuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgYW5kICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWwge1xuICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAkcm9vdDogJjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB6LWluZGV4OiAxMDtcblxuICAgICAgICAmLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAjeyRyb290fS13cmFwcGVyLS1yZWFkeSAmIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi13cmFwcGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IGNhbGMoI3skbWluaWNhcnRfd2lkdGh9ICsgI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMHZ3IC0gKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSkpO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMjByZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICYtLWxvYWRpbmcsXG4gICAgICAgICAgICAmLS1yZWFkeSB7XG4gICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGF0LXJvb3QgLmRyYXdlci0tdmlzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5taW5pY2FydC1vZmZjYW52YXMtb3BlbiAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAgICAgJyN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zaG93LWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKCN7JG1pbmljYXJ0X3dpZHRofSArICgyICogI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmd9KSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDQgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uID09ICd0b3AnIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24gPT0gJ2JvdHRvbScge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24tb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwJSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAwIDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31oZWFkbGluZV9fdGl0bGUge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtc3Bpbm5lciB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3Bpbm5lci1zaXplO1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nIDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC10cmFuc2l0aW9uO1xuXG4gICAgICAgICAgICAjeyRyb290fS13cmFwcGVyLS1sb2FkaW5nICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9cHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAgICAgJHJvb3Q6ICY7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHNsaWRlcihcbiAgICAgICAgICAgICAgICAkY29sdW1ucy1jb25maWc6ICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfaXRlbS1wZXItcm93LFxuICAgICAgICAgICAgICAgICRtLWdhcDogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9tb2JpbGUtZ2FwLFxuICAgICAgICAgICAgICAgICRkLWdhcDogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9kZXNrdG9wLWdhcCxcbiAgICAgICAgICAgICAgICAkbmV4dC12aXNpYmxlOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX25leHQtc2xpZGUtdmlzaWJsZSxcbiAgICAgICAgICAgICAgICAkcm9vdDogJHJvb3RcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC4jeyRuc31taW5pY2FydF9fY2Fyb3VzZWwge1xuICAgICAgICAmLXNwaW5uZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICRtaW5pY2FydC1vZmZjYW52YXMgIT0gdHJ1ZSB7XG4gICAgLm1pbmljYXJ0LXdyYXBwZXIge1xuICAgICAgICAudWktZGlhbG9nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHJpZ2h0OiAwLjVyZW07XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5OTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcCA+ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgMTAwJSAtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcH0gLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYmxvY2stbWluaWNhcnQge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkbWluaWNhcnRfYm94LXNoYWRvdztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAzMXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMCAycmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfd2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgdG9wOiAtMC44cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDQuNXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IEBlbHNlIHtcbiAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy9zdHJpcC11bml0JztcbkBpbXBvcnQgJ3V0aWxzL2hpZGUtc2Nyb2xsYmFyJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9ob29rcyc7XG5cbi8vIENhbGN1bGF0ZSBjb250YWluZXIgYnJlYWtwb2ludCArIDIgKiBlZGdlIGd1dHRlciBhbmQgdHJhbnNmb3JtIHRvICdlbScgdW5pdCBmb3IgbWVkaWEgcXVlcnlcbiRjb250YWluZXJCcmVha3BvaW50UHg6IChcbiAgICAgICAgc3RyaXAtdW5pdCgkcGFnZV9tYXgtd2lkdGgpICsgMiAqIHN0cmlwLXVuaXQoJHBhZ2VfZWRnZS1ndXR0ZXIpXG4gICAgKSAqIDEwO1xuJGNvbnRhaW5lckJyZWFrcG9pbnRFbTogJGNvbnRhaW5lckJyZWFrcG9pbnRQeCAvIDE2ICogMWVtO1xuJHRvQ29udGFpbmVyQnJlYWtwb2ludEVtOiAoJGNvbnRhaW5lckJyZWFrcG9pbnRQeCAtIDEpIC8gMTYgKiAxZW07XG5cbkBtaXhpbiBpdC1ncmlkKCRtLWdhcDogMC44cmVtLCAkZC1nYXA6IDAuOHJlbSkge1xuICAgICRyb290OiAmO1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG5cbiAgICAmOm5vdCguI3skbnN9Y29udGFpbmVyLS11c2Utd2hvbGUtd2lkdGgpICYge1xuICAgICAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgICAgICAjeyRyb290fV9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NsaWRlcyB7XG4gICAgICAgIC0tY29sdW1uczogMTtcblxuICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICBnYXA6IHZhcigtLWdhcCk7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KHZhcigtLWNvbHVtbnMpLCBtaW5tYXgoMCwgMWZyKSk7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAjeyRyb290fS0taXRlbXMtaW4tcm93LW1vYmlsZS0yICYge1xuICAgICAgICAgICAgLS1jb2x1bW5zOiAyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IGNhbGModmFyKC0tZ2FwKSAvIDIgKyAyKTtcblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAwLjRyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG91dGxpbmUtb2Zmc2V0IDAuMjVzIGVhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19waWN0dXJlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIC0tIHN0eWxlbGludCBkb2Vzbid0IGtub3cgdGhpcyBtZWRpYSBxdWVyeSB5ZXQuICovXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLWRhdGE6IHJlZHVjZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIC0tZ2FwOiAjeyRkLWdhcH07XG5cbiAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA4IHtcbiAgICAgICAgICAgICYtLWl0ZW1zLWluLXJvdy0jeyRpfSAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgICAgICAtLWNvbHVtbnM6ICN7JGl9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICYtLWl0ZW1zLWluLXJvdy00Om5vdCgjeyRyb290fS0taWNvbikgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAtLWNvbHVtbnM6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBpdC1ncmlkLWhvb2soJG0tZ2FwLCAkZC1nYXApO1xufVxuXG5AbWl4aW4gc2xpZGVyLWVzc2VudGlhbHMoJHJvb3Q6ICRyb290KSB7XG4gICAgI3skcm9vdH1fX3NsaWRlcy13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIDEwMCU7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IHZhcigtLWdhcCkgMDtcbiAgICAgICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGNvbnRhaW47XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcblxuICAgICAgICBAc3VwcG9ydHMgKHNjcm9sbC1iZWhhdmlvcjogc21vb3RoKSB7XG4gICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhpZGUtc2Nyb2xsYmFyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9fc2xpZGUge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBmbGV4OiAwIDAgdmFyKC0tc2l6ZSk7XG4gICAgICAgIG1hcmdpbi1yaWdodDogdmFyKC0tZ2FwKTtcbiAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgICBtaW4td2lkdGg6IDA7XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2ltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWVzc2VudGlhbHMtaG9vaygkcm9vdCk7XG59XG5cbkBtaXhpbiBzbGlkZXIoXG4gICAgJGNvbHVtbnMtY29uZmlnOiAnY2xhc3MtYmFzZWQnLFxuICAgICRtLWdhcDogMC44cmVtLFxuICAgICRkLWdhcDogMC44cmVtLFxuICAgICRuZXh0LXZpc2libGU6IDMuMnJlbSxcbiAgICAkcm9vdDogJyYnXG4pIHtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAjeyRuZXh0LXZpc2libGV9KTtcblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAjeyRjb250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiBjYWxjKCN7JHBhZ2VfbWF4LXdpZHRofSAtICN7JG5leHQtdmlzaWJsZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgJiN7JHJvb3R9LS11c2Utd2hvbGUtc2NyZWVuOm5vdCgjeyRyb290fS0tZnVsbC13aWR0aC1zbGlkZXIpIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiAxMDAlO1xuXG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggcHJveGltaXR5O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLW1hcmdpbi1sZWZ0OiBjYWxjKCgxMDB2dyAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtbWFyZ2luLXJpZ2h0OiBjYWxjKCgxMDB2dyAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIGFuZCAobWluLXdpZHRoOiAjeyRjb250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgIC0tYmFzZS1zaXplOiAjeyRwYWdlX21heC13aWR0aH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIC0tZ2FwOiAjeyRkLWdhcH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgICAqIHdoaWNoIGFyZSBhZGRlZCB0byBlbGVtZW50cywgZGVwZW5kaW5nIG9uIHRoZSBDQyBDb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgQGlmICRjb2x1bW5zLWNvbmZpZyA9PSAnY2xhc3MtYmFzZWQnIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgQGZvciAkaSBmcm9tIDIgdGhyb3VnaCA4IHtcbiAgICAgICAgICAgICAgICAmI3skcm9vdH0tLWl0ZW1zLWluLXJvdy0jeyRpfSB7XG4gICAgICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JGl9IC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCN7JGkgLSAxfSAqIHZhcigtLWdhcCkpIC8gI3skaX0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAmI3skcm9vdH0tLWl0ZW1zLWluLXJvdy00Om5vdCgjeyRyb290fS0taWNvbikge1xuICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyh2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgxICogdmFyKC0tZ2FwKSAvIDIpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAkYmFzZUl0ZW1zUGVyUm93OiBtYXAtZ2V0KCRjb2x1bW5zLWNvbmZpZywgJ3Bob25lJyk7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgL1xuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvd30gLVxuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvdyAtXG4gICAgICAgICAgICAgICAgMX0gKlxuICAgICAgICAgICAgICAgIHZhcigtLWdhcCkgL1xuICAgICAgICAgICAgICAgICN7JGJhc2VJdGVtc1BlclJvd31cbiAgICAgICAgKTtcblxuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCwgJGl0ZW1zUGVyUm93IGluICRjb2x1bW5zLWNvbmZpZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAjeyRpdGVtc1BlclJvd30gLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skaXRlbXNQZXJSb3cgLSAxfSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvICN7JGl0ZW1zUGVyUm93fSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyogIGNvbnRhaW5lciBwYWRkaW5nIGZpeCAgKi9cbiAgICBAbWVkaWEgKG1heC13aWR0aDogI3skdG9Db250YWluZXJCcmVha3BvaW50RW19KSB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItZXNzZW50aWFscygkcm9vdCk7XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItaG9vaygkY29sdW1ucy1jb25maWcsICRtLWdhcCwgJGQtZ2FwLCAkbmV4dC12aXNpYmxlLCAkcm9vdCk7XG59XG5cbkBtaXhpbiBzbGlkZXItbW9iaWxlKCRtLWdhcDogMC44cmVtLCAkbmV4dC12aXNpYmxlOiAzLjJyZW0sICRyb290OiAnJicpIHtcbiAgICAtLWdhcDogI3skbS1nYXB9O1xuICAgIC0tYmFzZS1zaXplOiBjYWxjKDEwMCUgLSAjeyRuZXh0LXZpc2libGV9KTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG5cbiAgICAmI3skcm9vdH0tLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skcGFnZV9lZGdlLWd1dHRlcn07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLSN7JHBhZ2VfZWRnZS1ndXR0ZXJ9O1xuXG4gICAgICAgICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1lc3NlbnRpYWxzKCRyb290KTtcblxuICAgIEBpbmNsdWRlIHNsaWRlci1tb2JpbGUtaG9vaygkbS1nYXAsICRuZXh0LXZpc2libGUsICRyb290KTtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG4ubW9kYWwtc2xpZGUuY29uZmlybSAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1wb3B1cC5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwLFxuLm1vZGFsLWN1c3RvbS5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgbWF4LXdpZHRoOiA1MHJlbTsgfVxuXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgYm9yZGVyLXJhZGl1czogMDtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtY29udGVudCxcbi5tb2RhbC1wb3B1cCAubW9kYWwtY29udGVudCxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWNvbnRlbnQge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIGZvbnQtc2l6ZTogMS40cmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtaGVhZGVyLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1oZWFkZXIsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1oZWFkZXIge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLm1vZGFsLXNsaWRlIC5hY3Rpb24tY2xvc2UsXG4ubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZSxcbi5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMDtcbiAgdG9wOiAwO1xuICBtYXJnaW46IDEuNXJlbTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nsb3NlLnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTtcbiAgd2lkdGg6IDNyZW07XG4gIGhlaWdodDogM3JlbTtcbiAgei1pbmRleDogMTsgfVxuICAubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSBzcGFuLFxuICAubW9kYWwtcG9wdXAgLmFjdGlvbi1jbG9zZSBzcGFuLFxuICAubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2Ugc3BhbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZTpiZWZvcmUsXG4gIC5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlOmJlZm9yZSxcbiAgLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuXG4ubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3Rlcixcbi5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyLFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIHtcbiAgcGFkZGluZzogMnJlbTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5ICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5ICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5ICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtICFpbXBvcnRhbnQ7IH0gfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICoge1xuICAgICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZFtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuXG4ubW9kYWwtc2xpZGUgLm1vZGFsLXRpdGxlLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC10aXRsZSxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gIHBhZGRpbmc6IDJyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtYXJnaW46IDA7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLm1vZGFsLXBvcHVwLm1vZGFsLXNsaWRlIC5tb2RhbC1pbm5lci13cmFwW2NsYXNzXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHtcbiAgICB3aWR0aDogMTAwJTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG5cbi5tb2RhbC1wb3B1cCB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB0b3VjaC1hY3Rpb246IG5vbmU7IH1cblxuLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IC5tb2RhbC1wb3B1cDpub3QoLl9pbm5lci1zY3JvbGwpIHtcbiAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IC5tb2RhbC1zbGlkZSB7XG4gICAgd2lkdGg6IDgwJTtcbiAgICBtYXgtd2lkdGg6IDY1cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7IH0gfVxuXG4ubW9kYWxzLW92ZXJsYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNyk7IH1cblxuYm9keS5faGFzLW1vZGFsLm1vZGFsLW5vLXNjcm9sbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBvdmVyZmxvdzogaW5pdGlhbDsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG1vZGFsX3RpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJG1vZGFsX2luc2lkZS1ib3JkZXJzOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbW9kYWxfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJG1vZGFsX3NsaWRlLW1vYmlsZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbW9kYWxfYm94LXNoYWRvdzogJGJveC1zaGFkb3dfYmFzZSAhZGVmYXVsdDtcbiRtb2RhbF9ib3JkZXItcmFkaXVzOiAwICFkZWZhdWx0O1xuJG1vZGFsLWJvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRtb2RhbF90ZXh0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9wYXJhZ3JhcGggIWRlZmF1bHQ7XG4kbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuLyogc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eSAqL1xuXG4ubW9kYWwtc2xpZGUsXG4ubW9kYWwtcG9wdXAsXG4ubW9kYWwtY3VzdG9tIHtcbiAgICAmLmNvbmZpcm0ge1xuICAgICAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDUwcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLWlubmVyLXdyYXAge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbW9kYWxfYmFja2dyb3VuZDtcbiAgICAgICAgYm94LXNoYWRvdzogJG1vZGFsX2JveC1zaGFkb3c7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRtb2RhbF9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXI6ICRtb2RhbC1ib3JkZXI7XG4gICAgfVxuXG4gICAgLm1vZGFsLWNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogJG1vZGFsX3RleHQtZm9udC1zaXplO1xuICAgIH1cblxuICAgIC5tb2RhbC1oZWFkZXIge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmFjdGlvbi1jbG9zZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBtYXJnaW46IDEuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnJyk7XG4gICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxcmVtIDFyZW07XG4gICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtZm9vdGVyIHtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLXRvcDogJG1vZGFsX2luc2lkZS1ib3JkZXJzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgICAucHJpbWFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgICAgLnNlY29uZGFyeSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU3R5bGUgZm9yIGNoZWNrb3V0IG1vZGFscyBoYXZlIHZlcnkgaGlnaCBzcGVjaWZpY2l0eSBpbiBtYWdlbnRvXG4gICAgICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTJyZW07XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBidXR0b246b25seS1jaGlsZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uLXNwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfcHJpbWFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm1vZGFsLXRpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkbW9kYWxfdGl0bGUtZm9udC1zaXplKTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJG1vZGFsX2luc2lkZS1ib3JkZXJzO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4ubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUge1xuICAgIC5tb2RhbC1pbm5lci13cmFwW2NsYXNzXSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1vZGFsX3NsaWRlLW1vYmlsZS1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubW9kYWwtc2xpZGUge1xuICAgIC5tb2RhbC1mb290ZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXByaW1hcnksXG4gICAgICAgIC5wcmltYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRml4IGJ1ZyB3aXRoIG5vIGNsb3Npbmcgb3ZlcmxheSBvbiBtb2JpbGUuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbWFnZW50by9tYWdlbnRvMi9pc3N1ZXMvNzM5OSBmb3IgZGV0YWlsc1xuLm1vZGFsLXBvcHVwIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0b3VjaC1hY3Rpb246IG5vbmU7XG59XG5cbi5wYWdlLWxheW91dC1jaGVja291dCB7XG4gICAgLm1vZGFsLXBvcHVwOm5vdCguX2lubmVyLXNjcm9sbCkge1xuICAgICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG5cbiAgICAubW9kYWwtc2xpZGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogODAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2NXJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLm1vZGFscy1vdmVybGF5IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWxzX292ZXJsYXktYmFja2dyb3VuZDtcbn1cblxuYm9keS5faGFzLW1vZGFsLm1vZGFsLW5vLXNjcm9sbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIG92ZXJmbG93OiBpbml0aWFsO1xufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKioqXG4gKiBVc2luZyBwc3VlZG8gZWxlbWVudHMgdG8gbWFpbnRhaW4gYW4gZWxlbWVudHMgYXNwZWN0IHJhdGlvLCBldmVuIGFzIGl0IHNjYWxlc1xuICogSXQncyB1c2luZyBvbmx5IGZvciBJRTExIGFuZCBFZGdlICh2ZXJzaW9uIHdoaWNoIGRvZXNuJ3Qgc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQpIGJyb3dzZXJzXG4gKiBGb3IgYnJvd3NlcnMgd2hpY2ggc3VwcG9ydCBuYXRpdmUgQ1NTIGdyaWQsIHdlIGFyZSB1c2luZyBtaXhpbnMgY29udGFpbiBgcmVzZXRgIGluIG1peGluIG5hbWVcbiAqIHRvIG92ZXJyaWRlIGRlZmF1bHQgbWl4aW5zIChwcm9ncmVzc2l2ZSBlbmhhbmNlbWVudClcbiAqIGh0dHBzOi8vY3NzLXRyaWNrcy5jb20vc25pcHBldHMvc2Fzcy9tYWludGFpbi1hc3BlY3QtcmF0aW8tbWl4aW4vXG4gKiBAcGFyYW0ge251bWJlcn0gJHdpZHRoOiB3aWR0aCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7bnVtYmVyfSAkaGVpZ2h0OiBoZWlnaHQgb2YgdGhlIGVsZW1lbnQ7XG4gKiBAcGFyYW0ge3N0cmluZ30gJGNvbnRlbnRDbGFzczogY2xhc3Mgb2YgdGhlIGRpcmVjdCBjaGlsZCBlbGVtZW50IHRvIGJlIHBvc2l0aW9uZWQgYWJzb2x1dGVseTtcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gJGF1dG9wb3NpdGlvbjogdGVsbHMgaWYgaXRlbSBzaGFsbCB0YWtlIDEwMCUgb2YgcGFyZW50IHNpemUgb3IgaWYgaXQgY2FuIGJlIHdpZGVyL2hpZ2hlciBpZiBuZWVkZWQ7XG4gKi9cblxuQGZ1bmN0aW9uIGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpIHtcbiAgICBAcmV0dXJuICgkaGVpZ2h0IC8gJHdpZHRoKSAqIDEwMCU7XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8oJHdpZHRoLCAkaGVpZ2h0LCAkY2hpbGRDbGFzcywgJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZy10b3A6IGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpO1xuICAgIH1cblxuICAgIC4jeyRjaGlsZENsYXNzfSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuXG4gICAgICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLXJlc2V0KCRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIC4jeyRjaGlsZENsYXNzfSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgYm90dG9tOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLWNoaWxkLXBvc2l0aW9uKCRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG5cbiAgICBAaWYgJGF1dG9wb3NpdGlvbiB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IGdldC1hc3BlY3QtcmF0aW8tcGFkZGluZy12YWx1ZSgkd2lkdGgsICRoZWlnaHQpO1xuICAgIH1cbn1cblxuQG1peGluIGFzcGVjdC1yYXRpby1vdmVycmlkZS1yZXNldCgpIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvYXNwZWN0LXJhdGlvJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRuYXZpZ2F0aW9uX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbHZsLTEtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9sdmwtMi1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb25fb3ZlcmxheS1zaG93OiBmYWxzZSAhZGVmYXVsdDtcbi8vIEJveCBzaGFkb3cgZWZmZWN0IGFwcGxpZWQgZm9yIHRoZSBmbHlvdXQuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYm94LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgkY29sb3JfYmFja2dyb3VuZC04MDAsIDAuMTUpICFkZWZhdWx0O1xuLy8gRmx5b3V0IGJhY2tncm91bmQgY29sb3IuXG4kbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuLy8gQ29sb3Igb2YgdGhlIGxpbmsuXG4kbmF2aWdhdGlvbl9saW5rLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4vLyBDb2xvciBvZiB0aGUgbGluayBpbiB0aGUgZmx5b3V0IG9uIGhvdmVyLlxuJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuLy8gQm90dG9tIGJvcmRlciBjb25maWd1cmF0aW9uIGZvciBmbHlvdXQgY2F0ZWdvcnkgbGlua3MuXG4kbmF2aWdhdGlvbl9saW5rLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGlzdHMtbWFyay1wYXJlbnQtb24taG92ZXI6IHRydWUgIWRlZmF1bHQ7XG5cbiRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aCAhZGVmYXVsdDtcbi8vIHdvcmtzIG9ubHkgZm9yIHN2ZyBpY29uc1xuJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yOiAkY29sb3JfdGV4dC02MDAgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31uYXZpZ2F0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9mb250LXNpemU7XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAuY3MtbmF2aWdhdGlvbl9faXRlbS0tbWFpbntcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg2KXtcbiAgICAgICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi8uLi8uLi90aGVtZS1wYXBpbGFydC9wbF9QTC9pbWFnZXMvaWNvbnMvcGRmLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY3MtbmF2aWdhdGlvbl9faXRlbS0tbWFpbntcbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCg3KXtcbiAgICAgICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjN0I5NjQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybCgnLi4vLi4vLi4vdGhlbWUtcGFwaWxhcnQvcGxfUEwvaW1hZ2VzL2ljb25zL3BkZi1ncmVlbi5zdmcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzdCOTY0MztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sdW1uczogYXV0byAxO1xuICAgICAgICAgICAgY29sdW1uLWdhcDogMDtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWwge1xuICAgICAgICAgICAgJl8xIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICAgICAgICAgICAgY29sdW1uLWdhcDogMDtcbiAgICAgICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl8yIHtcbiAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJisuI3skbnN9bmF2aWdhdGlvbl9fZXh0cmFzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuIHtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJG5hdmlnYXRpb25fZm9udC1zaXplO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpZiAoJG5hdmlnYXRpb25fbGlzdHMtbWFyay1wYXJlbnQtb24taG92ZXIpIHtcblxuICAgICAgICAgICAgJi0tYWN0aXZlLFxuICAgICAgICAgICAgJi5hY3RpdmUsXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAmOm5vdChbZGF0YS1jYXRlZ29yeS1pZGVudGlmaWVyPSdhbGwtY2F0ZWdvcmllcyddKSB7XG4gICAgICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICYtLW1haW4ge1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAmI3skcm9vdH1fX2l0ZW0tLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgICAgICY6bm90KFtkYXRhLWNhdGVnb3J5LWlkZW50aWZpZXI9J2FsbC1jYXRlZ29yaWVzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZlbTtcblxuICAgICAgICAgICAgJjpmaXJzdC1vZi10eXBlIHtcbiAgICAgICAgICAgICAgICA+I3skcm9vdH1fX2xpbms6bm90KCN7JHJvb3R9X19saW5rLS13aXRoLWljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIC8vIFByZXZlbnRzIGVsZW1lbnQgYnJlYWtpbmcgYmVjYXVzZSBvZiBjb2x1bW4gbGF5b3V0LlxuICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgLyogVGhlb3JldGljYWxseSBGRiAyMCsgKi9cbiAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgICAgICAgLyogSUUgMTEgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWwge1xuICAgICAgICAgICAgJl8xIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgIC8vIFByZXZlbnRzIGVsZW1lbnQgYnJlYWtpbmcgYmVjYXVzZSBvZiBjb2x1bW4gbGF5b3V0LlxuICAgICAgICAgICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgICAgICAgICAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgICAgICAgICAgIGJyZWFrLWluc2lkZTogYXZvaWQtY29sdW1uO1xuICAgICAgICAgICAgICAgIC8qIElFIDExICovXG4gICAgICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gNHJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstaWNvbi0tc3ZnIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYWluIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS42ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRuYXZpZ2F0aW9uX2xpbmstYm9yZGVyO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9sdmwtMS1mb250LXNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfMiB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9sdmwtMi1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXRoLWljb24ge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aCArIDFyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24td3JhcHBlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLWhlaWdodDtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjhlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICBoZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoO1xuICAgICAgICAgICAgd2lkdGg6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLWhlaWdodDtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2xpbmstLWNhdGVnb3J5ICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXN2ZyB7XG4gICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXByb2R1Y3RzLXF0eSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL1N0eWxpbmcgZm9yIGNhdGVnb3JpZXMgbGV2ZWxfMSB3aXRoIG5vIHN1YmNhdGVnb3JpZXNcbiAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbj4jeyRyb290fV9fbGluay0tbGV2ZWxfMSB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICBmb250LXNpemU6IDEuMTJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcGFkZGluZzogMC45ZW0gMS41ZW07XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgfVxuXG4gICAgJl9fZmx5b3V0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbmF2aWdhdGlvbl9mbHlvdXQtYmFja2dyb3VuZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB6LWluZGV4OiAxMDAxOyAvLyBNYWtlIHN1cmUgZmx5b3V0cyBjb3ZlciBnYWxsZXJ5IG5hdi5cbiAgICAgICAgYm94LXNoYWRvdzogJG5hdmlnYXRpb25fZmx5b3V0LWJveC1zaGFkb3c7XG4gICAgICAgIG1hcmdpbi10b3A6IC0xcHg7XG5cbiAgICAgICAgJi0tdmlzaWJsZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgQHN1cHBvcnRzICgtbXMtaW1lLWFsaWduOiBhdXRvKSB7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLWltYWdlOiB1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FRQUFBQzFIQXdDQUFBQUMwbEVRVlI0Mm1Oa1lBQUFBQVlBQWpDQjBDOEFBQUFBU1VWT1JLNUNZSUk9KTtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19leHRyYXMge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fdGVhc2VyIHtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMWVtIDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAgIWltcG9ydGFudDtcblxuICAgICAgICAmLS1oaWRkZW4ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Byb2R1Y3RzIHtcbiAgICAgICAgcGFkZGluZzogMC41ZW0gMWVtO1xuICAgICAgICBtaW4td2lkdGg6IDI0cmVtO1xuXG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjFlbSAxLjA1ZW0gMS41NWVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjllbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtbGlzdCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3Byb2R1Y3Qge1xuICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8oJHdpZHRoOiAkdGlsZV9hc3BlY3QtcmF0aW8td2lkdGgsXG4gICAgICAgICAgICAkaGVpZ2h0OiAkdGlsZV9hc3BlY3QtcmF0aW8taGVpZ2h0LFxuICAgICAgICAgICAgJGNoaWxkQ2xhc3M6ICN7JG5zfXByb2R1Y3QtdGlsZSxcbiAgICAgICAgICAgICRhdXRvcG9zaXRpb246IHRydWUpO1xuICAgIH1cblxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgM3JlbSwgMCk7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAsIDAuOTcsIDAuMDUsIDAuOTkpO1xuXG4gICAgICAgIEBpZiAkbmF2aWdhdGlvbl9vdmVybGF5LXNob3cge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlzaWJsZSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgQHN1cHBvcnRzIChkaXNwbGF5OiBncmlkKSBhbmQgKGdyaWQtYXV0by1mbG93OiByb3cpIHtcbiAgICAgICAgJl9fcHJvZHVjdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBhc3BlY3QtcmF0aW8tcmVzZXQoJGNoaWxkQ2xhc3M6ICN7JG5zfXByb2R1Y3QtdGlsZSxcbiAgICAgICAgICAgICAgICAkYXV0b3Bvc2l0aW9uOiB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tbmF2aWdhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtbmV3c2xldHRlciB7XG4gIG1hcmdpbjogMDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtbmV3c2xldHRlciB7XG4gICAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG4gIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbmV3c2xldHRlcl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMzRyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtbmV3c2xldHRlcl9fZm9ybSB7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1uZXdzbGV0dGVyX19mb3JtLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAuY3MtbmV3c2xldHRlcl9fZmllbGQge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2lucHV0IHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1uZXdzbGV0dGVyX19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbmV3c2xldHRlcl9fYWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICBoZWlnaHQ6IDRyZW07IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b24sIC5jcy1uZXdzbGV0dGVyX19idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b24gKiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1uZXdzbGV0dGVyX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1uZXdzbGV0dGVyX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1uZXdzbGV0dGVyX19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IDAuMWVtO1xuICAgIHdpZHRoOiAwLjhlbTtcbiAgICBoZWlnaHQ6IDAuOGVtO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kaW5wdXRfcGFkZGluZzogMC43MTVlbSAxZW0gIWRlZmF1bHQ7XG4kaW5wdXRfYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2FsdG8gIWRlZmF1bHQ7XG4kaW5wdXRfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfbWFyZ2luOiAwICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfcGFkZGluZzogMCAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2Zvcm0tbWF4LXdpZHRoOiAzNHJlbSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2Zvcm0taGVpZ2h0OiA0cmVtICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3M6ICdvbmx5LWljb24nICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9idXR0b24taWNvbi13aWR0aDogMC44ZW0gIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9idXR0b24taWNvbi1oZWlnaHQ6IDAuOGVtICFkZWZhdWx0O1xuXG4uI3skbnN9bmV3c2xldHRlciB7XG4gICAgbWFyZ2luOiAkbmV3c2xldHRlcl9tYXJnaW47XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogJG5ld3NsZXR0ZXJfcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19mb3JtIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkbmV3c2xldHRlcl9mb3JtLW1heC13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvcm0td3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICBoZWlnaHQ6ICRuZXdzbGV0dGVyX2Zvcm0taGVpZ2h0O1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkbmV3c2xldHRlcl9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24taWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkbmV3c2xldHRlcl9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6ICRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbiB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wOmxhc3QtY2hpbGQgYVtkYXRhLWNhdGVnb3J5LWlkPVwiMjkzXCJdIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzA6bGFzdC1jaGlsZCBhW2RhdGEtY2F0ZWdvcnktaWQ9XCIyOTNcIl06OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uLy4uLy4uL3RoZW1lLXBhcGlsYXJ0L3BsX1BML2ltYWdlcy9pY29ucy9wZGYuc3ZnXCIpO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4OyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tY3VycmVudCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1jdXJyZW50IHtcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQgPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0gPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDEwNSU7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICB0b3A6IDA7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgIHRvcDogMTQlOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0gKyAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0ge1xuICAgICAgYm9yZGVyLXRvcDogMXB4ICNkY2RjZGMgc29saWQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCAjZGNkY2RjIHNvbGlkOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pdGVtLS13aXRoLWljb24gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX190ZXh0IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluaywgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbms6aG92ZXIge1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQge1xuICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW46dmlzaXRlZCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDp2aXNpdGVkIHtcbiAgICAgICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjpob3ZlciwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjpob3ZlciAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dDpob3ZlciAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24gcGF0aCB7XG4gICAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgIGhlaWdodDogMC4xcmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQge1xuICAgICAgcGFkZGluZy1yaWdodDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wYXJlbnQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXJldHVybiB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIGxlZnQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAycmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMjI1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAycmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2IHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAwLjdyZW07XG4gICAgICAgIGhlaWdodDogMC4xcmVtO1xuICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgNTAlLCAwKTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiBhdXRvOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDA7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldjphZnRlciB7XG4gICAgICAgIGxlZnQ6IDJyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIC5hY3RpdmUgPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmsge1xuICAgIGNvbG9yOiAjN2U1N2MyOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19jYXRlZ29yeS1pY29uLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19jYXRlZ29yeS1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1heC1oZWlnaHQ6IDJyZW07IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19zZWFyY2gge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI2RjZGNkYyBzb2xpZDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJhY2tncm91bmQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyOiAxcHggJGNvbG9yX2FsdG8gc29saWQgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZDogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19UaGVtZSxcbiAgICBoZWFkZXIsXG4gICAgbW9iaWxlX3NlYXJjaF9pbl9vZmZjYW52YXNcbikgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZC1saXN0LWxldmVsMS10b3AtcG9zaXRpb246IDE0JSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3IgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWFjdGl2ZS1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZzogMi40cmVtIDJyZW0gIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnOiB0cnVlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGg6IDAuN3JlbSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodDogMC4xcmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3IgIWRlZmF1bHQ7XG4vLyBCZWxvdyBuYXZpZ2F0aW9uX2ljb24gc2V0dGluZ3MgYXJlIHVzYWJsZSBvbmx5IGlmIHlvdSB1c2UgcHNldWRvaWNvblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdHlwZTogJ2Fycm93JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLW5leHQ6ICdyaWdodCcgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1kZWZhdWx0LS1wcmV2OiAnbGVmdCcgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXgtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWFyZ2luLXJpZ2h0OiAxcmVtICFkZWZhdWx0O1xuXG4uI3skbnN9b2ZmY2FudmFzLW5hdmlnYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fYmFja2dyb3VuZDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJhY2tncm91bmQ7XG4gICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAmLS1sZXZlbF8we1xuICAgICAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgICAgIGFbZGF0YS1jYXRlZ29yeS1pZD1cIjI5M1wiXXtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi8uLi8uLi90aGVtZS1wYXBpbGFydC9wbF9QTC9pbWFnZXMvaWNvbnMvcGRmLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsXzAsXG4gICAgICAgICYtLWxldmVsXzEsXG4gICAgICAgICYtLWN1cnJlbnQsXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsXzAsXG4gICAgICAgICYtLWxldmVsXzEsXG4gICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWN1cnJlbnQge1xuICAgICAgICAgICAgPiAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICAgICAgPiAjeyRyb290fV9fbGlzdCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYgJiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAxMDUlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG5cbiAgICAgICAgICAgIC8vIFByZXZlbnQgb3ZlcmxhcHBpbmcgb2Ygc2VhcmNoIG9uIG5hdmlnYXRpb24gbGlzdFxuICAgICAgICAgICAgQGlmICgkb2ZmY2FudmFzLW5hdmlnYXRpb25fc2VhcmNoLWVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0b3A6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZC1saXN0LWxldmVsMS10b3AtcG9zaXRpb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDUlKTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtaWNvbiB7XG4gICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJ2xlZnQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nO1xuICAgICAgICBmb250LXNpemU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtc2l6ZTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtd2VpZ2h0O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yLS1ob3ZlcjtcblxuICAgICAgICAgICAgQGlmIG5vdCgkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2Zykge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaWduLWluLFxuICAgICAgICAmLS1zaWduLW91dCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtO1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3ItLWhvdmVyO1xuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDIuM3JlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDIuN3JlbTtcbiAgICAgICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXJlbnQsXG4gICAgICAgICYtLXJldHVybiB7XG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXdpZHRoO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGFyZW50IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZXR1cm4ge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA1cmVtO1xuXG4gICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJ2xlZnQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdXNlLXBzZXVkb2ljb24taW5zdGVhZC1zdmcpIHtcbiAgICAgICAgICAgICYtLW5leHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkYW5pbWF0ZWQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFuaW1hdGlvbixcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLW5leHQsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFycm93LWxlZnQtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkd2lkdGg6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLXByZXYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkYW5pbWF0ZWQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFuaW1hdGlvbixcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LWRlZmF1bHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLXByZXYsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFycm93LWxlZnQtb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkd2lkdGg6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXdpZHRoLFxuICAgICAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6IGF1dG9cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2xlZnQnXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFjdGl2ZSB7XG4gICAgICAgID4gI3skcm9vdH1fX2xpbmsge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWFjdGl2ZS1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NhdGVnb3J5LWljb24td3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWFyZ2luLXJpZ2h0O1xuICAgIH1cblxuICAgICZfX2NhdGVnb3J5LWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgICAgICBtYXgtaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXgtaGVpZ2h0O1xuICAgIH1cblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgJl9fc2VhcmNoIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwIDAuN3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxleDogMSAxIDI1JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQgYSB7XG4gICAgICBtYXgtd2lkdGg6IDE2MHB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50IGEge1xuICAgICAgICAgIG1pbi13aWR0aDogMTQ1cHg7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC13cmFwcGVyID4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMHJlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogIzRkMmM5MTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTFhMDk5O1xuICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYjczOTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWhhdmUtaXRlbXMge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1lbXB0eTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcwJztcbiAgICAgIHdpZHRoOiAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNsb25lZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB6LWluZGV4OiAxMjAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogdG9wIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLCBsZWZ0IDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICBhbmltYXRpb246IG1vdmUtcXR5LWJhZGdlIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgdG9wOiAwLjVyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMS4zcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMy41cmVtOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA4NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gIDk1JSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFuIHtcbiAgICBtaW4td2lkdGg6IDFjaDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC1hbW91bnQtd3JhcHBlciA+IC5taW5pY2FydC1hbW91bnQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiAubWluaWNhcnQtYW1vdW50LXdyYXBwZXIgPiAubWluaWNhcnQtYW1vdW50LXRleHQgLm1pbmljYXJ0LWFtb3VudC10ZXh0LS1lbXB0eTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcwLDAwIHrFgic7IH1cblxuLmNzLW9mZmNhbnZhcy10b2dnbGUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGJvcmRlcjogMDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuNXJlbTtcbiAgYWxpZ24tc2VsZjogc3RyZXRjaDtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgd2lkdGg6IDUuNXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGU6Zm9jdXMsIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmhvdmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAwOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaGVpZ2h0OiAycHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICBiYWNrZ3JvdW5kOiAjN2U1N2MyO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphY3RpdmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6Zm9jdXMsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTphZnRlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiwgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgICBiYWNrZ3JvdW5kOiAjN2U1N2MyO1xuICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzLCB0cmFuc2Zvcm0gMC4zczsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MCUpO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjUwJSwgMCk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1MCUsIDApOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDAuNXJlbTtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDAuOHJlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX190ZXh0IHtcbiAgICAgICAgYm90dG9tOiAycmVtOyB9IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX21lbnUtc2VhcmNoLWljb24ge1xuICAgIGZpbGw6ICM3ZTU3YzI7XG4gICAgd2lkdGg6IDIuNnJlbTtcbiAgICBoZWlnaHQ6IDIuNnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fbWVudS1zZWFyY2gtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19tZW51LXNlYXJjaC1pY29uOmhvdmVyIHtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19tZW51LXNlYXJjaC1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvaGVhZGVyL3VzZXItbmF2L3VzZXItbmF2JztcblxuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3ItYWN0aXZlOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfYW5pbWF0aW9uLWRpcmVjdGlvbjogJ2xlZnQnICFkZWZhdWx0OyAvLyAnbGVmdCcgb3IgJ3JpZ2h0J1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvci1hY3RpdmU6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMtdG9nZ2xlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJvcmRlcjogMDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgd2lkdGg6IDUuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICkge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLFxuICAgICY6YWN0aXZlLFxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBoZWlnaHQ6IDJweDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIEBpZiAoJG9mZmNhbnZhcy10b2dnbGVfYW5pbWF0aW9uLWRpcmVjdGlvbiA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IHJpZ2h0O1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tYWN0aXZlIHtcbiAgICAgICAgJixcbiAgICAgICAgJjphY3RpdmUsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB3aWR0aDogMS44cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAwLjJyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWNvbG9yO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZSxcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJG9mZmNhbnZhcy10b2dnbGVfaWNvbi10cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0yNTAlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTI1MCUsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjUwJSk7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDI1MCUsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwLjVyZW07XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvcjtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRvZmZjYW52YXMtdG9nZ2xlX3RleHQtdHJhbnNmb3JtO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjNzO1xuXG4gICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICZfX21lbnUtc2VhcmNoLWljb24ge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yO1xuICAgICAgICAgICAgd2lkdGg6IDIuNnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi42cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGhlYWRlci11c2VyLW5hdl9pY29uLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fS0tYWN0aXZlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtb2ZmY2FudmFzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAzMDA7IH1cbiAgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHRvcDogNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICB0b3A6IDguM3JlbTtcbiAgICAgICAgYm90dG9tOiAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy0tbWluaS1jYXJ0IC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhcy0tbWluaS1jYXJ0IC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB0b3A6IDA7IH1cbiAgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBjYWxjKDEwMCUgLSA1cmVtKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIHRyYW5zZm9ybSAxbXMgMC4zcztcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyB9IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLW9mZmNhbnZhcyAub3ZlcmxheS0tdmlzaWJsZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNyk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzOyB9XG4gIC5jcy1vZmZjYW52YXNfX2RyYXdlciB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDQwcmVtOyB9XG4gICAgLmNzLW9mZmNhbnZhcy0tc2lkZV9sZWZ0IC5jcy1vZmZjYW52YXNfX2RyYXdlciB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtLXNpZGVfcmlnaHQgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMDtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXItLW5hdmlnYXRpb24ge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7IH1cbiAgLmNzLW9mZmNhbnZhcyAuZHJhd2VyLS12aXNpYmxlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW9mZmNhbnZhc19fc3Bpbm5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiA2cmVtO1xuICAgIGhlaWdodDogNnJlbTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAyMCU7XG4gICAgbWFyZ2luLWxlZnQ6IC0zcmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZSAhZGVmYXVsdDsgLy8gTW92ZSBiZWxvdyB0aGUgbmF2aWdhdGlvbiBvbiBtb2JpbGUuXG4kb2ZmY2FudmFzX3RvcC1vZmZzZXQtdGFibGV0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtdGFibGV0ICFkZWZhdWx0OyAvLyBNb3ZlIGJlbG93IHRoZSBuYXZpZ2F0aW9uIG9uIHRhYmxldC5cbiRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lOiAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfb3ZlcmxheS1iYWNrZ3JvdW5kOiAkbW9kYWxzX292ZXJsYXktYmFja2dyb3VuZCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19kcmF3ZXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX3NwaW5uZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMzAwO1xuXG4gICAgJl9fZHJhd2VyLFxuICAgICZfX292ZXJsYXkge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgYm90dG9tOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgdG9wOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB0b3A6ICRvZmZjYW52YXNfdG9wLW9mZnNldC10YWJsZXQ7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLW1pbmktY2FydCAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtICN7JG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlfSk7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAvLyBTZXR0aW5nIDFtcyBiZWNhdXNlIDAgZG9lc24ndCBzZWVtIHRvIHdvcmsgYW5kIHdlIG5lZWQgc2VhbWxlc3MgdHJhbnNpdGlvbiBmb3Igc2NhbGUgaGVyZS5cbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgICAgIHRyYW5zZm9ybSAxbXMgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbWluaS1jYXJ0ICYge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm92ZXJsYXkge1xuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzX292ZXJsYXktYmFja2dyb3VuZDtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19kcmF3ZXIge1xuICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXNfZHJhd2VyLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgd2lkdGg6IDkwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXNpZGVfbGVmdCAmIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXNpZGVfcmlnaHQgJiB7XG4gICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmF2aWdhdGlvbiB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1tZW51LWlzLXJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5kcmF3ZXIge1xuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NwaW5uZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiA2cmVtO1xuICAgICAgICBoZWlnaHQ6IDZyZW07XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiAyMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtM3JlbTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcGFnZS1ib3R0b20ge1xuICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXBhZ2UtYm90dG9tIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXBhZ2UtYm90dG9tIHtcbiAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9IH1cbiAgLnBhZ2UtcHJpbnQgLmNzLXBhZ2UtYm90dG9tIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9faW1hZ2Uge1xuICAgIGhlaWdodDogM3JlbTtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9faW1hZ2UtLWNpcmNsZSB7XG4gICAgICB3aWR0aDogNC43cmVtO1xuICAgICAgaGVpZ2h0OiA0LjdyZW07XG4gICAgICBtaW4td2lkdGg6IDQuN3JlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDQuN3JlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX3RleHQtLXNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgcGFkZGluZzogMDsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfVxuICAgICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8gLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyB7XG4gICAgICAgICAgZmxleC1iYXNpczogMTclO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZyB7XG4gICAgICAgICAgZmxleC1iYXNpczogMzMlO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgICBmbGV4LWJhc2lzOiA1MCU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQgLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQge1xuICAgIGZsZXgtYmFzaXM6IDEwMCU7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcsIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmc6YmVmb3JlLCAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50OmJlZm9yZSB7XG4gICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGxlZnQ6IDFyZW07XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDAuMnJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgICAgYmFja2dyb3VuZDogI2RjZGNkYztcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH0gfVxuICAuY3MtcGFnZS1ib3R0b21fX2xvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAgaGVpZ2h0OiAycmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nbyB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWhlcm1lcyB7XG4gICAgICB3aWR0aDogMTIuMnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZGhsIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICBtaW4td2lkdGg6IDguNnJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMTBweDsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tcGF5cGFsIHtcbiAgICAgIHdpZHRoOiA2LjJyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXZpc2Ege1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgIG1pbi13aWR0aDogNS41cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1tYXN0ZXJjYXJkIHtcbiAgICAgIHdpZHRoOiAzLjNyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWtsYXJuYS1zb2ZvcnQge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogMi41cmVtO1xuICAgICAgbWluLWhlaWdodDogMi41cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1rbGFybmEge1xuICAgICAgd2lkdGg6IDdyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWdscyB7XG4gICAgICB3aWR0aDogNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZ2lyb3BheSB7XG4gICAgICB3aWR0aDogNC44cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1lYyB7XG4gICAgICB3aWR0aDogMS44cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1wYXlkaXJla3Qge1xuICAgICAgd2lkdGg6IDZyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWxhc3RzY2hyaWZ0IHtcbiAgICAgIHdpZHRoOiA2LjE1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS12b3JrYXNzZSB7XG4gICAgICB3aWR0aDogOC4zcmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1yZWNobnVuZyB7XG4gICAgICB3aWR0aDogNi4xNXJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nbzpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtOyB9XG5cbi5jcy1jb250YWluZXItLXBhZ2UtYm90dG9tIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwYWdlLWJvdHRvbV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kcGFnZS1ib3R0b21fZGl2aWRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31wYWdlLWJvdHRvbSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICB9XG5cbiAgICAucGFnZS1wcmludCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgJi0tY2lyY2xlIHtcbiAgICAgICAgICAgIHdpZHRoOiA0LjdyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDQuN3JlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNC43cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogNC43cmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgICAgICBjb2xvcjogJHBhZ2UtYm90dG9tX3RleHQtY29sb3I7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC42cmVtO1xuXG4gICAgICAgICYtLXNtYWxsIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2dyb3VwIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5mbyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA0MCU7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTclO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9fdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaGlwcGluZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiA1NSU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5bWVudCB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA1MCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zaGlwcGluZyxcbiAgICAgICAgJi0tcGF5bWVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAwLjJyZW07XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHBhZ2UtYm90dG9tX2RpdmlkZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sb2dvIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1zaHJpbms6IDE7XG4gICAgICAgIGhlaWdodDogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGVybWVzIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMi4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGhsIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDguNnJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheXBhbCB7XG4gICAgICAgICAgICB3aWR0aDogNi4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdmlzYSB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA1LjVyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1tYXN0ZXJjYXJkIHtcbiAgICAgICAgICAgIHdpZHRoOiAzLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1rbGFybmEtc29mb3J0IHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWtsYXJuYSB7XG4gICAgICAgICAgICB3aWR0aDogN3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdscyB7XG4gICAgICAgICAgICB3aWR0aDogNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWdpcm9wYXkge1xuICAgICAgICAgICAgd2lkdGg6IDQuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVjIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXlkaXJla3Qge1xuICAgICAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sYXN0c2NocmlmdCB7XG4gICAgICAgICAgICB3aWR0aDogNi4xNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXZvcmthc3NlIHtcbiAgICAgICAgICAgIHdpZHRoOiA4LjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1yZWNobnVuZyB7XG4gICAgICAgICAgICB3aWR0aDogNi4xNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJi0tcGFnZS1ib3R0b20ge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5wYWdlLXRpdGxlIHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMi42cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuICAucGFnZS10aXRsZV9faGVhZGxpbmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgLnBhZ2UtdGl0bGVfX3NwYW4ge1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgcGFkZGluZzogMDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kcGFnZS10aXRsZV9mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMSAhZGVmYXVsdDtcbiRwYWdlLXRpdGxlX3RleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcblxuJHBhZ2UtdGl0bGVfc3Bhbi1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfc3Bhbi1mb250LXdlaWdodDogMzAwICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfc3Bhbi1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4ucGFnZS10aXRsZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkcGFnZS10aXRsZV9mb250LXNpemUpO1xuICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkcGFnZS10aXRsZV90ZXh0LXRyYW5zZm9ybTtcbiAgICBmb250LXdlaWdodDogJHBhZ2UtdGl0bGVfZm9udC13ZWlnaHQ7XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICB9XG5cbiAgICAmX19zcGFuIHtcbiAgICAgICAgY29sb3I6ICRwYWdlLXRpdGxlX3NwYW4tY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcGFnZS10aXRsZV9zcGFuLWZvbnQtd2VpZ2h0O1xuICAgICAgICBwYWRkaW5nOiAkcGFnZS10aXRsZV9zcGFuLXBhZGRpbmc7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEJlY2F1c2UgcHJpY2UtYm94IGlzIHVzZWQgaW4gbXVsdGlwbGUgY29tcG9uZW50cyBsaWtlIHRpbGUsIGJ1eWJveCBldGMsXG4gKiB3ZSBuZWVkIHRvIG1vdmUgdmFyaWFibGVzIHRvIHNlcGFyYXRlIGZpbGUgdG8gaGF2ZSBwb3NzaWJpbGl0eSB0byBpbmNsdWRlIHRoZW1cbiAqIGluIGVhY2ggY29tcG9uZW50IHdpdGhvdXQgZ2VuZXJhdGUgcHJpY2UtYm94IGNvbXBvbmVudCBzdHlsZXMgbXVsdGlwbGUgdGltZXNcbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4ucHJpY2UtYm94IHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2Uubm8tZGlzcGxheSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjRlbTsgfVxuICAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbCB7XG4gICAgICBjb2xvcjogIzMyNGRjZjtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgbWFyZ2luOiAwIDAuM3JlbSAwLjNyZW0gMDsgfVxuICAgICAgLnByaWNlLWJveCAucHJpY2UtbGFiZWw6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnOic7IH1cbiAgICAgIGJvZHlcbnBcbi5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIC8qIDEgKi8gfVxuICAucHJpY2UtYm94IC5ub3JtYWwtcHJpY2UgLnByaWNlLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7IH1cbiAgLnByaWNlLWJveCAucHJpY2Utd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tLFxuICAucHJpY2UtYm94IC5wcmljZS10byB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSA+IC5wcmljZS1jb250YWluZXIsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9XG4gICAgLnByaWNlLWJveCAucHJpY2UtZnJvbSAucHJpY2UtbGFiZWwsXG4gICAgLnByaWNlLWJveCAucHJpY2UtdG8gLnByaWNlLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7XG4gICAgY29sb3I6ICNhOGIxYjc7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZS5hY3RpdmUgLnByaWNlIHtcbiAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAucHJpY2UtYm94IC5wcmljZS1mcm9tIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94Om5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2U6bm90KDpvbmx5LWNoaWxkKSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG5cbi5jcy1idW5kbGUtYm94X19hZGQgLnByaWNlLWFzLWNvbmZpZ3VyZWQge1xuICBtYXJnaW46IDFyZW0gMCAwOyB9XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1yaWdodDogMS41cmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLm1pbmltYWwtcHJpY2UtbGluazphZnRlciB7XG4gICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29udGVudDogJy0nO1xuICAgIHJpZ2h0OiAtMXJlbTtcbiAgICB0b3A6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbi8vIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHlcblxuJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWw6IHRydWUgIWRlZmF1bHQ7XG5cbi5wcmljZS1ib3gge1xuICAgICRyb290OiAmO1xuICAgIEBpbmNsdWRlIHByaWNlQm94KCk7XG5cbiAgICAucHJpY2Uge1xuICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcbiAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICYtbGFiZWwge1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbGFiZWwtY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X2xhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAkcHJpY2UtYm94X2xhYmVsLW1hcmdpbiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRwcmljZS1ib3hfbGFiZWwtZGlzcGxheS1jb2xvbikge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBib2R5Om5vdCgucGFnZS1wcm9kdWN0LWJ1bmRsZSwgLnBhZ2UtcHJvZHVjdC1ncm91cGVkKVxuICAgICAgICAgICAgICAgIHA6bm90KC5wcmljZS1mcm9tLCAucHJpY2UtdG8pXG4gICAgICAgICAgICAgICAgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJGNvbmZpZ3VyYWJsZS1wcm9kdWN0cy1zaG93LWZyb20tcHJpY2UtbGFiZWwge1xuICAgICAgICAubm9ybWFsLXByaWNlIHtcbiAgICAgICAgICAgIC5wcmljZS1sYWJlbCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIC5wcmljZS1mcm9tLFxuICAgIC5wcmljZS10byB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgID4gLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkcHJpY2UtYm94X3NwYWNlLWJldHdlZW4tcHJpY2VzO1xuICAgIH1cblxuICAgIC4jeyRuc31wcmljZS0tcGRwX2RhaWx5ZGVhbC1jb3VudGRvd24gJiB7XG4gICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtY29udGFpbmVyLnByaWNlLWZpbmFsX3ByaWNlIHtcbiAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9YnVuZGxlLWJveF9fYWRkIHtcbiAgICAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gICAgICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgfVxufVxuXG4ubWluaW1hbC1wcmljZS1saW5rIHtcbiAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbnRlbnQ6ICctJztcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG59XG4iLCIvLyBwcmljZS1ib3hcbi8vIFRoaXMgY29tcG9uZW50IGlzIHJlc3BvbnNpYmxlIGZvciBzdHlsaW5nIHByaWNlcyBieSBtYXJrdXAgcHJvdmlkZWQgYnkgTWFnZW50bzJcbi8vXG4vLyBTZWUgaHR0cDovL3dhcnBzcGlyZS5jb20va3NzLyBmb3IgZG9jdW1lbnRhdGlvbiBndWlkZWxpbmVzLlxuLy8gVmVyc2lvbiAwLjAuMVxuQG1peGluIHByaWNlQm94KCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9sZC1wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuNjVyZW07XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9sZCBwcmljZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZCBmb3IgcHJpY2VzIHdoZXJlIG5vcm1hbCBwcmljZSBpcyBcIkFzIGxvdyBhcyB7cHJpY2V9XCJcbiAgICAgICAgJi5uby1kaXNwbGF5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbiAqIGh0dHBzOi8vd3d3LnNhc3NtZWlzdGVyLmNvbS9naXN0LzlmYTE5ZDI1NDg2NGYzM2Q0YTgwXG4gKiBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbiAqIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtcHJvZHVjdC10aWxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcztcbiAgYXNwZWN0LXJhdGlvOiAzMDAvNDAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZSB7XG4gICAgICBhc3BlY3QtcmF0aW86IDMwMC8zNTA7IH0gfVxuICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgLmNzLXByb2R1Y3QtdGlsZTpob3ZlciB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxOyB9IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0tY2xpY2thYmxlOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZS0taGlkZGVuIC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbGluayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbCB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtaW4taGVpZ2h0OiAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluazpob3ZlciwgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19maWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9faW1hZ2Uge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICBtYXJnaW46IGF1dG87IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9faW1nIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19pbWdbc3JjKj0ncGxhY2Vob2xkZXInXSB7XG4gICAgICBtaW4td2lkdGg6IDcwJTtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGVudCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX21haW4ge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgNHJlbTtcbiAgICBncmlkLXRlbXBsYXRlLWFyZWFzOiAnYmFkZ2VzIGFkZHRvJyAnc3dhdGNoZXMgc3dhdGNoZXMnICdicmFuZCBicmFuZCcgJ25hbWUgbmFtZScgJ2Rlc2NyaXB0aW9uIGRlc2NyaXB0aW9uJyAncHJpY2UgcHJpY2UnICdyZXZpZXcgIGFkZHRvY2FydCcgJ3N0b2NrIGFkZHRvY2FydCcgJ3dpc2hsaXN0LWljb25zIHdpc2hsaXN0LWljb25zJzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyB7XG4gICAgZ3JpZC1hcmVhOiBzd2F0Y2hlcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbjogMnJlbSAwIDFyZW07XG4gICAgbWluLWhlaWdodDogMi42cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMsXG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3dhdGNoZXMgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19icmFuZCB7XG4gICAgZ3JpZC1hcmVhOiBicmFuZDtcbiAgICBoZWlnaHQ6IDJyZW07XG4gICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19icmFuZC0tZW1wdHkge1xuICAgICAgaGVpZ2h0OiAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kLXRleHQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUge1xuICAgIGdyaWQtYXJlYTogbmFtZTtcbiAgICBsaW5lLWhlaWdodDogMnJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA0LjJyZW07XG4gICAgbWFyZ2luOiAwIDAgMC41cmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rIHtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAvKiBkaXNhYmxlZCBiZWNhdXNlIGF1dG9wcmVmaXhlciBjYW4ndCBidWlsZCB0aGlzICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgdmFsdWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7XG4gICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgIC13ZWJraXQtbGluZS1jbGFtcDogMjtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgbGluZS1jbGFtcDogMjtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgLyogc3R5bGVsaW50LWVuYWJsZSBwcm9wZXJ0eS1uby12ZW5kb3ItcHJlZml4ICovIH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSB7XG4gICAgZ3JpZC1hcmVhOiBwcmljZTtcbiAgICBsaW5lLWhlaWdodDogMS4yOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAubWluaW1hbC1wcmljZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgICAgb3JkZXI6IC0xOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3g6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZS0tZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94LnByaWNlLWJveC0tdmlzaWJsZSB7XG4gICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3JldmlldyB7XG4gICAgZ3JpZC1hcmVhOiByZXZpZXc7XG4gICAgbWFyZ2luOiAxcmVtIDAgMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3JldmlldzplbXB0eSB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19zdG9jayB7XG4gICAgZ3JpZC1hcmVhOiBzdG9jaztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDEuMXJlbTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2stLWluIHtcbiAgICAgIGNvbG9yOiAjMzdiODQxOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fc3RvY2stLW91dCB7XG4gICAgICBjb2xvcjogI2U0MWYxMjsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQge1xuICAgIGdyaWQtYXJlYTogYWRkdG9jYXJ0O1xuICAgIG1hcmdpbjogMCAwIDA7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fYnV0dG9uIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDRyZW07IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19idXR0b246OmJlZm9yZSwgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2J1dHRvbjo6YWZ0ZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAvKiAxICovIH1cbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24sIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19jb25maWd1cmUtaWNvbiB7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24sXG4gICAgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0LmNzLWFkZHRvY2FydC0tbG9hZGluZyAuY3MtYWRkdG9jYXJ0X19jb25maWd1cmUtaWNvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC1idXR0b24ge1xuICAgIHdpZHRoOiA0cmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICBncmlkLWFyZWE6IGFkZHRvO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMS41cmVtO1xuICAgIHJpZ2h0OiAxLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGR0byAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2xpbmsge1xuICAgICAgZm9udC1zaXplOiAxLjNyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8sXG4gICAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG86ZW1wdHkge1xuICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGR0byAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2xpbmstbGFiZWwge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC8qIDEgKi8gfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZ3JpZC1hcmVhOiBiYWRnZXM7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDI7XG4gICAgdG9wOiAycmVtO1xuICAgIGxlZnQ6IDJyZW07XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHBhZGRpbmc6IDAgMC43cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWluLWhlaWdodDogMmVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZ3JpZC1hcmVhOiBiYWRnZTsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIGFuZCAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlIHtcbiAgICBmb250LXNpemU6IDAuOXJlbTsgfSB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRpc2NvdW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNlNDFmMTI7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRpc2NvdW50IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kaXNjb3VudCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRpc2NvdW50IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tbmV3IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMWEwOTk7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLW5ldyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tbmV3IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tbmV3IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZnJlZS1zaGlwcGluZyB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgLyoqXG4gICAgICAgICAgICAqIEluaXRpYWxseSBoaWRlIHBvcHVsYXIgYmFkZ2Ugb24gY2F0ZWdvcnkgcHJvZHVjdHMgbGlzdC4gXG4gICAgICAgICAgICAqIFRoZSBsb2dpYyBmb3Igc2hvd2luZyB0aGUgYmFkZ2UgaXMgcGxhY2VkIGluIG1hZ2VzdWl0ZS1wcm9kdWN0LXBvc2l0aXZlLWluZGljYXRvcnMvdmlldy9mcm9udGVuZC93ZWIvanMvdGlsZS1iYWRnZS1zaG93ZXIuanNcbiAgICAgICAgICAgICovIH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tcG9wdWxhciAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgICAucHJvZHVjdC1pdGVtcyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tcG9wdWxhcjpub3QoLnZpc2libGUpIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIC8qIDEgKi8gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kYWlseWRlYWwge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0MWYxMjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGFpbHlkZWFsIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kYWlseWRlYWwgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kYWlseWRlYWwgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZS0tZ3JpZCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS1pdGVtIHtcbiAgICAgIG1hcmdpbjogMCAwIDAuNXJlbTtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtaXRlbTplbXB0eSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2RhaWx5ZGVhbCB7XG4gICAgZ3JpZC1hcmVhOiBkYWlseWRlYWw7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3F0eSB7XG4gICAgZ3JpZC1hcmVhOiBxdHk7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB3aWR0aDogMTFyZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZGVzY3JpcHRpb24ge1xuICAgIGdyaWQtYXJlYTogZGVzY3JpcHRpb247XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIG1hcmdpbjogMCAwIDFyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgQG1lZGlhIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1yZW1vdmUtaWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1yZW1vdmUtaWNvbi1pbWFnZSB7XG4gICAgd2lkdGg6IDEuMnJlbTtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LWNvbW1lbnQge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgZ3JpZC1hcmVhOiB3aXNobGlzdC1pY29ucztcbiAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4iLCIvKipcbiAqIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4gKiBodHRwczovL3d3dy5zYXNzbWVpc3Rlci5jb20vZ2lzdC85ZmExOWQyNTQ4NjRmMzNkNGE4MFxuICogQGF1dGhvciBIdWdvIEdpcmF1ZGVsXG4gKiBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4gKiBAcmV0dXJuIHtOdW1iZXJ9XG4gKi9cblxuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09ICdudW1iZXInIHtcbiAgICAgICAgQHJldHVybiAkdmFsdWU7XG4gICAgfSBAZWxzZSBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ3N0cmluZycge1xuICAgICAgICAkXzogbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICAgIH1cblxuICAgICRyZXN1bHQ6IDA7XG4gICAgJGRpZ2l0czogMDtcbiAgICAkbWludXM6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpID09ICctJztcbiAgICAkbnVtYmVyczogKFxuICAgICAgICAnMCc6IDAsXG4gICAgICAgICcxJzogMSxcbiAgICAgICAgJzInOiAyLFxuICAgICAgICAnMyc6IDMsXG4gICAgICAgICc0JzogNCxcbiAgICAgICAgJzUnOiA1LFxuICAgICAgICAnNic6IDYsXG4gICAgICAgICc3JzogNyxcbiAgICAgICAgJzgnOiA4LFxuICAgICAgICAnOSc6IDksXG4gICAgKTtcblxuICAgIEBmb3IgJGkgZnJvbSBpZigkbWludXMsIDIsIDEpIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgICAgICBAaWYgbm90KGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgICAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKFxuICAgICAgICAgICAgICAgIGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLFxuICAgICAgICAgICAgICAgIHN0ci1zbGljZSgkdmFsdWUsICRpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgICAgICAgICRkaWdpdHM6IDE7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRkaWdpdHMgPT0gMCkge1xuICAgICAgICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgJGRpZ2l0czogJGRpZ2l0cyAqIDEwO1xuICAgICAgICAgICAgJHJlc3VsdDogJHJlc3VsdCArIG1hcC1nZXQoJG51bWJlcnMsICRjaGFyYWN0ZXIpIC8gJGRpZ2l0cztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2JhZGdlL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9zdHJpbmctdG8tbnVtYmVyJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuLy8gR2VuZXJhbFxuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyOiAxLjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyOiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWZvbnQtc2l6ZTogMS44cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ob3Zlci1hbmltYXRpb246IHRydWUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2hvdmVyLWFuaW1hdGlvbi1icmVha3BvaW50OiAnPj1sYXB0b3AnICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wYWRkaW5nOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FsaWdubWVudDogY2VudGVyICFkZWZhdWx0OyAvLyBsZWZ0IHwgY2VudGVyIHwgcmlnaHRcbiRwcm9kdWN0LXRpbGVfaW5pdGlhbC1ib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfaG92ZXItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4vLyBJZiBwcm9kdWN0IHRpbGUgZGVzaWduIGhhcyBhIGhpZGRlbiBib3R0b20gcGFydCB0aGF0IGlzIHNsaWRlZCB1cCBvbiBob3ZlciBzZXQgYm90aCBiZWxvdyB2YXJpYWJsZXNcbiRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1zbGlkZS1vbi1ob3ZlcjogZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX21haW4tYWZ0ZXItaGVpZ2h0OiAnYXV0bycgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2NvbnRlbnQtaGVpZ2h0OiAnYXV0bycgIWRlZmF1bHQ7XG5cbi8vIFByb2R1Y3QgbmFtZVxuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5OiAyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7IC8vIE1VU1QgQkUgYSBudW1iZXIgdmFsdWUgd2l0aCB1bml0LCBjYW5ub3QgYmUgJ2luaGVyaXQnXG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLXZpc2l0ZWQ6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstdGV4dC1kZWNvcmF0aW9uLWhvdmVyOiBub25lICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWFyZ2luOiAwIDAgMC41cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtYWxpZ25tZW50OiBsZWZ0ICFkZWZhdWx0O1xuXG4vLyBCYWRnZXNcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLXotaW5kZXg6IDIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JhZGdlcy1kaXJlY3Rpb246ICd2ZXJ0aWNhbCcgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi1wcm9wOiB0b3AgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tcHJvcDogbGVmdCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi12YWx1ZTogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi12YWx1ZTogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLWl0ZW0tbWFyZ2luOiAwIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gNH0gIWRlZmF1bHQ7XG5cbi8vIFN3YXRjaGVzXG4kcHJvZHVjdC10aWxlX3N3YXRjaGVzLWNvbnRhaW5lci1taW4taGVpZ2h0OiAyLjZyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N3YXRjaGVzLW1hcmdpbjogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1hbGlnbm1lbnQ6ICRwcm9kdWN0LXRpbGVfYWxpZ25tZW50ICFkZWZhdWx0O1xuXG4vLyBCcmFuZFxuJHByb2R1Y3QtdGlsZV9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYnJhbmQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYnJhbmQtaGVpZ2h0OiAycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9icmFuZC1hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7XG5cbi8vIFJldmlld1xuJHByb2R1Y3QtdGlsZV9yZXZpZXctbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIEFkZHRvXG4kcHJvZHVkY3QtdGlsZV9hZGR0by1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWRkdG8tbWFyZ2luOiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyAyfSAwIDAgIWRlZmF1bHQ7XG5cbi8vIFF0eSBzd2ljdGhlclxuJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoOiAxMXJlbSAhZGVmYXVsdDtcbiRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci1zcGFjZS1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vIEFkZHRvY2FydFxuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtbWFyZ2luOiAwIDAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXdpZHRoOiA0cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtc2hvdy1vbmx5LW9uLWhvdmVyOiB0cnVlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtcmVkdWNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gU3RvY2tcbiRwcm9kdWN0LXRpbGVfc3RvY2stZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N0b2NrLWluLWNvbG9yOiAkY29sb3JfYXBwbGUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N0b2NrLW91dC1vZi1jb2xvcjogJGNvbG9yX2NyaW1zb24gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N0b2NrLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuLy8gRGFpbHkgRGVhbFxuJHByb2R1Y3QtdGlsZV9kYWlseWRlYWwtbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLyBXaXNobGlzdFxuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGU6IGZhbHNlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXRleHRhcmVhLWhlaWdodDogNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4wIDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1qdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG5cbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw6ICRjb2xvcl9ib3JkZXItNzAwICFkZWZhdWx0O1xuXG4vLyBEZXNjcmlwdGlvblxuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC13ZWlnaHQ6IDQwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ6IDEuNCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I6ICRjb2xvcl9kb3ZlLWdyYXkgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLW1hcmdpbjogMCAwICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvXG4gMlxufVxuXG4hZGVmYXVsdDtcblxuLy8gVGh1bWJuYWlsXG4kcHJvZHVjdC10aWxlX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gUHJpY2VzXG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1jb2xvcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX29sZC1wcmljZS10ZXh0LWRlY29yYXRpb246ICRwcmljZS1ib3hfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZV9wcmljZXMtZGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgIWRlZmF1bHQ7IC8vIHZlcnRpY2FsIG9yIGhvcml6b250YWxcbiRwcm9kdWN0LXRpbGVfcHJpY2VzLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3Q6IHRydWUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3ByaWNlcy1hbGlnbm1lbnQ6ICdsZWZ0JyAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2U6IGRlZXAtZ2V0KCR2aWV3LXhtbCxcbiAgICAgICAgbWVkaWEsXG4gICAgICAgIGltYWdlcyxcbiAgICAgICAgaW1hZ2UsXG4gICAgICAgIGNhdGVnb3J5X3BhZ2VfZ3JpZCk7XG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aDogdG8tbnVtYmVyKCN7bWFwLWdldCgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZSwgd2lkdGgpfSk7XG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS1oZWlnaHQ6IHRvLW51bWJlcigje21hcC1nZXQoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UsIGhlaWdodCl9KTtcblxuLiN7JG5zfXByb2R1Y3QtdGlsZSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJHByb2R1Y3QtdGlsZV9pbml0aWFsLWJvcmRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lO1xuICAgIGFzcGVjdC1yYXRpbzogI3skdGlsZV9hc3BlY3QtcmF0aW8td2lkdGgtLW1vYmlsZX0vI3skdGlsZV9hc3BlY3QtcmF0aW8taGVpZ2h0LS1tb2JpbGV9O1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBhc3BlY3QtcmF0aW86ICN7JHRpbGVfYXNwZWN0LXJhdGlvLXdpZHRofS8jeyR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHR9O1xuICAgIH1cblxuICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBib3JkZXI6ICRwcm9kdWN0LXRpbGVfaG92ZXItYm9yZGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2xpY2thYmxlIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1oaWRkZW4ge1xuICAgICAgICAjeyRyb290fV9fbWFpbiB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfcGFkZGluZztcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfY29udGVudC1oZWlnaHQgIT0nYXV0bycgYW5kICRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1zbGlkZS1vbi1ob3ZlciApIHtcbiAgICAgICAgICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogJHByb2R1Y3QtdGlsZV9jb250ZW50LWhlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX3RodW1ibmFpbCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJl9fdGh1bWJuYWlsLWxpbmsge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZ3VyZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9saW1pdC1jb250YWluZXItdG8taW1hZ2Utc2l6ZSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2Utd2lkdGggLyAxMCkgKiAxcmVtO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogKCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLWhlaWdodCAvIDEwKSAqIDFyZW07XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW46IGF1dG87XG4gICAgfVxuXG4gICAgJl9faW1nIHtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICZbc3JjKj0ncGxhY2Vob2xkZXInXSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDcwJTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1zbGlkZS1vbi1ob3Zlcikge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyO1xuICAgICAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDIgKiAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlcn0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21haW4ge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcikgJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtd2lkdGg7XG5cbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1hcmVhczpcbiAgICAgICAgICAgICdiYWRnZXMgYWRkdG8nXG4gICAgICAgICAgICAnc3dhdGNoZXMgc3dhdGNoZXMnXG4gICAgICAgICAgICAnYnJhbmQgYnJhbmQnXG4gICAgICAgICAgICAnbmFtZSBuYW1lJ1xuICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uIGRlc2NyaXB0aW9uJ1xuICAgICAgICAgICAgJ3ByaWNlIHByaWNlJ1xuICAgICAgICAgICAgJ3JldmlldyAgYWRkdG9jYXJ0J1xuICAgICAgICAgICAgJ3N0b2NrIGFkZHRvY2FydCdcbiAgICAgICAgICAgICd3aXNobGlzdC1pY29ucyB3aXNobGlzdC1pY29ucyc7XG4gICAgfVxuXG4gICAgJl9fc3dhdGNoZXMge1xuICAgICAgICBncmlkLWFyZWE6IHN3YXRjaGVzO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtbWFyZ2luO1xuICAgICAgICBtaW4taGVpZ2h0OiAkcHJvZHVjdC10aWxlX3N3YXRjaGVzLWNvbnRhaW5lci1taW4taGVpZ2h0O1xuXG4gICAgICAgICYsXG4gICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3N3YXRjaGVzLWFsaWdubWVudCA9PSdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtYWxpZ25tZW50ID09J3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBicmFuZDtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC10aWxlX2JyYW5kLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlX2JyYW5kLWFsaWdubWVudDtcblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19icmFuZC10ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX2JyYW5kLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfYnJhbmQtY29sb3I7XG4gICAgfVxuXG4gICAgJl9fbmFtZSB7XG4gICAgICAgIGdyaWQtYXJlYTogbmFtZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0O1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtZm9udC1zaXplO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheSAqICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmUtaGVpZ2h0ICsgMC4yO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1hcmdpbjtcbiAgICAgICAgdGV4dC1hbGlnbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtYWxpZ25tZW50O1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXkgPT0xKSB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19uYW1lLWxpbmsge1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvcjtcblxuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3IgIT0kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yLWhvdmVyICkge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogZGlzYWJsZWQgYmVjYXVzZSBhdXRvcHJlZml4ZXIgY2FuJ3QgYnVpbGQgdGhpcyAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheSA+IDEpIHtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIC13ZWJraXQtbGluZS1jbGFtcDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXk7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICBsaW5lLWNsYW1wOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgdmFsdWUtbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi9cblxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItdmlzaXRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstdGV4dC1kZWNvcmF0aW9uLWhvdmVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBncmlkLWFyZWE6IHByaWNlO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yO1xuXG4gICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9wcmljZXMtbWFyZ2luO1xuXG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9ub3JtYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgb3JkZXI6IC0xO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3ByaWNlcy1kaXJlY3Rpb24gPT0ndmVydGljYWwnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5wcmljZS1mcm9tIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudCA9PSdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgID4ucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudCA9PSdsZWZ0Jykge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGVsc2UgaWYgKCRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudCA9PSdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveCB7XG4gICAgICAgICAgICAmOm5vdCgucHJpY2UtZmluYWxfcHJpY2Vfd2l0aG91dF9kYWlseV9kZWFsKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5wcmljZS1ib3gtLXZpc2libGUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yZXZpZXcge1xuICAgICAgICBncmlkLWFyZWE6IHJldmlldztcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX3Jldmlldy1tYXJnaW47XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0b2NrIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBzdG9jaztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfc3RvY2stZm9udC1zaXplO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfc3RvY2stbWFyZ2luO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4xcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ7XG5cbiAgICAgICAgJi0taW4ge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1vdXQge1xuICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0IHtcbiAgICAgICAgZ3JpZC1hcmVhOiBhZGR0b2NhcnQ7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtbWFyZ2luO1xuXG4gICAgICAgIC8vIEBpZiAoJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtc2hvdy1vbmx5LW9uLWhvdmVyKSB7XG4gICAgICAgIC8vICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgIC8vICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgLy8gICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZTtcblxuICAgICAgICAvLyAgICAgICAgICN7JHJvb3R9OmhvdmVyICYge1xuICAgICAgICAvLyAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtcmVkdWNlZCkge1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZTpub3QoLiN7JG5zfXByb2R1Y3QtdGlsZS0tbGlzdCkgJiB7XG4gICAgICAgICAgICAgICAgLiN7JG5zfWFkZHRvY2FydCB7XG4gICAgICAgICAgICAgICAgICAgICZfX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA0cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19idXR0b24tbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICZfX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmX19idXR0b24taWNvbixcbiAgICAgICAgICAgICAgICAgICAgJl9fY29uZmlndXJlLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlOm5vdCguI3skbnN9cHJvZHVjdC10aWxlLS1saXN0KSAmLiN7JG5zfWFkZHRvY2FydC0tbG9hZGluZyB7XG4gICAgICAgICAgICAgICAgLiN7JG5zfWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLiN7JG5zfWFkZHRvY2FydF9fYnV0dG9uLWljb24sXG4gICAgICAgICAgICAgICAgLiN7JG5zfWFkZHRvY2FydF9fY29uZmlndXJlLWljb24ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXJlZHVjZWQpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkcHJvZHVjdC10aWxlX2FkZHRvY2FydC13aWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiBub3QoJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtcmVkdWNlZCkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0byB7XG4gICAgICAgIGdyaWQtYXJlYTogYWRkdG87XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfYWRkdG8tbWFyZ2luO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMS41cmVtO1xuICAgICAgICByaWdodDogMS41cmVtO1xuXG4gICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWRjdC10aWxlX2FkZHRvLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdCAmLFxuICAgICAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkICYge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2xpbmstbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZXMge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZ3JpZC1hcmVhOiBiYWRnZXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAkcHJvZHVjdC10aWxlX2JhZGdlcy16LWluZGV4O1xuICAgICAgICAjeyRwcm9kdWN0LXRpbGVfYmFkZ2VzLXktYXNpcy1wb3NpdGlvbi1wcm9wfTogJHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXZhbHVlO1xuICAgICAgICAjeyRwcm9kdWN0LXRpbGVfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi1wcm9wfTogJHByb2R1Y3QtdGlsZV9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXZhbHVlO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9iYWRnZXMtZGlyZWN0aW9uID09J3ZlcnRpY2FsJykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2UoKTtcblxuICAgICAgICBncmlkLWFyZWE6IGJhZGdlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJywgJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjlyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaXNjb3VudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdkaXNjb3VudCcpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZGlzY291bnQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW5ldyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCduZXcnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ25ldycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnJlZS1zaGlwcGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdmcmVlLXNoaXBwaW5nJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdmcmVlLXNoaXBwaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wb3B1bGFyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ3BvcHVsYXInKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ3BvcHVsYXInKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAqIEluaXRpYWxseSBoaWRlIHBvcHVsYXIgYmFkZ2Ugb24gY2F0ZWdvcnkgcHJvZHVjdHMgbGlzdC4gXG4gICAgICAgICAgICAqIFRoZSBsb2dpYyBmb3Igc2hvd2luZyB0aGUgYmFkZ2UgaXMgcGxhY2VkIGluIG1hZ2VzdWl0ZS1wcm9kdWN0LXBvc2l0aXZlLWluZGljYXRvcnMvdmlldy9mcm9udGVuZC93ZWIvanMvdGlsZS1iYWRnZS1zaG93ZXIuanNcbiAgICAgICAgICAgICovXG4gICAgICAgICAgICAucHJvZHVjdC1pdGVtcyAmOm5vdCgudmlzaWJsZSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFpbHlkZWFsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2RhaWx5ZGVhbCcpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignZGFpbHlkZWFsJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS1pdGVtIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAjeyRyb290fS0tZ3JpZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9iYWRnZXMtaXRlbS1tYXJnaW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTsgLy8gU2V0IHdpZHRoIGV4cGxpY2l0bHkgdG8gYXZvaWQgRWRnZSBidWdzXG4gICAgICAgIH1cblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuICAgIH1cblxuICAgICZfX2RhaWx5ZGVhbCB7XG4gICAgICAgIGdyaWQtYXJlYTogZGFpbHlkZWFsO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfZGFpbHlkZWFsLW1hcmdpbjtcbiAgICB9XG5cbiAgICAmX19xdHkge1xuICAgICAgICBncmlkLWFyZWE6IHF0eTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXNwYWNlLWJvdHRvbTtcbiAgICAgICAgd2lkdGg6ICRwcm9kdWRjdC10aWxlX3F0eS1zd2l0Y2hlci13aWR0aDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBncmlkLWFyZWE6IGRlc2NyaXB0aW9uO1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXdlaWdodDtcbiAgICAgICAgbGluZS1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbGluZS1oZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWNvbG9yO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbWFyZ2luO1xuICAgIH1cblxuICAgICZfX21haW4tYWZ0ZXIge1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1zbGlkZS1vbi1ob3Zlcikge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGhlaWdodCAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fTpob3ZlciAmIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkcHJvZHVjdC10aWxlX21haW4tYWZ0ZXItaGVpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LXJlbW92ZS1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWJhY2tncm91bmQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdC10aWxlX3BhZGRpbmc7XG5cbiAgICAgICAgQG1lZGlhIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcmVtb3ZlLWljb24taW1hZ2Uge1xuICAgICAgICB3aWR0aDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tc2l6ZTtcbiAgICAgICAgZmlsbDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1maWxsO1xuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWNvbW1lbnQge1xuICAgICAgICBAaWYgbm90KCRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtY29tbWVudC12aXNpYmxlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWFjdGlvbnMge1xuICAgICAgICBncmlkLWFyZWE6IHdpc2hsaXN0LWljb25zO1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1tYXJnaW47XG4gICAgICAgIGRpc3BsYXk6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5O1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXkgPT1mbGV4KSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcHJvZHVjdHMtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1wcm9kdWN0cy1saXN0Om5vdCguY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwpIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2YwZjBmMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gICAgLmNzLXByb2R1Y3RzLWxpc3Q6bm90KC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCkgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgICAgLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItYm90dG9tOiAwOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJHByb2R1Y3RfbGlzdC1pdGVtLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kcHJvZHVjdF9saXN0LWNhcm91c2VsLWJyZWFrcG9pbnQ6ICc+PXRhYmxldCcgIWRlZmF1bHQ7XG5cbi4jeyRuc31wcm9kdWN0cy1saXN0IHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJjpub3QoI3skcm9vdH0tLWNhcm91c2VsKSB7XG4gICAgICAgICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRwcm9kdWN0X2xpc3QtaXRlbS1ib3JkZXItYm90dG9tO1xuICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3RfbGlzdC1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNhcm91c2VsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHByb2R1Y3RfbGlzdC1jYXJvdXNlbC1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAjeyRyb290fV9faXRlbSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJHByb2R1Y3RfbGlzdC1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmNzLXF0eS1pbmNyZW1lbnQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuY3MtcXR5LWluY3JlbWVudC0td2lzaGxpc3Qge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2xhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICB3aWR0aDogMDtcbiAgICBtaW4td2lkdGg6IDJjaDtcbiAgICBmbGV4OiAxO1xuICAgIG9yZGVyOiAyOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0LCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZGNkY2RjOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0Lm1hZ2UtZXJyb3Ige1xuICAgICAgYm9yZGVyLWNvbG9yOiAjZTQxZjEyICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dC5tYWdlLWVycm9yIH4gLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogI2U0MWYxMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0ICsgLm1hZ2UtZXJyb3Ige1xuICAgICAgb3JkZXI6IDM7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uIHtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXM7XG4gICAgbWF4LXdpZHRoOiAzcmVtO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGZsZXg6IDEgMSAycmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjp2aXNpdGVkLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmZvY3VzIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbiAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOnZpc2l0ZWQgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpmb2N1cyAqIHtcbiAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246aG92ZXIsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246YWN0aXZlIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmhvdmVyICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246YWN0aXZlICoge1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGVjcmVtZW50IHtcbiAgICAgIG9yZGVyOiAxO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1yaWdodDogMDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWluY3JlbWVudCB7XG4gICAgICBvcmRlcjogMjtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDA7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6aG92ZXIsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpmb2N1cyAqIHtcbiAgICAgICAgICBmaWxsOiAjZGNkY2RjOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2ljb24tLWRlY3JlbWVudCB7XG4gICAgICB3aWR0aDogMS4ycmVtO1xuICAgICAgaGVpZ2h0OiAwLjNyZW07IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faWNvbi0taW5jcmVtZW50IHtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDEuMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kcXR5LWluY3JlbWVudC0taW4td2lzaGxpc3RfaGlkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJHF0eS1pbmNyZW1lbnRfaW5wdXQtZm9udC1zaXplOiBpbmhlcml0ICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWVycm9yLWJvcmRlci1jb2xvcjogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2lucHV0LS1ob3Zlci1ib3JkZXI6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9idXR0b24tcG9zaXRpb24tb2Zmc2V0OiAxcHggIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24td2lkdGg6IDNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyLXJhZGl1czogMjAwcHggIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1iYWNrZ3JvdW5kOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1vcGFjaXR5OiAxICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWRpc2FibGVkLWZpbGw6ICRjb2xvcl9iYWNrZ3JvdW5kLTYwMCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aDogMS4ycmVtICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LWhlaWdodDogMC4zcmVtICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoOiAkcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtd2lkdGggIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGggIWRlZmF1bHQ7XG5cbi4jeyRuc31xdHktaW5jcmVtZW50IHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIEBpZiAkcXR5LWluY3JlbWVudC0taW4td2lzaGxpc3RfaGlkZSB7XG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG4gICAgICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgICAgICBmb250LXNpemU6ICRxdHktaW5jcmVtZW50X2lucHV0LWZvbnQtc2l6ZTtcbiAgICAgICAgdGV4dC1hbGlnbjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtdGV4dC1hbGlnbjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgIG1pbi13aWR0aDogMmNoO1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBvcmRlcjogMjtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAgICAgJjpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1ob3Zlci1ib3JkZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIH4gI3skcm9vdH1fX2J1dHRvbiB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICArIC5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIG9yZGVyOiAzO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBmaWxsICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZTtcbiAgICAgICAgbWF4LXdpZHRoOiAkcXR5LWluY3JlbWVudF9idXR0b24td2lkdGg7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kO1xuICAgICAgICBmbGV4OiAxIDEgKCN7JHF0eS1pbmNyZW1lbnRfYnV0dG9uLXdpZHRoIC0gMX0pO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkcXR5LWluY3JlbWVudF9idXR0b24tYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXI7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRxdHktaW5jcmVtZW50X2ljb24tZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRxdHktaW5jcmVtZW50X2ljb24tLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kZWNyZW1lbnQge1xuICAgICAgICAgICAgb3JkZXI6IDE7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taW5jcmVtZW50IHtcbiAgICAgICAgICAgIG9yZGVyOiAyO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2FibGVkIHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtb3BhY2l0eTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRxdHktaW5jcmVtZW50X2ljb24tLWRpc2FibGVkLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgJi0tZGVjcmVtZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAkcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtd2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LWhlaWdodDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nOiAxLjVyZW0gMCAxLjVyZW07XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0IHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0ge1xuICAgIG1hcmdpbjogMCAwLjRlbTtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9fbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgaGVpZ2h0OiAzLjVlbTtcbiAgICBtaW4td2lkdGg6IDRlbTtcbiAgICBiYWNrZ3JvdW5kOiAjMjEyMTIxO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9fbGluazpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjNGQyYzkxOyB9XG4gIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTU1JSwgLTU1JSwgMCk7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTUlOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS1mYiAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDAuOWVtO1xuICAgICAgaGVpZ2h0OiAxLjhlbTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0tdHcgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAyLjVlbTtcbiAgICAgIGhlaWdodDogMmVtOyB9XG4gICAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtLS15dCAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgICAgd2lkdGg6IDEuOGVtO1xuICAgICAgaGVpZ2h0OiAyLjFlbTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0tZ3AgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAyZW07XG4gICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgIG1hcmdpbi10b3A6IDAuMWVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfZmxleC1qdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfcGFkZGluZzogJHBhZ2VfZWRnZS1ndXR0ZXIgMCAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1tYXJnaW46IDAgMC40ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1oZWlnaHQ6IDMuNWVtICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstbWluLXdpZHRoOiA0ZW0gIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1iYWNrZ3JvdW5kOiAkY29sb3JfbWluZXNoYWZ0ICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbjogYWJzb2x1dGUgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfaWNvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01NSUsIC01NSUsIDApICFkZWZhdWx0O1xuXG5AaWYgJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb24gPT0gYWJzb2x1dGUge1xuICAgICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgIWRlZmF1bHQ7XG59XG5cbi4jeyRuc31zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICBkaXNwbGF5OiAkc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheTtcbiAgICBwYWRkaW5nOiAkc29jaWFsLW1lZGlhLWxpc3RfcGFkZGluZztcblxuICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheSA9PVxuICAgICAgICBmbGV4IG9yXG4gICAgICAgICRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5ID09XG4gICAgICAgIGlubGluZS1mbGV4XG4gICAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWp1c3RpZnktY29udGVudDtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRzb2NpYWwtbWVkaWEtbGlzdF9mbGV4LWFsaWduLWl0ZW1zO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBtYXJnaW46ICRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAkc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLXBhZGRpbmc7XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWRpc3BsYXk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgaGVpZ2h0OiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1oZWlnaHQ7XG4gICAgICAgIG1pbi13aWR0aDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstbWluLXdpZHRoO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogaW5oZXJpdDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYm9yZGVyLXJhZGl1cztcbiAgICAgICAgdHJhbnNpdGlvbjogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstdHJhbnNpdGlvbjtcblxuICAgICAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaG92ZXItYmFja2dyb3VuZCAhPVxuICAgICAgICAgICAgJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYmFja2dyb3VuZFxuICAgICAgICB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbjtcbiAgICAgICAgdHJhbnNmb3JtOiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi10cmFuc2Zvcm07XG5cbiAgICAgICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uID09IGFic29sdXRlIHtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTUlO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWZiICYge1xuICAgICAgICAgICAgd2lkdGg6IDAuOWVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAxLjhlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS10dyAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAyLjVlbTtcbiAgICAgICAgICAgIGhlaWdodDogMmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLXl0ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEuOGVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyLjFlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS1ncCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuMWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmNzLXN0YXItcmF0aW5nIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXJzIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiA3LjJyZW07XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1zdW1tYXJ5IC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgd2lkdGg6IDEwcmVtO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tcmV2aWV3IC5jcy1zdGFyLXJhdGluZ19fc3RhcnMge1xuICAgICAgd2lkdGg6IDcuMnJlbTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWFjdGl2ZSB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19zdGFyLS1oYWxmLWFjdGl2ZSAuc3Rhci1sZWZ0IHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXItLWhhbGYtYWN0aXZlIC5zdGFyLXJpZ3RoIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXN1bW1hcnkgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICAgIHdpZHRoOiAycmVtOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1yZXZpZXcgLmNzLXN0YXItcmF0aW5nX19zdGFyIHtcbiAgICAgIHdpZHRoOiAxLjVyZW07IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3N0YXIgcGF0aCB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICBmaWxsOiBpbmhlcml0OyB9XG4gIC5jcy1zdGFyLXJhdGluZyBpbWcge1xuICAgIHdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBmaWxsOiAjODg4O1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXItLWFjdGl2ZSB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIgcGF0aCB7XG4gICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICBmaWxsOiBpbmhlcml0OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXI6bnRoLWxhc3Qtb2YtdHlwZSgpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnM6aG92ZXIgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFycyBsYWJlbDpob3ZlciB+IGxhYmVsIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHtcbiAgICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLXN0YXItcmF0aW5nX190ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAwLjEpOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1jb3VudDpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1jb3VudDphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtLWVtcHR5IHtcbiAgICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZSAuY3Mtc3Rhci1yYXRpbmdfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fbGFiZWwge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtc2l6ZTogMC43NWVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLXRvcDogY2FsYygxLjVyZW0gKiAwLjIpOyB9XG5cbi5yZXZpZXctY29udHJvbC12b3RlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTEge1xuICAgIHotaW5kZXg6IDE7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTE6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yIHtcbiAgICB6LWluZGV4OiAyOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0yOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMyB7XG4gICAgei1pbmRleDogMzsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMzpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQge1xuICAgIHotaW5kZXg6IDQ7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01IHtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy01OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlOmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCB7XG4gICAgICAgIHdpZHRoOiAyLjZyZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNnJlbTsgfSB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWw6bGFzdC1jaGlsZCB7XG4gICAgICB3aWR0aDogMnJlbTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSBsYWJlbCBzcGFuIHtcbiAgICAgIGNsaXA6IGF1dG87XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4kc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlOiAkY29sb3JfcmV2aWV3LWFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTogJGNvbG9yX3Jldmlldy1pbmFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItYWN0aXZlOiAkY29sb3JfcmV2aWV3LWFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItaW5hY3RpdmU6ICRjb2xvcl9yZXZpZXctY29udHJvbC1pbmFjdGl2ZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ190ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIGZsZXgganVzdGlmaWNhdGlvbiBvZiBzdGFyc1xuJHN0YXItcmF0aW5nX2p1c3RpZnk6IHNwYWNlLWJldHdlZW4gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHdpZHRoIG9mIGEgc2luZ2xlIHN0YXJcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLWRlZmF1bHQ6IDEuNXJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlld3Mtc3VtbWFyeTogMnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldzogMS41cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm06IDJyZW0gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHdpZHRoIG9mIHJldmlldyBzdGFycyBjb250YWluZXJcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtZGVmYXVsdDogNy4ycmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXdzLXN1bW1hcnk6IDEwcmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXc6IDcuMnJlbSAhZGVmYXVsdDtcbi8vIFBhZGRpbmcgZm9yIHJldmlldyBmb3JtIHN0YXJzXG4kc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtOiAwLjZyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTogMXJlbSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgcGFkZGluZyBydWxlc2V0XG4kc3Rhci1yYXRpbmdfcGFkZGluZy1kZWZhdWx0OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3cy1zdW1tYXJ5OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3OiAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3LWZvcm06IDAgIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHNjb3JlIGFuZCBjb3VudCB0ZXh0ZmllbGQgZGlzcGxheSBydWxlc2V0XG4kc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXBkcDogZmFsc2UgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGU6IGZhbHNlICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBkaXNwbGF5IHJ1bGVzZXQgZm9yIFwicmV2aWV3XCIgYW5ub3RhdGlvblxuJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi1wZHA6IGZhbHNlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlOiB0cnVlICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyByYXRpbmcgbGFiZWwgZGV0YWlsc1xuJHN0YXItcmF0aW5nX2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtZm9udC1zaXplOiAwLjc1ZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4uI3skbnN9c3Rhci1yYXRpbmcge1xuICAgICRyb290OiAmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICZfX3N0YXJzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLWRlZmF1bHQ7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLWRlZmF1bHQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogJHN0YXItcmF0aW5nX2p1c3RpZnk7XG5cbiAgICAgICAgI3skcm9vdH0tLXN1bW1hcnkgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tcmV2aWV3ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3O1xuICAgICAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RhciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1pbmFjdGl2ZTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhhbGYtYWN0aXZlIHtcbiAgICAgICAgICAgIC5zdGFyLWxlZnQge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdGFyLXJpZ3RoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc3VtbWFyeSAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXdzLXN1bW1hcnk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tcmV2aWV3ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldztcbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgICAgICAgZmlsbDogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fZm9ybS1zdGFycyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICB9XG5cbiAgICAmX19mb3JtLXN0YXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLS1hY3RpdmUge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1sYXN0LW9mLXR5cGUoKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2Zvcm0tc3RhcnM6aG92ZXIgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzIGxhYmVsOmhvdmVyIH4gbGFiZWwgJiB7XG4gICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRzdGFyLXJhdGluZ190ZXh0LWNvbG9yO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMSk7XG5cbiAgICAgICAgJi0tY291bnQge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcoJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLXRleHQtcGRwIHtcbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXRpbGUge1xuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dC1hbm5vdGF0aW9uIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS1hbm5vdGF0aW9uLXBkcCB7XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi10aWxlIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAkc3Rhci1yYXRpbmdfbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFyLXJhdGluZ19sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRzdGFyLXJhdGluZ19sYWJlbC10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgcGFkZGluZy10b3A6IGNhbGMoI3skc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0fSAqIDAuMik7XG4gICAgfVxufVxuXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggNSB7XG4gICAgICAgIC5yYXRpbmctI3skaX0ge1xuICAgICAgICAgICAgei1pbmRleDogI3skaX07XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiBub25lO1xuICAgIH1cblxuICAgIGxhYmVsIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm0tbW9iaWxlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtICtcbiAgICAgICAgICAgICAgICAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3LWZvcm07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS12aXNpYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlLnN3YXRjaC1sYXllcmVkIHtcbiAgICBmb250LXNpemU6IDAuOGVtOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlICsgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgIG1hcmdpbi10b3A6IDAuOGVtOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlOmhhcyguc3dhdGNoLW9wdGlvbi5zZWxlY3RlZCkgLm1hZ2UtZXJyb3Ige1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBsaW5lLWhlaWdodDogY2FsYyggMi44ZW0gLSA2cHggKyAwLjFlbSk7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS4xZW07XG4gIHdpZHRoOiAxMHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgICB3aWR0aDogMTFyZW07IH0gfVxuICAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbDphZnRlciB7XG4gICAgY29udGVudDogJzogJztcbiAgICBsaW5lLWhlaWdodDogY2FsYyggMi44ZW0gLSA2cHggKyAwLjFlbSk7IH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtc2VsZWN0ZWQtb3B0aW9uIHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIC8qIDEgKi8gfVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBtYXJnaW4tbGVmdDogLTAuMmVtO1xuICBtYXJnaW4tYm90dG9tOiAtMC40ZW07XG4gIG1pbi13aWR0aDogMTAwJTtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9uczpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogY2FsYyggMTAwJSAtIDEuNXJlbSAtIDEwcmVtKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKCAxMDAlIC0gMS41cmVtIC0gMTFyZW0pOyB9IH1cblxuLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIHtcbiAgZm9udC1zaXplOiAxZW07IH1cbiAgLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuLnN3YXRjaC1vcHRpb24ge1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1pbi13aWR0aDogMy4yZW07XG4gIGhlaWdodDogMi44ZW07XG4gIHBhZGRpbmc6IDAgMC4zNWVtO1xuICBtYXJnaW46IDFweCBjYWxjKCAxcHggKyAwLjJlbSkgY2FsYygxcHggKyAwLjRlbSk7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgYm9yZGVyOiAzcHggc29saWQgI2YwZjBmMDtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoIDIuOGVtIC0gNnB4ICsgMC4xZW0pO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgYm9yZGVyLWNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcywgY29sb3IgMC4zcztcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAuc3dhdGNoLW9wdGlvbjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC00cHg7XG4gICAgbGVmdDogLTRweDtcbiAgICByaWdodDogLTRweDtcbiAgICBib3R0b206IC00cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7IH1cbiAgLnN3YXRjaC1vcHRpb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3dhdGNoZXMvZGlzYWJsZWQuc3ZnKSByZ2JhKDIyMCwgMjIwLCAyMjAsIDAuNSkgY2VudGVyIG5vLXJlcGVhdDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICB3aWR0aDogY2FsYygyLjhlbSAtIDEuMmVtKTtcbiAgICBoZWlnaHQ6IGNhbGMoMi44ZW0gLSAxLjJlbSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjZlbTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuc3dhdGNoLW9wdGlvbi5zZWxlY3RlZCwgLnN3YXRjaC1vcHRpb24uYmlzLXNlbGVjdGVkIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuc3dhdGNoLW9wdGlvbi5zZWxlY3RlZDpiZWZvcmUsIC5zd2F0Y2gtb3B0aW9uLmJpcy1zZWxlY3RlZDpiZWZvcmUge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTsgfVxuICAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dCwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dCB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY29sb3I6ICM4ODg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQ6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmltYWdlOmFmdGVyLCAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmNvbG9yOmFmdGVyLCAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5pbWFnZTphZnRlciwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuY29sb3I6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAuc3dhdGNoLW9wdGlvbjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSk6aG92ZXIsIC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQ6aG92ZXIge1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNmZmY7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgIC5zd2F0Y2gtb3B0aW9uOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpOm5vdChbZGlzYWJsZWRdKTpob3ZlcjpiZWZvcmUsIC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQ6aG92ZXI6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7IH1cblxuLnN3YXRjaC1pbnB1dCB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiAxICovXG4gIGxlZnQ6IC0xMDAwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdmlzaWJpbGl0eTogaGlkZGVuOyB9XG5cbi5zd2F0Y2gtbW9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcCxcbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAtbGF5ZXJlZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbWFyZ2luOiAwO1xuICB6LWluZGV4OiA5OTk7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtc2l6ZTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWluLXdpZHRoOiAycmVtO1xuICBib3JkZXI6IDAuMXJlbSBzb2xpZCAjZGNkY2RjOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAgLmltYWdlLFxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQgLmltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogMTEwcHg7XG4gICAgaGVpZ2h0OiAxMTBweDsgfVxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIC5jb3JuZXI6YWZ0ZXIsXG4gIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAtbGF5ZXJlZCAuY29ybmVyOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcbiAgICBib3JkZXItYm90dG9tOiAwLjFyZW0gc29saWQgI2RjZGNkYztcbiAgICBib3JkZXItcmlnaHQ6IDAuMXJlbSBzb2xpZCAjZGNkY2RjO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoIC0wLjVyZW0gKyAwLjFyZW0pOyB9XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCB7XG4gIG1heC13aWR0aDogNDByZW07XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIC5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIC5tYWdlLWVycm9yIHtcbiAgICBwYWRkaW5nLXRvcDogMC44cmVtOyB9XG4gIC5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIC5zd2F0Y2gtYXR0cmlidXRlICsgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgIG1hcmdpbi10b3A6IDJyZW07IH1cblxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAubWlzc2luZy1zd2F0Y2hlcy1tb2RhbC12aXNpYmxlIC5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi5zd2F0Y2gtb3B0IHtcbiAgZm9udC1zaXplOiAwLjllbTsgfVxuICAuc3dhdGNoLW9wdCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIyMCwgMjIwLCAyMjAsIDAuNTUpIHVybCguLi9pbWFnZXMvaWNvbnMvbm90aWZpY2F0aW9uLXBhbmVsL2ljb25fbm90aWZpY2F0aW9uLW91dGxpbmUuc3ZnKSBjZW50ZXIvNjQlIG5vLXJlcGVhdDtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQudGV4dCB7XG4gICAgcGFkZGluZy1yaWdodDogMmVtOyB9XG4gICAgLnN3YXRjaC1vcHQgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydC50ZXh0OmFmdGVyIHtcbiAgICAgIGxlZnQ6IGF1dG87XG4gICAgICByaWdodDogMC4zNWVtO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLnN3YXRjaC1vcHQgLm1hZ2UtZXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1sZWZ0OiBjYWxjKDEwcmVtICsgMS41cmVtKTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc3dhdGNoLW9wdCAubWFnZS1lcnJvciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCAxMXJlbSArIDEuNXJlbSk7IH0gfVxuXG5bY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgZm9udC1zaXplOiAwLjQ1ZW07XG4gIG1pbi1oZWlnaHQ6IGNhbGMoIDEgKiAoMi44ZW0gKyA4cHgpKTtcbiAgb3BhY2l0eTogMTtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgIFtjbGFzc149J3N3YXRjaC1vcHQtJ10ge1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH0gfVxuICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkLmJhY2staW4tc3RvY2stYWxlcnQsIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdLmJhY2staW4tc3RvY2stYWxlcnQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkLmJhY2staW4tc3RvY2stYWxlcnQudGV4dCwgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF0uYmFjay1pbi1zdG9jay1hbGVydC50ZXh0IHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjb2xvcjogIzg4ODtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAgIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQuYmFjay1pbi1zdG9jay1hbGVydC50ZXh0OmJlZm9yZSwgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF0uYmFjay1pbi1zdG9jay1hbGVydC50ZXh0OmJlZm9yZSB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkLmJhY2staW4tc3RvY2stYWxlcnQuaW1hZ2U6YWZ0ZXIsIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQuYmFjay1pbi1zdG9jay1hbGVydC5jb2xvcjphZnRlciwgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF0uYmFjay1pbi1zdG9jay1hbGVydC5pbWFnZTphZnRlciwgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbltkaXNhYmxlZF0uYmFjay1pbi1zdG9jay1hbGVydC5jb2xvcjphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIFtjbGFzc149J3N3YXRjaC1vcHQtJ106ZW1wdHkge1xuICAgIG9wYWNpdHk6IDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdldGMvdmlldy5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvZ2V0LXZhbHVlLWZyb20tbGlzdC5zY3NzJztcblxuJHN3YXRjaGVzLS1jbGlja2FibGU6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2F0YWxvZyxcbiAgICBjb25maWd1cmFibGVfdGlsZV9zd2F0Y2hlcyxcbiAgICBlbmFibGVkXG4pICFkZWZhdWx0O1xuXG4vLyBLZWVwIGluIHN5bmMgd2l0aCBxdWFudGl0eSB3cmFwcGVyIGluIGJ1eWJveC5cbiRzd2F0Y2hlc19sYWJlbC13aWR0aDogMTByZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwOiAxMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19sYWJlbC1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19sYWJlbC1mb250LXNpemU6IDEuMWVtICFkZWZhdWx0O1xuLy8gS2VlcCBpbiBzeW5jIHdpZHRoIHF1YW50aXR5IHdyYXBwZXIgaW4gYnV5Ym94IGVuZC5cblxuLy8gU2NlbmFyaW8gd2l0aCBzd2F0Y2hlcyBiZWxvdyBsYWJlbCwgd2hpY2ggaXMgMTAwJSB3aWRlXG4vLyB3aXRoIHRoaXMgdmFyaWFibGUgc2V0IHRvIHRydWUgJHN3YXRjaGVzX2xhYmVsLXdpZHRoXG4vLyBhbmQgJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cCB3aWxsIGJlIG92ZXJyaWRlbiAtIGFsd2F5cyAxMDAlIHdpZHRoXG4kc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbDogZmFsc2UgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19kaXNhYmxlLXNob3ctbW9yZTogdHJ1ZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyOiAwLjRlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0OiAyLjhlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtd2lkdGg6IDMuMmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1wYWRkaW5nOiAwIDAuMzVlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXQ6IDAuMWVtICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGg6IDNweCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCBzb2xpZFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLWhvdmVyLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCBzb2xpZFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJhY2tncm91bmQgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtb3BhY2l0eTogMC42NSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC0tYmFja2luc3RvY2stYmFja2dyb3VuZDogcmdiYSgkY29sb3JfYmFja2dyb3VuZC02MDAsIDAuNTUpXG4gICAgdXJsKC4uL2ltYWdlcy9pY29ucy9ub3RpZmljYXRpb24tcGFuZWwvaWNvbl9ub3RpZmljYXRpb24tb3V0bGluZS5zdmcpXG4gICAgY2VudGVyLzY0JSBuby1yZXBlYXQgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aDogMXB4ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDogKFxuICAgICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICsgJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoXG4pICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWRcbiAgICAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1vdXRsaW5lOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGggc29saWRcbiAgICAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19yb3dzLWd1dHRlcjogJHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgKiAyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXMtLXRpbGVfZm9udC1zaXplOiAwLjQ1ZW0gIWRlZmF1bHQ7XG4vLyBUZWxscyBob3cgbWFueSByb3dzIG9mIHN3YXRjaGVzIHdpbGwgYmUgZGlzcGxheWVkIGluc2lkZSB0aWxlIGNvbXBvbmVudC5cbiRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93czogMSAhZGVmYXVsdDtcbi8vIENhbGN1bGF0ZXMgaG93IG11Y2ggc3BhY2Ugc2hvdWxkIGJlIHJlc2VydmVkIGluIHRpbGUgZm9yIHN3YXRjaGVzIHRvIHByZXZlbnQgY29udGVudCBmcm9tIGp1bXBpbmcuXG4kc3dhdGNoZXMtLXRpbGVfbWluLWhlaWdodDogY2FsYyhcbiAgICAjeyRzd2F0Y2hlcy0tdGlsZV9udW0tb2Ytcm93c30gKiAoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQgKlxuICAgICAgICAgICAgICAgIDJ9KVxuKSAhZGVmYXVsdDtcbiRzd2F0Y2hlcy0tcGRwX2ZvbnQtc2l6ZTogMC45ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXMtLWZpbHRlcnNfZm9udC1zaXplOiAwLjhlbSAhZGVmYXVsdDtcblxuLy8gVG9vbHRpcHMgZm9yIHN3YXRjaGVzXG4kc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItcmFkaXVzOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZTogMC4xcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1wYWRkaW5nOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1taW4td2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaG93OiB0cnVlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTogMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14OiA1MCUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC10ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgbWVkaWEsXG4gICAgaW1hZ2VzLFxuICAgIGltYWdlLFxuICAgIHN3YXRjaF90aHVtYlxuKSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoOiAje21hcC1nZXQoXG4gICAgICAgICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1kYXRhLFxuICAgICAgICB3aWR0aFxuICAgICl9ICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWhlaWdodDogI3ttYXAtZ2V0KFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YSxcbiAgICAgICAgaGVpZ2h0XG4gICAgKX0gIWRlZmF1bHQ7XG5cbi5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgIC8vIFRoZSBvbmx5IHNlbGVjdG9yIHdlIGhhdmUgdG8gdGVsbCB0aGF0IHN3YXRjaGVzIGFyZSBpbnNpZGUgYWZ0ZXJzZWFyY2ggbmF2aWdhdGlvbi5cbiAgICAmLnN3YXRjaC1sYXllcmVkIHtcbiAgICAgICAgZm9udC1zaXplOiAkc3dhdGNoZXMtLWZpbHRlcnNfZm9udC1zaXplO1xuICAgIH1cblxuICAgICYgKyAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogJHN3YXRjaGVzX3Jvd3MtZ3V0dGVyO1xuICAgIH1cblxuICAgICY6aGFzKC5zd2F0Y2gtb3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICAgIC5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH1cbiAgICApO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXNfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAkc3dhdGNoZXNfbGFiZWwtd2lkdGg7XG4gICAgbWFyZ2luLXJpZ2h0OiAkc3dhdGNoZXNfbGFiZWwtZ3V0dGVyO1xuXG4gICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXA7XG5cbiAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnOiAnO1xuICAgICAgICBsaW5lLWhlaWdodDogY2FsYyhcbiAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICtcbiAgICAgICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4gICAgICAgICk7XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1zZWxlY3RlZC1vcHRpb24ge1xuICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBtYXJnaW4tbGVmdDogLSN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfTtcbiAgICBtYXJnaW4tYm90dG9tOiAtI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn07XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgfVxuXG4gICAgLnN3YXRjaC1vcHQgJiB7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoXG4gICAgICAgICAgICAxMDAlIC0gI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSAtICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRofVxuICAgICAgICApO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLSAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9IC0gI3skc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBFbGVtZW50IGFkZGVkIGFzIGEgcGFyZW50IG9mIC5zd2F0Y2gtb3B0aW9uIGluIGZpbHRlcnMuXG4uc3dhdGNoLW9wdGlvbi1saW5rLWxheWVyZWQge1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG59XG5cbi5zd2F0Y2gtb3B0aW9uIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtaW4td2lkdGg6ICRzd2F0Y2hlc19zd2F0Y2gtd2lkdGg7XG4gICAgaGVpZ2h0OiAkc3dhdGNoZXNfc3dhdGNoLWhlaWdodDtcbiAgICBwYWRkaW5nOiAkc3dhdGNoZXNfc3dhdGNoLXBhZGRpbmc7XG4gICAgbWFyZ2luOiAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gY2FsYyhcbiAgICAgICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSArICN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXIgLyAyfVxuICAgICAgICApIGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9ICsgI3skc3dhdGNoZXNfc3dhdGNoLWd1dHRlcn0pO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjtcbiAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC1jb2xvcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gI3skc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCAqIDJ9ICsgI3skc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0fVxuICAgICk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgYm9yZGVyLWNvbG9yIDAuM3MsIG9wYWNpdHkgMC4zcyxcbiAgICAgICAgY29sb3IgMC4zcztcblxuICAgIEBpZiAkc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgbGVmdDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIHJpZ2h0OiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgYm90dG9tOiAtJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLW9mZnNldDtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLW91dGxpbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1cztcbiAgICAgICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuM3M7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZDogdXJsKC4uL2ltYWdlcy9pY29ucy9zd2F0Y2hlcy9kaXNhYmxlZC5zdmcpXG4gICAgICAgICAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTYwMCwgMC41KSBjZW50ZXIgbm8tcmVwZWF0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAxLjJlbSk7XG4gICAgICAgIGhlaWdodDogY2FsYygjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtIDEuMmVtKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAwLjZlbTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgICYuc2VsZWN0ZWQsXG4gICAgJi5iaXMtc2VsZWN0ZWQge1xuICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJvcmRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLW91dGxpbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmRpc2FibGVkOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCksXG4gICAgJltkaXNhYmxlZF06bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSB7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgIG9wYWNpdHk6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtb3BhY2l0eTtcbiAgICAgICAgICAgIGNvbG9yOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJvcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuaW1hZ2UsXG4gICAgICAgICYuY29sb3Ige1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pLFxuICAgICYuYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1vdXRsaW5lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLWlucHV0IHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcblxuICAgIC8vIFJlc3RvcmUgb3JpZ2luYWwgc3R5bGVzIGZyb20gTWFnZW50by5cbiAgICAvLyBJdCBwcmV2ZW50cyBrZXlib2FyZCBvbiBtb2JpbGUgdG8gYmUgc2hvd24gYWZ0ZXIgc3dhdGNoIGlzIGNsaWNrZWRcbiAgICBsZWZ0OiAtMTAwMHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG59XG5cbi5zd2F0Y2gtbW9yZSB7XG4gICAgQGlmICRzd2F0Y2hlc19kaXNhYmxlLXNob3ctbW9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLFxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBtYXJnaW46ICRzd2F0Y2hlc190b29sdGlwLW1hcmdpbjtcbiAgICB6LWluZGV4OiA5OTk7XG4gICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItcmFkaXVzO1xuICAgIGNvbG9yOiAkc3dhdGNoZXNfdG9vbHRpcC1jb2xvcjtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlc190b29sdGlwLWZvbnQtc2l6ZTtcbiAgICBmb250LXdlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC13ZWlnaHQ7XG4gICAgcGFkZGluZzogJHN3YXRjaGVzX3Rvb2x0aXAtcGFkZGluZztcbiAgICB0ZXh0LWFsaWduOiAkc3dhdGNoZXNfdG9vbHRpcC10ZXh0LWFsaWduO1xuICAgIG1pbi13aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtbWluLXdpZHRoO1xuXG4gICAgQGlmIChcbiAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgIT1cbiAgICAgICAgICAgIDAgYW5kXG4gICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgJ25vbmUnXG4gICAgKSB7XG4gICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemVcbiAgICAgICAgICAgIHNvbGlkXG4gICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItY29sb3I7XG4gICAgfVxuXG4gICAgLmltYWdlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB3aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLXdpZHRoICsgJ3B4JztcbiAgICAgICAgaGVpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtaGVpZ2h0ICsgJ3B4JztcbiAgICB9XG5cbiAgICAuY29ybmVyIHtcbiAgICAgICAgQGlmICgkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaG93KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplO1xuICAgICAgICAgICAgICAgIGhlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3dhdGNoZXNfdG9vbHRpcC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIGxlZnQ6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LW9mZnNldC14O1xuICAgICAgICAgICAgICAgIEBpZiAodW5pdCgkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteCkgPT0gJyUnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteH0pXG4gICAgICAgICAgICAgICAgICAgICAgICByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgIT1cbiAgICAgICAgICAgICAgICAgICAgICAgIDAgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZSAhPVxuICAgICAgICAgICAgICAgICAgICAgICAgJ25vbmUnXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2xpZFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplXG4gICAgICAgICAgICAgICAgICAgICAgICBzb2xpZFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZVxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgLSN7JHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZSAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgMn0gK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemV9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemUgLyAyfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwge1xuICAgIG1heC13aWR0aDogNDByZW07XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAubWFnZS1lcnJvciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwLjhyZW07XG4gICAgfVxuXG4gICAgLnN3YXRjaC1hdHRyaWJ1dGUgKyAuc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgfVxufVxuXG4ubWlzc2luZy1zd2F0Y2hlcy1tb2RhbC12aXNpYmxlIHtcbiAgICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgICAgICAgQG1lZGlhIChob3Zlcjpub25lKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIENvbnRhaW5lciBzZWxlY3RvciBmb3Igc3dhdGNoZXMgb24gUERQXG4uc3dhdGNoLW9wdCB7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXMtLXBkcF9mb250LXNpemU7XG5cbiAgICAuc3dhdGNoLW9wdGlvbiB7XG4gICAgICAgICYuYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS1iYWNraW5zdG9jay1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYudGV4dCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3N3YXRjaC1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0J1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFNlbGVjdG9yIGZvciBlcnJvciBjb250YWluZXIgd2hlbiBzd2F0Y2hlcyBhcmUgcmVxdWlyZWQgYnV0IG5vdCBzZWxlY3RlZC5cbiAgICAubWFnZS1lcnJvciB7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGNhbGMoI3skc3dhdGNoZXNfbGFiZWwtd2lkdGh9ICsgI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSk7XG5cbiAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKFxuICAgICAgICAgICAgICAgICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cH0gKyAjeyRzd2F0Y2hlc19sYWJlbC1ndXR0ZXJ9XG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQ29udGFpbmVyIHNlbGVjdG9yIGZvciBzd2F0Y2hlcyBpbiB0aWxlIGFuZCBkYWlseSBkZWFsIHRlYXNlci5cbltjbGFzc149J3N3YXRjaC1vcHQtJ10ge1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS10aWxlX2ZvbnQtc2l6ZTtcbiAgICBtaW4taGVpZ2h0OiAkc3dhdGNoZXMtLXRpbGVfbWluLWhlaWdodDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIEBpZiAkc3dhdGNoZXMtLWNsaWNrYWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc3dhdGNoLW9wdGlvbiB7XG4gICAgICAgICYuZGlzYWJsZWQuYmFjay1pbi1zdG9jay1hbGVydCxcbiAgICAgICAgJltkaXNhYmxlZF0uYmFjay1pbi1zdG9jay1hbGVydCB7XG4gICAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICAgICAmLnRleHQge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtb3BhY2l0eTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmltYWdlLFxuICAgICAgICAgICAgJi5jb2xvciB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjplbXB0eSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLXRvcGJhciB7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBkaXNwbGF5OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtdG9wYmFyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICB6LWluZGV4OiAzMDI7IH0gfVxuICAuY3MtdG9wYmFyX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgaGVpZ2h0OiAyLjdyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXRvcGJhcl9fd3JhcHBlciB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9IH1cbiAgLmNzLXRvcGJhcl9faXRlbSB7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLXVzcHMge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgICAgLmNzLXRvcGJhcl9faXRlbS0tdXNwcyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgLmNzLXRvcGJhcl9faXRlbS0taG90bGluZSB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleDogMTtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLWxhbmd1YWdlIHtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLWxpbmtzIC5jcy10b3BiYXJfX2xpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuY3MtdG9wYmFyX19pdGVtLS1saW5rcyAuY3MtdG9wYmFyX19saW5rcyBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtOyB9XG4gICAgICAuY3MtdG9wYmFyX19pdGVtLS1saW5rcyAuY3MtdG9wYmFyX19saW5rcyBhOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbSAwLjVyZW0gMHJlbTsgfVxuICAgICAgLmNzLXRvcGJhcl9faXRlbS0tbGlua3MgLmNzLXRvcGJhcl9fbGlua3MgYTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMHJlbSAwLjVyZW0gMnJlbTsgfVxuICAuY3MtdG9wYmFyX19saXN0LFxuICAuY3MtdG9wYmFyX19pdGVtID4gdWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtdG9wYmFyX19saXN0LWl0ZW0ge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy10b3BiYXJfX2xpc3QtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDEuM3JlbTsgfVxuICAgIC5jcy10b3BiYXJfX2xpc3QtaXRlbTpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMS4zcmVtOyB9XG4gICAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW06bm90KDpsYXN0LWNoaWxkKTpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1yaWdodDogMC4ycmVtIHNvbGlkICNmZmY7IH1cbiAgLmNzLXRvcGJhcl9fdGV4dCB7XG4gICAgY29sb3I6ICMyMTIxMjE7IH1cbiAgLmNzLXRvcGJhcl9fbGluayB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07IH1cbiAgICAuY3MtdG9wYmFyX19saW5rLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdG9wYmFyX19saW5rOmhvdmVyLCAuY3MtdG9wYmFyX19saW5rOmZvY3VzLCAuY3MtdG9wYmFyX19saW5rOmFjdGl2ZSwgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtdG9wYmFyX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLXRvcGJhcl9faG90bGluZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy10b3BiYXJfX3Bob25lLW51bWJlciB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTsgfVxuICAgIC5jcy10b3BiYXJfX3Bob25lLW51bWJlciwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6aG92ZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjpmb2N1cywgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOmFjdGl2ZSwgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOnZpc2l0ZWQ6aG92ZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy10b3BiYXIgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIgPiAubGltaXRlci5jcy1saW1pdGVyIC5jb250cm9sLmNzLWxpbWl0ZXJfX2NvbnRyb2wge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuXG4uY3MtY29udGFpbmVyLS10b3AtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiR0b3BiYXJfYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kdG9wYmFyX2hlaWdodDogMi43cmVtICFkZWZhdWx0O1xuXG4kdG9wYmFyX2l0ZW0tZm9udC1zaXplOiAxLjZyZW0gIWRlZmF1bHQ7XG4kdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcbiR0b3BiYXJfZW5hYmxlLWJvcmRlcnM6IHRydWUgIWRlZmF1bHQ7XG4kdG9wYmFyX2l0ZW0tYm9yZGVyOiAwLjJyZW0gc29saWQgJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvcjogJGNvbG9yX2JsYWNrICFkZWZhdWx0O1xuXG4kdG9wYmFyX2xpbmstY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiR0b3BiYXJfbGluay1ob3Zlci1kZWNvcmF0aW9uOiAkdG9wYmFyX2xpbmstZGVjb3JhdGlvbiAhZGVmYXVsdDtcblxuJGNvbnRhaW5lcl9iYWNrZ3JvdW5kLXRvcC1iYXI6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcblxuLiN7JG5zfXRvcGJhciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBiYWNrZ3JvdW5kOiAkdG9wYmFyX2JhY2tncm91bmQ7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBmb250LXNpemU6ICR0b3BiYXJfaXRlbS1mb250LXNpemU7XG4gICAgcGFkZGluZy10b3A6IDAuNXJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgei1pbmRleDogMzAyO1xuICAgIH1cblxuICAgICZfX3dyYXBwZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXJfaGVpZ2h0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGNvbG9yOiAkdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleDogMCAwIGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGhlaWdodDogMTAwJTtcblxuICAgICAgICAmLS11c3BzIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1ob3RsaW5lIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGFuZ3VhZ2Uge1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlua3Mge1xuICAgICAgICAgICAgLmNzLXRvcGJhcl9fbGlua3Mge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICR0b3BiYXJfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYTpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW0gMC41cmVtIDByZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMHJlbSAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0LFxuICAgICZfX2l0ZW0+dWwge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2xpc3QtaXRlbSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGhlaWdodDogJHRvcGJhcl9oZWlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMS4zcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkdG9wYmFyX2VuYWJsZS1ib3JkZXJzKSB7XG4gICAgICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMS4zcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJHRvcGJhcl9pdGVtLWJvcmRlcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgY29sb3I6ICR0b3BiYXJfaXRlbS10ZXh0LWNvbG9yO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKCRjb2xvcjogJHRvcGJhcl9saW5rLWNvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkdG9wYmFyX2xpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAkZGVjb3JhdGlvbjogJHRvcGJhcl9saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJHRvcGJhcl9saW5rLWhvdmVyLWRlY29yYXRpb24gKTtcblxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTtcbiAgICB9XG5cbiAgICAmX19ob3RsaW5lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19waG9uZS1udW1iZXIge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKCRjb2xvcjogJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJHRvcGJhcl9pdGVtLXBob25lX251bWJlci1jb2xvciApO1xuXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC45cmVtO1xuICAgIH1cblxuICAgIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyPi5saW1pdGVyLmNzLWxpbWl0ZXIgLmNvbnRyb2wuY3MtbGltaXRlcl9fY29udHJvbCB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLXRvcC1iYXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29udGFpbmVyX2JhY2tncm91bmQtdG9wLWJhcjtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuaDEge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oMiB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDIuNnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmgzIHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDQge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNSB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDEuMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmEsIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjN2U1N2MyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuYTpob3ZlciwgYTpmb2N1cywgYTphY3RpdmUsIGE6dmlzaXRlZDpob3ZlciwgYTp2aXNpdGVkOmZvY3VzIHtcbiAgY29sb3I6ICM0ZDJjOTE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG51bCxcbm9sIHtcbiAgbWFyZ2luOiAwIDAgMi41cmVtO1xuICBwYWRkaW5nOiAwIDAgMCA0cmVtOyB9XG4gIHVsID4gbGksXG4gIG9sID4gbGkge1xuICAgIG1hcmdpbjogMCAwIDFyZW07IH1cblxuYm9keSB7XG4gIGNvbG9yOiAjNDU1YTY0OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbmgxIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMSk7XG59XG5cbmgyIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMik7XG59XG5cbmgzIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtMyk7XG59XG5cbmg0IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNCk7XG59XG5cbmg1IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNSk7XG59XG5cbmg2IHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb250LXNpemVfaGVhZGxpbmUtNik7XG59XG5cbmEge1xuICAgIEBpbmNsdWRlIGxpbmsoKTtcbn1cblxudWwsXG5vbCB7XG4gICAgQGluY2x1ZGUgbGlzdCgpO1xuXG4gICAgPmxpIHtcbiAgICAgICAgQGluY2x1ZGUgbGlzdC1pdGVtKCk7XG4gICAgfVxufVxuXG5ib2R5IHtcbiAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudCxcbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX292ZXJsYXksXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19ncmFkaWVudCxcbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX29wdGltaXplci1jb250YWluZXIge1xuICB6LWluZGV4OiAxOyB9XG5cbi5jcy1pbWFnZS10ZWFzZXIgW2RhdGEtdmlkZW8tdGVhc2VyXSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB6LWluZGV4OiAxOyB9XG4gIC5jcy1pbWFnZS10ZWFzZXIgW2RhdGEtdmlkZW8tdGVhc2VyXTplbXB0eSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtaW1hZ2UtdGVhc2VyIFtpZF49J3ZpZGVvLXRlYXNlciddIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogNTAlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHZ0X2Rpc2FibGUtcG9pbnRlci1ldmVudHM6IHRydWUgIWRlZmF1bHQ7XG5cbi4jeyRuc31pbWFnZS10ZWFzZXIge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIge1xuICAgICAgICAjeyRyb290fV9fcGljdHVyZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IHRleHQtY29udGVudCBhbmQgb3ZlcmxheXMgb3ZlciB0aGUgdmlkZW9cbiAgICAgICAgLy8gSWYgYWRkZWQgb24gY29udGVudC13cmFwcGVyIHdpbGwgcHJldmVudCBpbnRlcmFjdGlvbiB3aXRoIHZpZGVvXG4gICAgICAgICN7JHJvb3R9X19jb250ZW50LFxuICAgICAgICAjeyRyb290fV9fb3ZlcmxheSxcbiAgICAgICAgI3skcm9vdH1fX2dyYWRpZW50LFxuICAgICAgICAjeyRyb290fV9fb3B0aW1pemVyLWNvbnRhaW5lciB7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmVuZGVyIHZpZGVvIHRlYXNlciBvdmVyIHRoZSBpbWFnZVxuICAgIFtkYXRhLXZpZGVvLXRlYXNlcl0ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICAvLyBIaWRlIHZpZGVvIHBsYWNlaG9sZGVyIGlmIHZpZGVvIGlzIG5vdCByZW5kZXJlZFxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB2aWRlbyBkb2VzIG5vdCBmaXQgaW1hZ2UgYXNwZWN0IHJhdGlvLCBpdCB3aWxsIGNlbnRlciBpdHNlbGYgaW4gdGhlIGNvbnRhaW5lclxuICAgIFtpZF49J3ZpZGVvLXRlYXNlciddIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG5cbiAgICAgICAgQGlmICR2dF9kaXNhYmxlLXBvaW50ZXItZXZlbnRzIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmJvZHkge1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiAjRTNFM0UzO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG5Aa2V5ZnJhbWVzIHNjcm9sbCB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cbiAgMTAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTI1MHB4ICogNykpOyB9IH1cblxuLnNsaWRlciB7XG4gIGJhY2tncm91bmQ6ICNlY2VmZjE7XG4gIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjEyNSk7XG4gIGhlaWdodDogMTQwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTc0cmVtOyB9XG4gIC5zbGlkZXI6OmJlZm9yZSwgLnNsaWRlcjo6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgd2hpdGUgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBoZWlnaHQ6IDE0MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMjAwcHg7XG4gICAgei1pbmRleDogMjsgfVxuICAuc2xpZGVyOjphZnRlciB7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWigxODBkZWcpOyB9XG4gIC5zbGlkZXI6OmJlZm9yZSB7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7IH1cbiAgLnNsaWRlciAuc2xpZGUtdHJhY2sge1xuICAgIGFuaW1hdGlvbjogc2Nyb2xsIDQwcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogY2FsYygyNTZweCAqIDE0KTsgfVxuICAuc2xpZGVyIC5zbGlkZSB7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgcGFkZGluZzogMTBweDsgfVxuXG4uY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMge1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIC8qIGZvciBJbnRlcm5ldCBFeHBsb3JlciwgRWRnZSAqL1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC8qIGZvciBGaXJlZm94ICovXG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IGJ1dHRvbiN1cGRhdGUtY2FydC1idXR0b24sXG4uY2hlY2tvdXQtY2FydC1pbmRleCBidXR0b24jZW1wdHlfY2FydF9idXR0b24ge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5wYWdlLXdpdGgtZmlsdGVyIC5mYXN0LWRlbGl2ZXJ5LWJveCB7XG4gICAgZGlzcGxheTogbm9uZTsgfSB9XG5cbi5jcy1saW1pdGVyX19jb250cm9sIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbmxpLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pdGVtLS1jb21wYXJlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAuY29sLmNvbC1wcmljZTo6YmVmb3JlIHtcbiAgY29udGVudDogXCJqdcW8IG9kIFwiOyB9XG5cbi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzLXdyYXBwZXIgPiAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyA+IC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGUgPiAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3Byb2R1Y3QtdGlsZSA+IC5jcy1wcm9kdWN0LXRpbGUge1xuICBtaW4taGVpZ2h0OiAzMDBweDsgfVxuXG4uY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb24gPiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuICB0b3A6IDEwMHB4ICFpbXBvcnRhbnQ7IH1cblxuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uID4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMSAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzIuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gIHRvcDogMHB4ICFpbXBvcnRhbnQ7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5ib2R5IHtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblx0YmFja2dyb3VuZDogI0UzRTNFMztcblx0ZGlzcGxheTogZmxleDtcblx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbkBtaXhpbiB3aGl0ZS1ncmFkaWVudCB7XG5cdGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAxKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTtcbn1cblxuJGFuaW1hdGlvblNwZWVkOiA0MHM7XG5cbi8vIEFuaW1hdGlvblxuQGtleWZyYW1lcyBzY3JvbGwge1xuXHQwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuXHR9XG5cblx0MTAwJSB7XG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKGNhbGMoLTI1MHB4ICogNykpXG5cdH1cbn1cblxuXG4vLyBTdHlsaW5nXG4uc2xpZGVyIHtcblx0YmFja2dyb3VuZDogI2VjZWZmMTtcblx0Ym94LXNoYWRvdzogMCAxMHB4IDIwcHggLTVweCByZ2JhKDAsIDAsIDAsIC4xMjUpO1xuXHRoZWlnaHQ6IDE0MHB4O1xuXHRtYXJnaW46IGF1dG87XG5cdG92ZXJmbG93OiBoaWRkZW47XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0d2lkdGg6IDE3NHJlbTtcblxuXHQmOjpiZWZvcmUsXG5cdCY6OmFmdGVyIHtcblx0XHRAaW5jbHVkZSB3aGl0ZS1ncmFkaWVudDtcblx0XHRjb250ZW50OiBcIlwiO1xuXHRcdGhlaWdodDogMTQwcHg7XG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHdpZHRoOiAyMDBweDtcblx0XHR6LWluZGV4OiAyO1xuXHR9XG5cblx0Jjo6YWZ0ZXIge1xuXHRcdHJpZ2h0OiAwO1xuXHRcdHRvcDogMDtcblx0XHR0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKTtcblx0fVxuXG5cdCY6OmJlZm9yZSB7XG5cdFx0bGVmdDogMDtcblx0XHR0b3A6IDA7XG5cdH1cblxuXHQuc2xpZGUtdHJhY2sge1xuXHRcdGFuaW1hdGlvbjogc2Nyb2xsICRhbmltYXRpb25TcGVlZCBsaW5lYXIgaW5maW5pdGU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHR3aWR0aDogY2FsYygyNTZweCAqIDE0KTtcblx0fVxuXG5cdC5zbGlkZSB7XG5cdFx0aGVpZ2h0OiAxMDBweDtcblx0XHR3aWR0aDogMjUwcHg7XG5cdFx0cGFkZGluZzogMTBweDtcblx0fVxufVxuXG4vLyBTY3JvbGxiYXIgaGlkZGVuIG9uIHNsaWRlcnNcbi5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG5cdC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcblx0XHQtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG5cdFx0LyogZm9yIEludGVybmV0IEV4cGxvcmVyLCBFZGdlICovXG5cdFx0c2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXHRcdC8qIGZvciBGaXJlZm94ICovXG5cdFx0b3ZlcmZsb3cteTogc2Nyb2xsO1xuXG5cdFx0Jjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuXG4vLyBDaGVja291dCBjYXJ0IGhpZGRlbiBidXR0b25cbi5jaGVja291dC1jYXJ0LWluZGV4IHtcblxuXHRidXR0b24jdXBkYXRlLWNhcnQtYnV0dG9uLFxuXHRidXR0b24jZW1wdHlfY2FydF9idXR0b24ge1xuXHRcdGRpc3BsYXk6IG5vbmU7XG5cdH1cbn1cblxuXG4vL2Zhc3QgZGVsaXZlcnkgYm94IGhpZGRlbiBvbiBwYWdlIHdpdGggZmlsdGVyXG4ucGFnZS13aXRoLWZpbHRlciB7XG5cdC5mYXN0LWRlbGl2ZXJ5LWJveCB7XG5cdFx0QGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG5cdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdH1cblx0fVxufVxuXG4vL2xpbWl0ZXJfX3BhZ2luYXRpb24gaGlkZGVuIG9uIHBhZ2Ugd2l0aCBmaWx0ZXJcbi5jcy1saW1pdGVyX19jb250cm9sIHtcblx0ZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vL2NvbXBhcmUgcHJvZHVjdCBoaWRkZW4gb24gcHJvZHVjdCB0aWxlXG5saS5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbS5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbS0tY29tcGFyZSB7XG5cdGRpc3BsYXk6IG5vbmU7XG59XG5cbi5jcy1jaGVja291dCAudGFibGUtY2hlY2tvdXQtc2hpcHBpbmctbWV0aG9kIC5jb2wuY29sLXByaWNlOjpiZWZvcmUge1xuXHRjb250ZW50OiBcImp1xbwgb2QgXCI7XG59XG5cbi8vIGZpeCBmb3IgaGVpZ2h0IG9mIHRpbGUgb24gc2xpZGVyc1xuLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMtd3JhcHBlcj4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcz4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlPi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fcHJvZHVjdC10aWxlPi5jcy1wcm9kdWN0LXRpbGUge1xuXHRtaW4taGVpZ2h0OiAzMDBweDtcbn1cblxuXG4vLyBtb2JpbGUgbWVudSBoZWlnaHRzIGZpeFxuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uPi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG5cdHRvcDogMTAwcHggIWltcG9ydGFudDtcbn1cblxuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uPi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8yLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuXHR0b3A6IDBweCAhaW1wb3J0YW50O1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAuY3MtYnV5Ym94X19wcmljZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC50YWJsZS13cmFwcGVyLmdyb3VwZWQsXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCB7XG4gIGJhY2tncm91bmQ6ICNlZGVmZjE7XG4gIHBhZGRpbmc6IDJyZW0gMS41cmVtOyB9XG4gIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAudGFibGUtd3JhcHBlci5ncm91cGVkIC5hdmFpbGFibGUtY291bnQtbm90aWNlLFxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSB7XG4gICAgbWF4LXdpZHRoOiAxMjhyZW07XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSBoMyxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSBoMyB7XG4gICAgICBmb250LXNpemU6IDIuOXJlbTtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAudGFibGUtd3JhcHBlci5ncm91cGVkIC5hdmFpbGFibGUtY291bnQtbm90aWNlIGgzIC5jb3VudGVyLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC50YWJsZS13cmFwcGVyLmdyb3VwZWQgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UgaDMgLmNvdW50ZXIge1xuICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQsXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCB7XG4gIG1heC13aWR0aDogMTI4cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIHRhYmxlLWxheW91dDogZml4ZWQ7XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7IH1cbiAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgdGhlYWQgdHIgLmNvbC5pdGVtLFxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCB0aGVhZCB0ciAuY29sLml0ZW0ge1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QsXG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3Qge1xuICAgIG1pbi1oZWlnaHQ6IDc1cHg7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0LFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgPiB0ZCxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0ID4gdGQge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICBib3JkZXItYm90dG9tOiB1bnNldCAhaW1wb3J0YW50OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0ID4gdGQsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgPiB0ZCB7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UsXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2Uge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBwYWRkaW5nLXRvcDogMHB4OyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAuYm94LXRpZXItcHJpY2UsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAuYm94LXRpZXItcHJpY2Uge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5wcmljZXMtdGllci5pdGVtcyxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5wcmljZXMtdGllci5pdGVtcyB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5wcmljZXMtdGllci5pdGVtcyA+IC5pdGVtLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLnByaWNlcy10aWVyLml0ZW1zID4gLml0ZW0ge1xuICAgICAgICBtYXJnaW46IDBweDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLmJ0bi1saW5rLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLmJ0bi1saW5rIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0sXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBib3JkZXI6IHVuc2V0OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0ge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gKixcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtICoge1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtaW4td2lkdGg6IDM4MHB4O1xuICAgICAgICBtYXgtd2lkdGg6IDM4MHB4OyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTsgfSB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnByb2R1Y3QtaXRlbS1uYW1lLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnRleHQtY29udGVudF9fbmFtZSxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAudGV4dC1jb250ZW50X19uYW1lIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAudGV4dC1jb250ZW50X19pbWcsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnRleHQtY29udGVudF9faW1nIHtcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIC52YWx1ZSxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIC52YWx1ZSB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWRlZmYxO1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciAuc2FsZS1iYWRnZSxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIgLnNhbGUtYmFkZ2Uge1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmUxNjQ0O1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAwLjJyZW07XG4gICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5vbW5pYnVzLXdyYXBwZXIgPiBzcGFuLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAub21uaWJ1cy13cmFwcGVyID4gc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICNhOGIxYjc7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCB7XG4gICAgICAgICAgb3JkZXI6IDk7XG4gICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmUxNjQ0OyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5LFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkge1xuICAgICAgcGFkZGluZy10b3A6IDFyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHksXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkge1xuICAgICAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2ssXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lcixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIC5zYWxlLWJhZGdlLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIC5zYWxlLWJhZGdlIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZlMTY0NDtcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMC4ycmVtO1xuICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50LFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmljb24sXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5pY29uIHtcbiAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaWNvbi1oZWxwOjpiZWZvcmUsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5pY29uLWhlbHA6OmJlZm9yZSB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICc/JztcbiAgICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaGludF9fY29udGVudCxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmhpbnRfX2NvbnRlbnQge1xuICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIHJpZ2h0OiAtMC4yNXJlbTtcbiAgICAgICAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgICAgIG1pbi13aWR0aDogMjU4cHg7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmhpbnRfX2NvbnRlbnQ6OmFmdGVyLFxuICAgICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5oaW50X19jb250ZW50OjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogLTE0cHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDdweDtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludDpob3ZlciAuaGludF9fY29udGVudCxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQ6aG92ZXIgLmhpbnRfX2NvbnRlbnQge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5vbW5pYnVzLXdyYXBwZXIgPiBzcGFuLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5vbW5pYnVzLXdyYXBwZXIgPiBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogI2E4YjFiNzsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCB7XG4gICAgICAgICAgb3JkZXI6IDk7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSB7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmUxNjQ0OyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2ssXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2ssXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfSB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5sYWJlbCxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLmxhYmVsIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWRlZmYxO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXI6aG92ZXIgYnV0dG9uLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyOmhvdmVyIGJ1dHRvbiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTFhMDk5OyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgLmlucHV0LXRleHQsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgLmlucHV0LXRleHQge1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0OyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgYnV0dG9uLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIGJ1dHRvbiB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgYnV0dG9uIHNwYW4sXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciBidXR0b24gc3BhbiB7XG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyICosXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgKiB7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDsgfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHksXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNvbnRyb2wucXR5LFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY29udHJvbC5xdHkge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWRlZmYxO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNvbnRyb2wucXR5ID4gZm9ybSxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNvbnRyb2wucXR5ID4gZm9ybSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICAgICAgICBtaW4td2lkdGg6IDI1cHg7XG4gICAgICAgICAgbWF4LXdpZHRoOiA3NXB4O1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW4sXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3BhbiB7XG4gICAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuOmhvdmVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3Bhbjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuOmhvdmVyICosXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW46aG92ZXIgKiB7XG4gICAgICAgICAgICAgIGZpbGw6ICM0ZDJjOTE7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmFkZHRvY2FydCxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmFkZHRvY2FydCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmFkZHRvY2FydDpob3ZlcixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuYWRkdG9jYXJ0OmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0Lm91dC1vZi1zdG9jayAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94LFxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0Lm91dC1vZi1zdG9jayAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5wYWdlLXByb2R1Y3QtZ3JvdXBlZHtcbiAgICAuY3MtYnV5Ym94X19wcmljZXtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4ucGFnZS1wcm9kdWN0LWdyb3VwZWQsXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuXG4gICAgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG5cbiAgICAgICAgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2Uge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi45cmVtO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG5cbiAgICAgICAgICAgICAgICAuY291bnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRhYmxlLmdyb3VwZWQge1xuICAgICAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIC8vYWRkXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuXG4gICAgICAgIHRoZWFkIHtcbiAgICAgICAgICAgIHRyIHtcbiAgICAgICAgICAgICAgICAvLyBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgLmNvbC5pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFzc29jaWF0ZWQtcHJvZHVjdCB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA3NXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG5cbiAgICAgICAgICAgIC8vYWRkIG1vYmlsZVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY+dGQge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5yb3ctdGllci1wcmljZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwcHg7XG5cbiAgICAgICAgICAgICAgICAuYm94LXRpZXItcHJpY2V7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJpY2VzLXRpZXIuaXRlbXMge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcmljZXMtdGllci5pdGVtcz4uaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuYnRuLWxpbmt7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLml0ZW0ge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzODBweDtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzODBweDtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtaW4td2lkdGg6IDI5NXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAudGV4dC1jb250ZW50X19uYW1le1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnRleHQtY29udGVudF9faW1ne1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC52YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zYWxlLWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zYWxlLWJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZlMTY0NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMC4ycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAub21uaWJ1cy13cmFwcGVyPnNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiA5O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmUxNjQ0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5ib3gtcHJpY2UtcXR5e1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zYWxlLWJhZGdlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDJweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zYWxlLWJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZlMTY0NDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMC4ycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmhpbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmljb24taGVscHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc/JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oaW50X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogLTAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMTBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1OHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwwLDAsMC4yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogLTE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oaW50X19jb250ZW50e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAub21uaWJ1cy13cmFwcGVyPnNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiA5O1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZTE2NDQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hbXhub3RpZi1ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC5xdHkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG5cbiAgICAgICAgICAgICAgICAuY29udHJvbC5xdHkge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAvL2FkZCBmbGV4XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb250cm9sLnF0eT5mb3JtIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgICAgICAgICAgICAgICAgIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDc1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJGNvbG9yX3ByaW1hcnktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5hZGR0b2NhcnQge1xuICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lIGVhc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcHJpbWFyeS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYXNzb2NpYXRlZC1wcm9kdWN0Lm91dC1vZi1zdG9jayB7XG4gICAgICAgICAgICAuYm94LXByaWNlLXF0eSB7XG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAuYXNzb2NpYXRlZC1wcm9kdWN0Lm91dC1vZi1zdG9jayB7XG4gICAgICAgIC8vICAgICAuY29sLml0ZW0ge1xuICAgICAgICAvLyAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAvLyAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAvLyAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIC5hbXhub3RpZi1ibG9jayB7XG4gICAgICAgICAgICAgICAgLy8gICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgLy8gICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgLy8gICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgLy8gICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgLy8gICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgLy8gICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAvLyAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgLy8gICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICAgICAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcblxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDA7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgLy8gbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBtaW4td2lkdGg6IDE1MHB4O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYm94LXNoYWRvdzogdW5zZXQ7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgbWluLXdpZHRoOiB1bnNldDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAgICAgfVxuICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gfVxuXG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tcHJvZHVjdC1mb3JtIC5hdmFpbGFibGUtY291bnQtbm90aWNlIGgzIHtcbiAgZm9udC1zaXplOiAyLjlyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBjb2xvcjogIzQ1NWE2NDsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLXByb2R1Y3QtZm9ybSAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSBoMyAuY291bnRlciB7XG4gICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAudGV4dC1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLXdpZHRoOiAzMDBweDsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC50ZXh0LWNvbnRlbnQgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICBmb250LXNpemU6IDJyZW07IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAudGV4dC1jb250ZW50IC5wcm9kdWN0LXNrdSB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICBtYXJnaW46IDAgMXJlbTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICB3aWR0aDogYXV0bzsgfSB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnByb2R1Y3QtYXR0cmlidXRlIC5sYWJlbCB7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAucHJvZHVjdC1hdHRyaWJ1dGUgLnZhbHVlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGJhY2tncm91bmQ6ICNlZGVmZjE7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgZm9udC1zaXplOiAxLjdyZW07IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAucHJpY2UgPiAucHJvZHVjdC1pdGVtLXByaWNlID4gLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIHtcbiAgbWFyZ2luOiAwIDFyZW07XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnByaWNlID4gLnByb2R1Y3QtaXRlbS1wcmljZSA+IC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2Utd3JhcHBlciA+IC5wcmljZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgcGFkZGluZzogMnJlbSAwOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2VkZWZmMTtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7IH0gfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtcXR5LWluY3JlbWVudCAqIHtcbiAgICBib3JkZXI6IG5vbmU7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLWFkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICBib3JkZXItcmFkaXVzOiAxMDBweDsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fd3JhcHBlciAudG9jYXJ0LnByaW1hcnkuY3MtYWRkdG9jYXJ0X19idXR0b24uY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgYm9yZGVyOiB1bnNldDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLWFkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIC50b2NhcnQucHJpbWFyeS5jcy1hZGR0b2NhcnRfX2J1dHRvbi5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b24gLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgaGVpZ2h0OiAycmVtOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIgLnRvY2FydC5wcmltYXJ5LmNzLWFkZHRvY2FydF9fYnV0dG9uLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdW5zZXQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fd3JhcHBlciAudG9jYXJ0LnByaW1hcnkuY3MtYWRkdG9jYXJ0X19idXR0b24uY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVuc2V0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIgLnRvY2FydC5wcmltYXJ5LmNzLWFkZHRvY2FydF9fYnV0dG9uLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTEgIWltcG9ydGFudDsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgcGFkZGluZzogMXJlbSAwO1xuICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5ib3gtdGllci1wcmljZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5wcmljZXMtdGllci5pdGVtcyB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5wcmljZXMtdGllci5pdGVtcyA+IC5pdGVtIHtcbiAgICBtYXJnaW46IDFweCAwcHg7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IHVuc2V0OyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAqIHtcbiAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMzgwcHg7XG4gICAgbWF4LXdpZHRoOiAzODBweDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC50ZXh0LWNvbnRlbnRfX25hbWUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnRleHQtY29udGVudF9faW1nIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgIG1hcmdpbjogMCAxcmVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIC52YWx1ZSB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgYmFja2dyb3VuZDogI2VkZWZmMTtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgIGZvbnQtc2l6ZTogMS43cmVtOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSB7XG4gIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkge1xuICAgICAgbWluLXdpZHRoOiAzMzNweDsgfSB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tdG9wOiA2cHg7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIgLnNhbGUtYmFkZ2Uge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICNmZTE2NDQ7XG4gICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAwLjJyZW07XG4gICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuMjVyZW07XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmljb24ge1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5pY29uLWhlbHA6OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJz8nO1xuICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaGludF9fY29udGVudCB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgcmlnaHQ6IC0wLjI1cmVtO1xuICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMTBweCk7XG4gICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgIG1pbi13aWR0aDogMjU4cHg7XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggMCByZ2JhKDAsIDAsIDAsIDAuMik7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5oaW50X19jb250ZW50OjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAtMTRweDtcbiAgICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDdweDtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50OmhvdmVyIC5oaW50X19jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAub21uaWJ1cy13cmFwcGVyID4gc3BhbiB7XG4gICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCB7XG4gICAgICBvcmRlcjogOTtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2Uge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICBjb2xvcjogI2ZlMTY0NDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMS41cmVtOyB9IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5sYWJlbCB7XG4gICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZGVmZjE7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lcjpob3ZlciBidXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTFhMDk5OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgIGJveC1zaGFkb3c6IHVuc2V0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIGJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgYnV0dG9uIHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAqIHtcbiAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICBtaW4td2lkdGg6IHVuc2V0OyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYm9yZGVyOiB1bnNldDtcbiAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY29udHJvbC5xdHkge1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VkZWZmMTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY29udHJvbC5xdHkgPiBmb3JtIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCB7XG4gICAgICAgIG1pbi13aWR0aDogMjVweDtcbiAgICAgICAgbWF4LXdpZHRoOiA3NXB4O1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW4ge1xuICAgICAgICBib3JkZXI6IG5vbmU7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW46aG92ZXIge1xuICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW46aG92ZXIgKiB7XG4gICAgICAgICAgICBmaWxsOiAjNGQyYzkxOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5hZGR0b2NhcnQge1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmFkZHRvY2FydDpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWZpZWxkc2V0IHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1wcm9kdWN0LWZvcm0ge1xuICAgICAgICAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSB7XG4gICAgICAgICAgICBoMyB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAyLjlyZW07XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgY29sb3I6ICM0NTVhNjQ7XG5cbiAgICAgICAgICAgICAgICAuY291bnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCB7XG4gICAgICAgIC5jcy1idXlib3hfX2FkZHRvY2FydCB7XG4gICAgICAgICAgICAudGV4dC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1za3Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZT4ucHJvZHVjdC1pdGVtLXByaWNlPi5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Utd3JhcHBlcj4ucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udHJvbC5xdHkge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNzLWFkZHRvY2FydCB7XG4gICAgICAgICAgICAgICAgICAgIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC50b2NhcnQucHJpbWFyeS5jcy1hZGR0b2NhcnRfX2J1dHRvbi5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUtZGFyayAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5yb3ctdGllci1wcmljZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuXG4gICAgICAgICAgICAuYm94LXRpZXItcHJpY2V7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlcy10aWVyLml0ZW1zIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2VzLXRpZXIuaXRlbXM+Lml0ZW0ge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMXB4IDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb2wuaXRlbSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgIDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRleHQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzODBweDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM4MHB4O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAvLyBtaW4td2lkdGg6IDI5NXB4O1xuICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudGV4dC1jb250ZW50X19uYW1le1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAudGV4dC1jb250ZW50X19pbWd7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAudmFsdWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LXByaWNlLXF0eXtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAzMzNweDtcbiAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgIC8vIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cblxuICAgICAgICAgICAgICAgICAgICAuc2FsZS1iYWRnZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDZweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNhbGUtYmFkZ2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZTE2NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuOHJlbSAwLjJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC5oaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgLmljb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuaWNvbi1oZWxwe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc/JztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5oaW50X19jb250ZW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogLTAuMjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKDEwMCUgKyAxMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwwLDAsMC4yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDdweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmhpbnRfX2NvbnRlbnR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5vbW5pYnVzLXdyYXBwZXI+c3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICAgICAgICAgIG9yZGVyOiA5O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIFxuXG4gICAgICAgICAgICAgICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNmZTE2NDQ7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5hbXhub3RpZi1ibG9jayB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm5vdGlmaWNhdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuaW5wdXQtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wucXR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgLmNvbnRyb2wucXR5IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgLy9hZGQgZmxleFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY29udHJvbC5xdHk+Zm9ybSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3NXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9wcmltYXJ5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYWRkdG9jYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSBlYXNlO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG4gICAgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWZpZWxkc2V0e1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnRha2UtbWUtdG9wIHtcbiAgb3BhY2l0eTogMC43O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmE3MDEzO1xuICB3aWR0aDogNTBweDtcbiAgaGVpZ2h0OiA1MHB4O1xuICB0cmFuc2l0aW9uOiAwLjVzO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHJpZ2h0OiAyMHB4O1xuICBib3R0b206IDIwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLnRha2UtbWUtdG9wOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC50YWtlLW1lLXRvcDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvYXJyb3dfdXBfd2hpdGUuc3ZnXCIpO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIGhlaWdodDogMThweDsgfVxuXG4udGFrZS1tZS10b3AuaGlkZGVuIHtcbiAgb3BhY2l0eTogMDtcbiAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4udGFrZS1tZS10b3Age1xuICAgIG9wYWNpdHk6IDAuNztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfb3JhbmdlO1xuICAgIHdpZHRoOiA1MHB4O1xuICAgIGhlaWdodDogNTBweDtcbiAgICB0cmFuc2l0aW9uOiAwLjVzO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMjBweDtcbiAgICBib3R0b206IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICY6aG92ZXIge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgICY6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Fycm93X3VwX3doaXRlLnN2ZycpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICB9XG59XG5cbi50YWtlLW1lLXRvcC5oaWRkZW4ge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgZGlzcGxheTogbm9uZTtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNvbHVtbnMgPiAuY29sdW1uLm1haW4gLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2VkZWZmMTsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNvbHVtbnMgPiAuY29sdW1uLm1haW4gLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wIC5jcy1wYWdlLXByb2R1Y3RfX3RvcCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4ubWFpbiB7XG4gIGJhY2tncm91bmQ6ICNlZGVmZjE7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgICAuY29sdW1ucz4uY29sdW1uLm1haW4ge1xuICAgICAgICAuY3MtY29udGFpbmVyLS1wYWdlLXBkcC10b3Age1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuXG4gICAgICAgICAgICAuY3MtcGFnZS1wcm9kdWN0X190b3Age1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRwYWdlX2JhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4ubWFpbntcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jb2x1bW5zID4gLmNvbHVtbi5tYWluIHtcbiAgcGFkZGluZy10b3A6IDBweCAhaW1wb3J0YW50OyB9XG5cbi5wcm9kdWN0LmFsZXJ0LmFsZXJ0LnN0b2NrLmxpbmstc3RvY2stYWxlcnQgPiAuYWN0aW9uLmFsZXJ0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcge1xuICAgIC5jb2x1bW5zPi5jb2x1bW4ubWFpbiB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cblxuLnByb2R1Y3QuYWxlcnQuYWxlcnQuc3RvY2subGluay1zdG9jay1hbGVydD4uYWN0aW9uLmFsZXJ0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uYnV5Ym94X19zZWN0aW9uLXNpZ24taW4ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLmJ1eWJveF9fc2VjdGlvbi1zaWduLWluIHAge1xuICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNiMGIwYjA7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuYnV5Ym94X19zZWN0aW9uLXNpZ24taW4gLmJ0bi1vdXRsaW5lZCB7XG4gICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmJ1eWJveCB7XG4gICAgJl9fc2VjdGlvbi1zaWduLWluIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuXG4gICAgICAgIHB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGNvbG9yX3NpbHZlci1jaGFsaWNlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5idG4tb3V0bGluZWQge1xuICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgIH1cbn0iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbkBtaXhpbiBmbGV4LWNlbnRlciB7XG5cdGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLm5ld3NsZXR0ZXItcmVkaW5nbyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzQ1NWE2NDtcbiAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIHBhZGRpbmc6IDRyZW0gMXJlbTtcbiAgICBtYXJnaW46IDNyZW0gYXV0byA1cmVtIGF1dG87XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgIH1cbiAgICAubmV3c2xldHRlcl9fYnRuLWNvbnRhaW5lciB7XG4gICAgICAgIEBpbmNsdWRlIGZsZXgtY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiA2MHB4O1xuICAgICAgICAubmV3c2xldHRlcl9fYnRue1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MHB4IWltcG9ydGFudDtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDNyZW0haW1wb3J0YW50O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4IWltcG9ydGFudDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxIWltcG9ydGFudDtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlLWRhcmshaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUtZGFyaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAubmV3c2xldHRlcl9fdGl0bGUtY29udGFpbmVye1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgbWluLWhlaWdodDogMTUwcHg7XG4gICAgICAgIC5uZXdzbGV0dGVyX190aXRsZXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDVyZW0gMXJlbSAxcmVtIDFyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL25ld3NsZXR0ZXItb3JhbmdlLnN2Zyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cbiAgICAuY29tbWVudHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgfVxuICAgIFxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgLm5ld3NsZXR0ZXItcmVkaW5nbyB7XG4gICAgICAgIC5uZXdzbGV0dGVyX190aXRsZS1jb250YWluZXJ7XG4gICAgICAgICAgICAubmV3c2xldHRlcl9fdGl0bGV7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtIDFyZW0gNXJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICBtYXgtaGVpZ2h0OiA0MTRweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA3cHg7IH1cblxuLnNlY3Rpb24td3JhcHBlci1zbGlkZXIge1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMXJlbTtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcmVtKSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS10b3Atc2xpZGVyIHtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbTsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXRvcC1zbGlkZXIgLmhvbWUtc2xpZGVyLWJveCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuYm94IHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuYm94IHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLm5ld3NsZXR0ZXItcmVkaW5nbyB7XG4gICAgcGFkZGluZzogMC41cmVtIDEuNXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgbWFyZ2luOiAwLjVyZW0gMDtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAubmV3c2xldHRlci1yZWRpbmdvIHtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW07IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5uZXdzbGV0dGVyLXJlZGluZ28gLm5ld3NsZXR0ZXJfX2J0bi1jb250YWluZXIge1xuICAgICAgbWluLWhlaWdodDogODBweDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLm5ld3NsZXR0ZXItcmVkaW5nbyAubmV3c2xldHRlcl9fYnRuLWNvbnRhaW5lciB7XG4gICAgICAgICAgbWluLWhlaWdodDogNTBweDsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLm5ld3NsZXR0ZXItcmVkaW5nbyAubmV3c2xldHRlcl9fdGl0bGUtY29udGFpbmVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDk1cHg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgbWluLWhlaWdodDogMzAwcHg7IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5uZXdzbGV0dGVyLXJlZGluZ28gLm5ld3NsZXR0ZXJfX3RpdGxlLWNvbnRhaW5lciAubmV3c2xldHRlcl9fdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMS41cmVtO1xuICAgICAgbWluLWhlaWdodDogMzAwcHg7IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5ob21lLXNsaWRlci1zbGljayAuY29udGVudCAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmNvbnRlbnQgLnRpdGxlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTsgfSB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmNvbnRlbnQgLnN1YnRpdGxlIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmJ0biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmJ0bjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmJ0bjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1zbGlkZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogLTEuNXJlbTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stc2xpZGVyIHtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1zbGlkZSBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA3cHg7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDdweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDdweDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1zbGlkZSBpbWcge1xuICAgICAgICBtYXgtaGVpZ2h0OiA0MzNweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiA0NjAvMjM1O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MDhweDsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1kb3RzIHtcbiAgICBib3R0b206IDIwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLWRvdHMge1xuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogNHJlbTsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLWRvdHMgbGkgYnV0dG9uOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcXDAwMkRcIjtcbiAgICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuXG4uZmFzdC1kZWxpdmVyeS1ib3gsIC5kaXNjb3VudHMtYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGhlaWdodDogMTAwJTtcbiAgbWluLWhlaWdodDogMjAwcHg7IH1cbiAgLmZhc3QtZGVsaXZlcnktYm94IGEsIC5mYXN0LWRlbGl2ZXJ5LWJveCBhOmhvdmVyLCAuZGlzY291bnRzLWJveCBhLCAuZGlzY291bnRzLWJveCBhOmhvdmVyIHtcbiAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAuZmFzdC1kZWxpdmVyeS1ib3ggLnRpdGxlLCAuZGlzY291bnRzLWJveCAudGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5mYXN0LWRlbGl2ZXJ5LWJveCAudGl0bGUsIC5kaXNjb3VudHMtYm94IC50aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMi40cmVtOyB9IH1cbiAgLmZhc3QtZGVsaXZlcnktYm94IC5zdWJ0aXRsZSwgLmRpc2NvdW50cy1ib3ggLnN1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBtYXgtd2lkdGg6IDIxMHB4OyB9XG5cbi5mYXN0LWRlbGl2ZXJ5LWJveCB7XG4gIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW4tYm90dG9tOiAtMnJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5mYXN0LWRlbGl2ZXJ5LWJveCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5mYXN0LWRlbGl2ZXJ5LWJveCB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87IH0gfVxuICAuZmFzdC1kZWxpdmVyeS1ib3ggLnRpdGxlIHtcbiAgICBjb2xvcjogI2ZmZjsgfVxuXG4vKiAuZmFzdC1kZWxpdmVyeS1ib3g6OmJlZm9yZXtcbiAgICBjb250ZW50OiAncGFjemthJztcbn0gKi9cbi5kaXNjb3VudHMtYm94IHtcbiAgYmFja2dyb3VuZDogI2ZmZjsgfVxuXG4vKiAuZGlzY291bnRzLWJveDo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6ICdrb3N6eWsnO1xufSAqL1xuLnNlY3Rpb24td3JhcHBlci1jb3ZpZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIHBhZGRpbmctdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gIG1hcmdpbi1yaWdodDogLTAuNXJlbTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5pdGVtID4gKiB7XG4gICAgbWluLWhlaWdodDogMzY4cHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuaXRlbSA+ICosXG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLml0ZW0gPiAqID4gKixcbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuaXRlbSA+ICogPiAqID4gKixcbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuaXRlbSA+ICogPiAqID4gKiA+ICoge1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5wLTIge1xuICAgIHBhZGRpbmc6IDAuNXJlbTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLnAtMiAuYnRuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLnAtMiAuYnRuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuZnJlZS0yLTEtYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBwYWRkaW5nOiAxLjVyZW0gM3JlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IC0yMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ2MHB4OyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuZnJlZS0yLTEtYm94IC5mcmVlLTJfdGl0bGUge1xuICAgICAgZm9udC1zaXplOiA1cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmZyZWUtMi0xLWJveCAudGl0bGUtYmlnIHtcbiAgICAgIGZvbnQtc2l6ZTogMTNyZW07IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5mcmVlLTItMS1ib3ggLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5mcmVlLTItMS1ib3ggLnRpdGxlLXNtYWxsIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLm5ldy1pbi1hY2Nlc3Nvcmllcy1ib3gge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0NjBweDsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLm5ldy1pbi1hY2Nlc3Nvcmllcy1ib3ggLmNvbnRlbnQge1xuICAgICAgcGFkZGluZzogMS41cmVtIDNyZW07IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5uZXctaW4tYWNjZXNzb3JpZXMtYm94IC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLm5ldy1pbi1hY2Nlc3Nvcmllcy1ib3ggLnN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5uZXctaW4tYWNjZXNzb3JpZXMtYm94IGltZyB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA3cHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogN3B4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogM3JlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsIDAsIDAsIDAuNSksIHJnYmEoMCwgMCwgMCwgMC41KSksIHVybChcImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjEzMTE5NzE5OTQ4LWQ1Mzg2NTY1OGE4OD9peGxpYj1yYi00LjAuMyZpeGlkPU1ud3hNakEzZkRCOE1IeHdhRzkwYnkxd1lXZGxmSHg4ZkdWdWZEQjhmSHg4JmF1dG89Zm9ybWF0JmZpdD1jcm9wJnc9MTc3MSZxPTgwXCIpOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94IC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94IC5zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIG1heC13aWR0aDogMzgwcHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICBtaW4taGVpZ2h0OiA0NjBweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDQ2MHB4OyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLWJvdHRvbTogM3JlbTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogM3JlbSAxLjVyZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDAuNSkpLCB1cmwoXCJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTYxMzExOTcxOTk0OC1kNTM4NjU2NThhODg/aXhsaWI9cmItNC4wLjMmaXhpZD1Nbnd4TWpBM2ZEQjhNSHh3YUc5MGJ5MXdZV2RsZkh4OGZHVnVmREI4Zkh4OCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCZ3PTE3NzEmcT04MFwiKTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tYm94IC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbWF4LXdpZHRoOiAzNjBweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgbWluLWhlaWdodDogNDAwcHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4OyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgbWF4LXdpZHRoOiAzNjBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tc2xpZGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1zbGlkZXIgLmNzLXNsaWRlci1wYWdpbmF0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tc2xpZGVyIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLXNsaWRlciAuYmxvY2stc3RhdGljLWJsb2NrLndpZGdldCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tc2xpZGVyIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDsgfVxuXG4uc2VjdGlvbi1qb2Itb2ZmZXJzIHtcbiAgbWFyZ2luLWJvdHRvbTogNXJlbTsgfVxuICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5ib3gge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLmJveCAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgLnNlY3Rpb24tam9iLW9mZmVycyAuYm94IC5zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgLnNlY3Rpb24tam9iLW9mZmVycyAuYm94LW9mZmVyIHtcbiAgICBtYXJnaW4tdG9wOiAtM3JlbTsgfVxuICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWNpdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tY2l0eSBwIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1jaXR5IHA6OmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9nZW8tb3JhbmdlLnN2Zyk7XG4gICAgICAgIGxlZnQ6IC0yMHB4OyB9XG4gIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuLFxuICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0bi1zZW5kIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuIC5idG4sXG4gICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4tc2VuZCAuYnRuIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0biAuYnRuOmhvdmVyLFxuICAgICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4tc2VuZCAuYnRuOmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuIC5idG4sXG4gICAgICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuLXNlbmQgLmJ0biB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0bi1zZW5kIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAzcmVtIDJyZW07IH1cblxuLmNtcy1ob21lLXRlc3QgLmhvbWUtdG9wLXNsaWRlciAuYmxvY2stc3RhdGljLWJsb2NrLndpZGdldCwgLmNtcy1ob21lLXRlc3QgLmhvbWUtdG9wLXNsaWRlciAuYmxvY2stY21zLWxpbmsud2lkZ2V0IHtcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tb3ZlciB7XG4gIHBhZGRpbmctYm90dG9tOiA0cmVtOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICBwYWRkaW5nOiAwO1xuICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7XG4gIC8qIGZvciBJbnRlcm5ldCBFeHBsb3JlciwgRWRnZSAqL1xuICBzY3JvbGxiYXItd2lkdGg6IG5vbmU7XG4gIC8qIGZvciBGaXJlZm94ICovXG4gIG92ZXJmbG93LXk6IHNjcm9sbDsgfVxuICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMge1xuICAgICAgbWluLWhlaWdodDogNTIwcHg7IH0gfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgbWF4LWhlaWdodDogMzk1cHg7XG4gIHBhZGRpbmc6IDA7XG4gIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDUyMHB4OyB9IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLXNsaWRlci1wYWdpbmF0aW9uIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1jb250YWluZXItLWltYWdlLXRlYXNlciB7XG4gIG1hcmdpbjogMDsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCB7XG4gIC0tYmFzZS1zaXplOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDM5NXB4OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcy13cmFwcGVyIHtcbiAgICBtaW4taGVpZ2h0OiAzOTVweDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyMy4xMjVlbSkge1xuICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgIGZvbnQtc2l6ZTogMy41cmVtOyB9IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDJyZW07XG4gIG1heC13aWR0aDogODUlO1xuICBtYXJnaW46IDFyZW0gYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDIuNHJlbTsgfSB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLFxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gIGNvbG9yOiAjZmZmOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4ge1xuICBwYWRkaW5nLXJpZ2h0OiAzZW07IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtc3Bhbixcbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhICosXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkICoge1xuICBjb2xvcjogI2ZmZjtcbiAgZmlsbDogI2ZmZjsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5cbkBtaXhpbiBidG4taG9tZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICY6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgfVxufVxuXG5cbi5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlc3tcbiAgICBtYXgtaGVpZ2h0OiA0MTRweCFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcblxufVxuLy9zZWN0aW9uIHRvcCBzbGlkZXJcbi5zZWN0aW9uLXdyYXBwZXItc2xpZGVye1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjVyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAxcmVtKSFpbXBvcnRhbnQ7XG4gICAgfVxuICAgIFxuICAgIC5ob21lLXRvcC1zbGlkZXJ7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICAuaG9tZS1zbGlkZXItYm94e1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ib3h7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAwO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLm5ld3NsZXR0ZXItcmVkaW5nbyB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6MzAwcHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC41cmVtO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAubmV3c2xldHRlcl9fYnRuLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA4MHB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLm5ld3NsZXR0ZXJfX3RpdGxlLWNvbnRhaW5lcntcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDk1cHg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IFxuICAgICAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICAubmV3c2xldHRlcl9fdGl0bGV7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIHNsaWNrXG4gICAgLmhvbWUtc2xpZGVyLXNsaWNre1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIC5jb250ZW50e1xuICAgICAgICAgICAgLy8gZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuc3VidGl0bGV7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5idG57XG4gICAgICAgICAgICBAaW5jbHVkZSBidG4taG9tZTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zbGljay1zbGlkZXtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEuNXJlbTtcbiAgICB9XG4gICAgLnNsaWNrLXNsaWRlcntcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLnNsaWNrLWRvdHRlZC5zbGljay1zbGlkZXJ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG5cblxuICAgIC5zbGljay1zbGlkZSBpbWd7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MzNweDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogNDYwLzIzNTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwOHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zbGljay1kb3RzIHtcbiAgICAgICAgYm90dG9tOiAyMHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07XG4gICAgICAgIH1cbiAgICAgICAgbGkge1xuICAgICAgICAgICAgYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwwMDJEXCI7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59XG5cblxuLy8gZmFzdCBkZWxpdmVyeVxuLmZhc3QtZGVsaXZlcnktYm94LCAuZGlzY291bnRzLWJveHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDIwMHB4O1xuICAgIGEsYTpob3ZlcntcbiAgICAgICAgY29sb3I6JGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICB9XG4gICAgXG4gICAgLnRpdGxle1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnN1YnRpdGxle1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiAyMTBweDtcbiAgICB9XG59XG5cbi5mYXN0LWRlbGl2ZXJ5LWJveHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYXF1YTtcbiAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIG1hcmdpbi1ib3R0b206IC0ycmVtO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICB9XG4gICAgLnRpdGxle1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIH1cbn1cbi8qIC5mYXN0LWRlbGl2ZXJ5LWJveDo6YmVmb3Jle1xuICAgIGNvbnRlbnQ6ICdwYWN6a2EnO1xufSAqL1xuLmRpc2NvdW50cy1ib3h7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xufVxuLyogLmRpc2NvdW50cy1ib3g6OmJlZm9yZXtcbiAgICBjb250ZW50OiAna29zenlrJztcbn0gKi9cblxuLy8gZGlzY291bnRzXG5cblxuLy8gc2VjdGlvbiBmcmVlIGNvdmlkXG4uc2VjdGlvbi13cmFwcGVyLWNvdmlke1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgIG1hcmdpbi1yaWdodDogLTAuNXJlbTtcbiAgICAuaXRlbSA+ICp7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDM2OHB4O1xuICAgIH1cbiAgICAuaXRlbSA+ICosXG4gICAgLml0ZW0gPiAqID4gKixcbiAgICAuaXRlbSA+ICogPiAqID4gKixcbiAgICAuaXRlbSA+ICogPiAqID4gKiA+ICp7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICB9XG4gICAgLnAtMntcbiAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAuYnRue1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuLWhvbWU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5mcmVlLTItMS1ib3h7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYXF1YTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgcGFkZGluZzogMS41cmVtIDNyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgICAgICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgICAgIC5mcmVlLTJfdGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZS1iaWd7XG4gICAgICAgICAgICBmb250LXNpemU6IDEzcmVtO1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgICAgICAudGl0bGUtc21hbGx7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5uZXctaW4tYWNjZXNzb3JpZXMtYm94e1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgICAgIC5jb250ZW50e1xuICAgICAgICAgICAgcGFkZGluZzogMS41cmVtIDNyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnN1YnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgfVxuICAgICAgICBpbWd7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY292aWQtYm94e1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogM3JlbTtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwwLDAsMC41KSwgcmdiYSgwLDAsMCwwLjUpKSwgdXJsKCdodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTYxMzExOTcxOTk0OC1kNTM4NjU2NThhODg/aXhsaWI9cmItNC4wLjMmaXhpZD1Nbnd4TWpBM2ZEQjhNSHh3YUc5MGJ5MXdZV2RsZkh4OGZHVnVmREI4Zkh4OCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCZ3PTE3NzEmcT04MCcpO1xuICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLnN1YnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDM4MHB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jb3ZpZC1ib3gtY21ze1xuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJle1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJle1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiA0NjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9ue1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb257XG4gICAgLy8gLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAvLyAgICAgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXN7XG4gICAgLy8gICAgICAgICAmOjotd2Via2l0LXNjcm9sbGJhcntcbiAgICAvLyAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vICAgICAgICAgfVxuICAgIC8vICAgICB9XG4gICAgLy8gfVxuICAgIFxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgIFxuICAgIC5zZWFzb24taXMtb24tYm94e1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogM3JlbSAxLjVyZW07XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNSksIHJnYmEoMCwwLDAsMC41KSksIHVybCgnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2MTMxMTk3MTk5NDgtZDUzODY1NjU4YTg4P2l4bGliPXJiLTQuMC4zJml4aWQ9TW53eE1qQTNmREI4TUh4d2FHOTBieTF3WVdkbGZIeDhmR1Z1ZkRCOGZIeDgmYXV0bz1mb3JtYXQmZml0PWNyb3Amdz0xNzcxJnE9ODAnKTtcbiAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2Vhc29uLWlzLW9uLWJveC1jbXN7XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmV7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICAgICAgfVxuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmV7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2Fue1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2Vhc29uLWlzLW9uLXNsaWRlcntcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmNzLXNsaWRlci1wYWdpbmF0aW9ue1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuY3MtcHJvZHVjdHMtY2Fyb3VzZWx7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0e1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wcm9kdWN0cy1jYXJvdXNlbHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVye1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICB9XG59XG5cblxuLy8gam9iIG9mZmVyc1xuLnNlY3Rpb24tam9iLW9mZmVyc3tcbiAgICBtYXJnaW4tYm90dG9tOiA1cmVtO1xuICAgIC5ib3h7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czokYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnN1YnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5ib3gtb2ZmZXJ7XG4gICAgICAgIG1hcmdpbi10b3A6IC0zcmVtO1xuICAgIH1cbiAgICAuaXRlbS1jaXR5e1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwe1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL2dlby1vcmFuZ2Uuc3ZnKTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAtMjBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuaXRlbS1idG4sXG4gICAgLml0ZW0tYnRuLXNlbmR7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC5idG57XG4gICAgICAgICAgICBAaW5jbHVkZSBidG4taG9tZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5pdGVtLWJ0bi1zZW5ke1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogM3JlbSAycmVtO1xuICAgIH1cbn1cblxuXG5cbi8vIENNUyBzbGlkZXJcbi5jbXMtaG9tZS10ZXN0e1xuICAgIC5ob21lLXRvcC1zbGlkZXJ7XG4gICAgICAgIC5ibG9jay1zdGF0aWMtYmxvY2sud2lkZ2V0LCAuYmxvY2stY21zLWxpbmsud2lkZ2V0e1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXHQuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGh7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdH1cblx0LmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVyIHtcblx0XHRwYWRkaW5nLWJvdHRvbTogNHJlbTtcblx0fVxuXHQuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVze1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0LW1zLW92ZXJmbG93LXN0eWxlOiBub25lOyAvKiBmb3IgSW50ZXJuZXQgRXhwbG9yZXIsIEVkZ2UgKi9cblx0XHRcdHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogZm9yIEZpcmVmb3ggKi9cblx0XHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblx0XHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFye1xuXHRcdFx0XHRkaXNwbGF5OiBub25lO1xuXHRcdFx0fVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUyMHB4O1xuICAgICAgICAgICAgfVxuXHR9XG5cdC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXN7XG5cdFx0bWF4LWhlaWdodDogMzk1cHg7XG5cdFx0cGFkZGluZzogMDtcblx0XHRib3JkZXItcmFkaXVzOiA3cHg7XG5cdFx0LmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZXtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDUyMHB4O1xuICAgICAgICAgICAgfVxuXHRcdH1cblx0XHRcblx0fVxuXHQuY3Mtc2xpZGVyLXBhZ2luYXRpb24ge1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3R0b206IDA7XG5cdFx0bGVmdDogNTAlO1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcblx0fVxuXHQuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXJ7XG5cdFx0bWFyZ2luOiAwO1xuXHR9XG5cdC8vIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUgKyAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLW92ZXIsIC5jcy1pbWFnZS10ZWFzZXItLXRlYXNlci1hbmQtdGV4dCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taW1hZ2UtdXBsb2FkZWQgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVye1xuXHRcdFxuICAgIC8vICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgLy8gICAgICAgICAvLyBtYXgtd2lkdGg6IDc0N3B4O1xuXHQvLyBcdFx0Ly8gbWFyZ2luOiBhdXRvO1xuICAgIC8vICAgICB9XG4gICAgICAgIFxuXHQvLyB9XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmV7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aHtcbiAgICAgICAgLS1iYXNlLXNpemU6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM5NXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM5NXB4O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbntcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9cGhvbmUnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDMuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA4NSU7XG4gICAgICAgIG1hcmdpbjogMXJlbSBhdXRvO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEsIFxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOnZpc2l0ZWR7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW57XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDNlbTtcbiAgICB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEtc3BhbixcbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSAqLCBcbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVkICp7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGZpbGw6ICRjb2xvcl93aGl0ZTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uYmxvZy1wYWdlICNtYWluY29udGVudCAuY3MtY29udGFpbmVyX19pbm5lcixcbi5ibG9nLXBvc3QtdmlldyAjbWFpbmNvbnRlbnQgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICBtYXgtd2lkdGg6IDExNHJlbTsgfVxuXG4uYmxvZy1wYWdlIC5ibG9jay1jYXRlZ29yaWVzIC5ibG9jay10aXRsZSxcbi5ibG9nLXBvc3QtdmlldyAuYmxvY2stY2F0ZWdvcmllcyAuYmxvY2stdGl0bGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5ibG9nLXBhZ2UgLmFjY29yZGlvbixcbi5ibG9nLXBvc3QtdmlldyAuYWNjb3JkaW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLXRvcDogLTVyZW07IH1cbiAgLmJsb2ctcGFnZSAuYWNjb3JkaW9uIC5pdGVtLFxuICAuYmxvZy1wb3N0LXZpZXcgLmFjY29yZGlvbiAuaXRlbSB7XG4gICAgcGFkZGluZzogMnJlbSAwOyB9XG4gICAgLmJsb2ctcGFnZSAuYWNjb3JkaW9uIC5pdGVtIGEsXG4gICAgLmJsb2ctcG9zdC12aWV3IC5hY2NvcmRpb24gLml0ZW0gYSB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH1cbiAgICAgIC5ibG9nLXBhZ2UgLmFjY29yZGlvbiAuaXRlbSBhOmhvdmVyLFxuICAgICAgLmJsb2ctcG9zdC12aWV3IC5hY2NvcmRpb24gLml0ZW0gYTpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjMTdjOGMwOyB9XG5cbi5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyLFxuLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciB7XG4gIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07IH1cbiAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCxcbiAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtbGlzdC1pdGVtLFxuICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1saXN0LWl0ZW0ge1xuICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1kZXNjcmlwdGlvbixcbiAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtZGVzY3JpcHRpb24ge1xuICAgICAgcGFkZGluZzogMXJlbSAycmVtIDAgMnJlbTsgfVxuICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtdGl0bGUsXG4gICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LXRpdGxlIHtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LXRpdGxlIGEsXG4gICAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtdGl0bGUgYSB7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1ob2xkZXIsXG4gICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWhvbGRlciB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgIG1heC13aWR0aDogMzYwcHg7IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWNvbnRlbnQsXG4gICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWNvbnRlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAgICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1jb250ZW50IGltZyxcbiAgICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1jb250ZW50IGltZyB7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHg7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDdweDsgfVxuXG4uYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLnBvc3QtbGlzdC1pdGVtLFxuLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLnBvc3QtbGlzdC1pdGVtIHtcbiAgcGFkZGluZzogMS41cmVtOyB9XG5cbi5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAucG9zdC1ob2xkZXIsXG4uYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAucG9zdC1ob2xkZXIge1xuICBwYWRkaW5nOiAwO1xuICBtaW4taGVpZ2h0OiAzMDBweDsgfVxuXG4uYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLnBvc3QtZGVzY3JpcHRpb24sXG4uYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAucG9zdC1kZXNjcmlwdGlvbiB7XG4gIG1hcmdpbi1ib3R0b206IDA7IH1cblxuLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5pdGVtLnBvc3QtcG9zZWQtZGF0ZSxcbi5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5pdGVtLnBvc3QtcG9zZWQtZGF0ZSB7XG4gIHRvcDogMTBweDtcbiAgcmlnaHQ6IDEwcHg7IH1cblxuLnBvc3QtYm90dG9tIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQ6bm90KC5ibG9nLXdpZGdldC1yZWNlbnQtbWFzb25yeSkgLnBvc3QtaG9sZGVyIHtcbiAgbWluLWhlaWdodDogMTAwJTsgfVxuXG4uYmxvZy1wYWdlIC5pdGVtLnBvc3QtcG9zZWQtZGF0ZSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAyNXB4O1xuICByaWdodDogMzBweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICBmb250LXNpemU6IDEuMnJlbTsgfVxuXG4uYmxvZy1wYWdlIC5wYWdlcy5jcy1wYWdpbmF0aW9uIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgLmJsb2ctcGFnZSAucGFnZXMuY3MtcGFnaW5hdGlvbiAuY3MtcGFnaW5hdGlvbl9fY29udGVudCBzdmcge1xuICAgIGhlaWdodDogMTBweDtcbiAgICBtYXJnaW46IDBweCAxMHB4OyB9XG4gIC5ibG9nLXBhZ2UgLnBhZ2VzLmNzLXBhZ2luYXRpb24gLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQgLnBhZ2VzLWl0ZW1zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLmJsb2ctcGFnZSAucGFnZXMuY3MtcGFnaW5hdGlvbiAuY3MtcGFnaW5hdGlvbl9fY29udGVudCAuY3MtcGFnaW5hdGlvbl9fbnVtYmVyLS1jdXJyZW50ID4gLmxhYmVsIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmJsb2ctcGFnZSAucGFnZXMuY3MtcGFnaW5hdGlvbiAuY3MtcGFnaW5hdGlvbl9fY29udGVudCAucGFnZXMtaXRlbXMgLmNzLXBhZ2luYXRpb25fX2l0ZW0ge1xuICAgIG1hcmdpbjogMHB4IDEwcHg7IH1cbiIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLmJsb2ctcGFnZSxcbi5ibG9nLXBvc3QtdmlldyB7XG4gICAgI21haW5jb250ZW50IHtcbiAgICAgICAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkYmxvZy1jb250YWluZXJfbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9jYXRlZ29yeSBsaXN0XG4gICAgLmJsb2NrLWNhdGVnb3JpZXMge1xuICAgICAgICAuYmxvY2stdGl0bGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY2NvcmRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiAtNXJlbTtcblxuICAgICAgICAuaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9hcXVhO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wb3N0LWxpc3Qtd3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG5cbiAgICAgICAgLnBvc3QtbGlzdCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAucG9zdC1saXN0LWl0ZW0ge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW0gMCAycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucG9zdC10aXRsZSB7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuXG4gICAgICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvc3QtaG9sZGVyIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucG9zdC1jb250ZW50IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvL3JlY2VudCBwb3N0XG4gICAgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudHtcbiAgICAgICAgLnBvc3QtbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICAucG9zdC1ob2xkZXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgICAgIC5pdGVtLnBvc3QtcG9zZWQtZGF0ZSB7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnBvc3QtYm90dG9tIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQ6bm90KC5ibG9nLXdpZGdldC1yZWNlbnQtbWFzb25yeSkgLnBvc3QtaG9sZGVye1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG59XG5cbi5ibG9nLXBhZ2Uge1xuICAgIC5pdGVtLnBvc3QtcG9zZWQtZGF0ZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAyNXB4O1xuICAgICAgICByaWdodDogMzBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIH1cbn1cblxuLmJsb2ctcGFnZSB7XG4gICAgLnBhZ2VzLmNzLXBhZ2luYXRpb24ge1xuICAgICAgICAuY3MtcGFnaW5hdGlvbl9fY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gICAgICAgICAgICBzdmcge1xuICAgICAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweCAxMHB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucGFnZXMtaXRlbXMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNzLXBhZ2luYXRpb25fX251bWJlci0tY3VycmVudD4ubGFiZWwge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBhZ2VzLWl0ZW1zIC5jcy1wYWdpbmF0aW9uX19pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDBweCAxMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY2hlY2tvdXQtY2FydC1pbmRleCAjbWFpbmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IC5jcy1jYXJ0LWl0ZW0uaXRlbS1pbmZvIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCAuYWN0aW9uLmNvbnRpbnVlIHtcbiAgYm9yZGVyOiBzb2xpZDtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAzcmVtOyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IC5maWVsZCAuaW5wdXQtdGV4dCB7XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG5cbi5jaGVja291dC1jYXJ0LWluZGV4IC5maWVsZCAubGFiZWwge1xuICBwYWRkaW5nOiAwIDAgMXJlbSAwO1xuICBmb250LXNpemU6IDEuNnJlbTsgfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCAuY3MtY29udGFpbmVyX19jYXJ0LWNvdXBvbnMge1xuICBwYWRkaW5nOiA0cmVtIDA7IH1cbiAgLmNoZWNrb3V0LWNhcnQtaW5kZXggLmNzLWNvbnRhaW5lcl9fY2FydC1jb3Vwb25zIC5jcy1kaXNjb3VudCB7XG4gICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICM4ODg7IH1cbiAgLmNoZWNrb3V0LWNhcnQtaW5kZXggLmNzLWNvbnRhaW5lcl9fY2FydC1jb3Vwb25zIC5jcy1kaXNjb3VudF9fdGl0bGUtdGV4dCB7XG4gICAgY29sb3I6ICMyMTIxMjE7XG4gICAgZm9udC1zaXplOiAxLjVyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG4uY2hlY2tvdXQtY2FydC1pbmRleHtcbiAgICAjbWFpbmNvbnRlbnR7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICB9XG4gICAgLmNzLWNhcnQtaXRlbS5pdGVtLWluZm97XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICB9XG4gICAgLmFjdGlvbi5jb250aW51ZSB7XG4gICAgICAgIGJvcmRlcjogc29saWQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcbiAgICB9XG4gICAgLmZpZWxkIHtcbiAgICAgICAgLmlucHV0LXRleHQge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmxhYmVse1xuICAgICAgICAgICAgLy8gcGFkZGluZzogMnJlbSAwIDFyZW0gMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxcmVtIDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY3MtY29udGFpbmVyX19jYXJ0LWNvdXBvbnN7XG4gICAgICAgIHBhZGRpbmc6IDRyZW0gMDtcbiAgICAgICAgLmNzLWRpc2NvdW50e1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogc29saWQgMXB4ICRjb2xvcl9ncmF5O1xuICAgICAgICB9XG4gICAgICAgIC5jcy1kaXNjb3VudF9fdGl0bGUtdGV4dHtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfbWluZXNoYWZ0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnJlZGluZ28tY2F0ZWdvcmllcyB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkge1xuICAgIHBhZGRpbmc6IDAgMXJlbSAxcmVtIDFyZW07IH1cbiAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAud3JhcHBlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDEwM3B4O1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLndyYXBwZXIge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDI4MHB4OyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC53cmFwcGVyIHtcbiAgICAgICAgICBwYWRkaW5nOiAycmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC53cmFwcGVyIC5zdWItY2F0ZWdvcnktd3JhcHBlciB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmNhdGVnb3J5LWNvbnRlbnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5jYXRlZ29yeS1jb250ZW50IGltZyB7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0OGVtKSB7XG4gICAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmNhdGVnb3J5LWNvbnRlbnQgaW1nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmNhdGVnb3J5LWNvbnRlbnQgLmNhdGVnb3J5LW5hbWUge1xuICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuY2F0ZWdvcnktY29udGVudCAuY2F0ZWdvcnktbmFtZSB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtOyB9IH1cbiAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuc3ViLWNhdGVnb3J5LXdyYXBwZXIgdWwge1xuICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07IH1cbiAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5zdWItY2F0ZWdvcnktd3JhcHBlciB1bCBsaSB7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW0gMDsgfVxuICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuc3ViLWNhdGVnb3J5LXdyYXBwZXIgdWwgbGkgYSB7XG4gICAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuYWxsLWNhdGVnb3JpZXMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5hbGwtY2F0ZWdvcmllczo6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnXFwyNzZGJztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA3cHg7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLnJlZGluZ28tY2F0ZWdvcmllcyB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgLmNhdGVnb3J5IHtcbiAgICAgICAgcGFkZGluZzogMCAxcmVtIDFyZW0gMXJlbTtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIC8vIG1pbi1oZWlnaHQ6IDU1MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLndyYXBwZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMTAzcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIC8vIG1pbi1oZWlnaHQ6IDIzNXB4O1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDI4MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zdWItY2F0ZWdvcnktd3JhcHBlcntcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNhdGVnb3J5LWNvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAgIGltZ3tcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY2F0ZWdvcnktbmFtZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAxcmVtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3ViLWNhdGVnb3J5LXdyYXBwZXIge1xuXG4gICAgICAgICAgICB1bCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07XG5cbiAgICAgICAgICAgICAgICBsaSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjJyZW0gMDtcblxuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXDI3NkYnO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogN3B4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgbWFyZ2luLWJvdHRvbTogNHJlbTtcbiAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgdWwge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyB1bCBsaSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH1cbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgdWwgbGk6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICBoZWlnaHQ6IDhweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDlweDtcbiAgICAgICAgbGVmdDogMDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnBhZ2UtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAucGFnZS1zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJ0biB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJ0bjpob3ZlciB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuY29udGVudCB7XG4gICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmNvbnRlbnQge1xuICAgICAgICBwYWRkaW5nOiAycmVtIDZyZW07IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5zZWN0aW9uLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuc2VjdGlvbi13cmFwcGVyIC5pdGVtLWNvbCB7XG4gICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnNlY3Rpb24td3JhcHBlciAuaXRlbS1jb2wge1xuICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5zZWN0aW9uLXdyYXBwZXIgLml0ZW0tY29sIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuc2VjdGlvbi1yb3ctb2ZmZXIgLml0ZW0tY29sIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC13aXRoLWJnLWltZyB7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBtYXJnaW46IDJyZW0gYXV0bztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMjYsIDg3LCAxOTQsIDAuNCksIHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpKSwgdXJsKFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWEvd3lzaXd5Zy9vX25hcy9vLW5hcy5qcGdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC13aXRoLWJnLWltZyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDgwMHB4OyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtd2l0aC1iZy1pbWcgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LXdpdGgtYmctaW1nIC50aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiA3cmVtOyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtd2l0aC1iZy1pbWcgLnN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LXdpdGgtYmctaW1nIC5zdWJ0aXRsZSB7XG4gICAgICAgICAgZm9udC1zaXplOiA0cmVtOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LWVjb2xvZ2ljYWwtcGFja2FnaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMjYsIDg3LCAxOTQsIDAuNCksIHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpKSwgdXJsKFwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWEvd3lzaXd5Zy9vX25hcy9vLW5hczIuanBnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyOyB9XG4iLCJcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG5AbWl4aW4gYnRuLWFib3V0LXVze1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgIH1cbn1cblxuLnNlY3Rpb24td3JhcHBlci1hYm91dC11c3tcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmctYm90dG9tOiA0cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHVse1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIGxpe1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IG9yYW5nZTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogOXB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaW1ne1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgfVxuICAgIC5wYWdlLXRpdGxle1xuICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAucGFnZS1zdWJ0aXRsZXtcbiAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgIH1cblxuICAgIC5idG57XG4gICAgICAgIEBpbmNsdWRlIGJ0bi1hYm91dC11cztcbiAgICB9XG4gICAgLmNvbnRlbnR7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSA2cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXJ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIC5pdGVtLWNvbHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG4gICAgLnNlY3Rpb24tcm93LW9mZmVye1xuICAgICAgICAuaXRlbS1jb2x7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC5ib3gtd2l0aC1iZy1pbWd7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMjYsIDg3LCAxOTQsIDAuNCksIHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpKSwgdXJsKCcuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYS93eXNpd3lnL29fbmFzL28tbmFzLmpwZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWluLWhlaWdodDogODAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA3cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1YnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC5ib3gtZWNvbG9naWNhbC1wYWNrYWdpbmd7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDEyNiwgODcsIDE5NCwgMC40KSwgcmdiYSgxMjYsIDg3LCAxOTQsIDAuNCkpLCB1cmwoJy4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhL3d5c2l3eWcvb19uYXMvby1uYXMyLmpwZycpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgfVxuICAgIFxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5iMmMtYjJiX2JveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXI6IHNvbGlkIDFweCAjZGRkO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBwYWRkaW5nOiAwLjVyZW07XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICBsaW5lLWhlaWdodDogMTtcbiAgbWluLWhlaWdodDogMzBweDsgfVxuICAuYjJjLWIyYl9ib3ggLmIyYy1iMmJfaXRlbSB7XG4gICAgcGFkZGluZzogMC4ycmVtIDJyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBmb250LXdlaWdodDogYm9sZDsgfVxuICAuYjJjLWIyYl9ib3ggLmIyY19ib3gge1xuICAgIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLmIyYy1iMmJfYm94IC5iMmJfYm94IGEge1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmIyYy1iMmJfYm94IC5iMmJfYm94IGE6aG92ZXIge1xuICAgICAgY29sb3I6ICMxN2M4YzA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmIyYy1iMmJfYm94e1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXI6IHNvbGlkIDFweCAjZGRkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgbWluLWhlaWdodDogMzBweDtcblxuICAgIC5iMmMtYjJiX2l0ZW17XG4gICAgICAgIHBhZGRpbmc6IDAuMnJlbSAycmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgfVxuICAgIC5iMmNfYm94e1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTIwMDtcbiAgICB9XG4gICAgLmIyYl9ib3h7XG4gICAgICAgIGF7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtODAwO1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnBhcnRuZXJzLXNsaWRlci1zbGljayAuc2xpY2stdHJhY2sge1xuICBkaXNwbGF5OiBmbGV4OyB9XG5cbi5wYXJ0bmVycy1ib3gge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAucGFydG5lcnMtYm94IGgyIHtcbiAgICBwYWRkaW5nLXRvcDogMnJlbTsgfVxuICAucGFydG5lcnMtYm94IGltZyB7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICB3aWR0aDogOTclOyB9XG4gIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDFyZW0gMCAwIDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIGxpIHtcbiAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyBsaSB7XG4gICAgICAgICAgd2lkdGg6IDQwcHg7IH0gfVxuICAgICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIGxpIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzdlNTdjMjtcbiAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgbGkgYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MHB4OyB9IH1cbiAgICAgICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIGxpIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjN2U1N2MyO1xuICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgICAgICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIGxpIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7IH0gfVxuICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyAuc2xpY2stYWN0aXZlIGJ1dHRvbiB7XG4gICAgICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIC5zbGljay1hY3RpdmUgYnV0dG9uOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgICAgICAgb3BhY2l0eTogMTsgfVxuIiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4ucGFydG5lcnMtc2xpZGVyLXNsaWNrIC5zbGljay10cmFja3tcbiAgICBkaXNwbGF5OiBmbGV4O1xufVxuLnBhcnRuZXJzLWJveHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGgye1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICB9XG4gICAgaW1ne1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgICAgIHdpZHRoOiA5NyU7XG4gICAgfVxuXG4gICAgLnNsaWNrLXNsaWRlcntcbiAgICAgICAgLnNsaWNrLWRvdHN7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwIDAgMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBidXR0b257XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDonJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnNsaWNrLWFjdGl2ZXtcbiAgICAgICAgICAgICAgICBidXR0b257XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OicnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IFxuICAgIH1cbiAgICBcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY29sdW1uOm5vdCguc2lkZWJhci1tYWluKSAuZm9ybS5jb250YWN0LFxuLmNtcy1rb253ZXJzamEtYjJiIC5jb2x1bW46bm90KC5zaWRlYmFyLW1haW4pIC5mb3JtLmNvbnRhY3Qge1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbHVtbjpub3QoLnNpZGViYXItYWRkaXRpb25hbCkgLmZvcm0uY29udGFjdCxcbi5jbXMta29ud2Vyc2phLWIyYiAuY29sdW1uOm5vdCguc2lkZWJhci1hZGRpdGlvbmFsKSAuZm9ybS5jb250YWN0IHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBjbGVhcjogYm90aDtcbiAgcGFkZGluZzogNHJlbSAycmVtO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29sdW1uOm5vdCguc2lkZWJhci1hZGRpdGlvbmFsKSAuZm9ybS5jb250YWN0LFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY29sdW1uOm5vdCguc2lkZWJhci1hZGRpdGlvbmFsKSAuZm9ybS5jb250YWN0IHtcbiAgICAgIG1pbi13aWR0aDogNjByZW07IH0gfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCxcbi5jbXMta29ud2Vyc2phLWIyYiAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCB7XG4gIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCxcbi5jbXMta29ud2Vyc2phLWIyYiAuY3MtZGFzaGJvYXJkIC5sZWdlbmQge1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWRhc2hib2FyZCAubGVnZW5kIGgyLFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmNzLWRhc2hib2FyZCAubGVnZW5kIGgyIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAjbWFpbmNvbnRlbnQsXG4uY21zLWtvbndlcnNqYS1iMmIgI21haW5jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2VkZWZmMTsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyLFxuLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIge1xuICBwYWRkaW5nOiAzcmVtIDA7XG4gIG1hcmdpbi1sZWZ0OiAtMXJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAtMXJlbTsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbjogMXJlbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIG1pbi13aWR0aDogMjUwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gsXG4gICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gge1xuICAgICAgICBtaW4taGVpZ2h0OiAzNDdweDsgfSB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYnRuLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1idG4ge1xuICAgICAgYm9yZGVyOiBzb2xpZCAycHg7XG4gICAgICBib3JkZXItcmFkaXVzOiA2MHB4O1xuICAgICAgcGFkZGluZzogMC41cmVtIDFyZW0gMC41cmVtIDMuNXJlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbjogMC41cmVtIDAuNXJlbSAwLjVyZW0gMDtcbiAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJ0bjo6YmVmb3JlLFxuICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJ0bjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3RlbGVwaG9uZS1wdXJwbGUuc3ZnXCIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICAgICAgdG9wOiA1MyU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1idG4tbWFpbDo6YmVmb3JlLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1idG4tbWFpbDo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tYWlsLXB1cnBsZS5zdmdcIik7IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1ib3gtaG91cnMsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJveC1ob3VycyB7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZy1sZWZ0OiAyLjNyZW07XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJveC1ob3Vyczo6YmVmb3JlLFxuICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJveC1ob3Vyczo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nsb2NrLXB1cnBsZS5zdmdcIik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiA1MyU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbixcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICBtaW4taGVpZ2h0OiBhdXRvO1xuICAgIHBhZGRpbmc6IDNyZW0gMnJlbTtcbiAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgIGJvcmRlcjogc29saWQgMnB4ICNmYTcwMTM7IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHAsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24gcCB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24gcCxcbiAgICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24gcCB7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA3cmVtOyB9XG4gICAgICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiBwOjpiZWZvcmUsXG4gICAgICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24gcDo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvaWNvbnMvZXhjbGFtYXRpb24tdHJpYW5nbGUtb3JhbmdlLnN2Zyk7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgIGxlZnQ6IDA7IH0gfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSxcbi5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSB7XG4gIG1hcmdpbi1yaWdodDogLTFyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMXJlbTsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAuc2VjdGlvbi10YWItdGl0bGUsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAuc2VjdGlvbi10YWItdGl0bGUge1xuICAgIHBhZGRpbmc6IDAgMXJlbSAxcmVtIDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3gsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLml0ZW0udGl0bGUsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAuaXRlbS50aXRsZSB7XG4gICAgICBwYWRkaW5nOiAxcmVtIDA7IH1cbiAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAuaXRlbS50aXRsZSAuc3dpdGNoLFxuICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAuaXRlbS50aXRsZSAuc3dpdGNoIHtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW0gM3JlbTsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoLFxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpmb2N1cyxcbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6aG92ZXIsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6Zm9jdXMsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jb250YWN0LXJvdy10YWI5IC50aXRsZS10YWJzLWJveCAucHJvZHVjdC5kYXRhLml0ZW1zID4gLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaDpob3ZlciB7XG4gICAgICBib3JkZXItYm90dG9tOiBzb2xpZDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAwLjhyZW07XG4gICAgICBjb2xvcjogIzE3YzhjMDsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMsXG4uY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIHtcbiAgbWFyZ2luLWJvdHRvbTogOHJlbTsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIG1hcmdpbjogMXJlbTtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLW5hbWUsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbmFtZSB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1saW5rLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLWxpbmsge1xuICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLXBob25lLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLXBob25lIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1waG9uZTo6YmVmb3JlLFxuICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItcGhvbmU6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy90ZWxlcGhvbmUtZ3JheS5zdmdcIik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbWFpbCxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1tYWlsIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1tYWlsOjpiZWZvcmUsXG4gICAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1tYWlsOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbC1ncmF5LnN2Z1wiKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEsXG4uY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYSB7XG4gIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gIG1pbi1oZWlnaHQ6IDM1NHB4OyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmZpZWxkLmNvbW1lbnQucmVxdWlyZWQsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5maWVsZC5jb21tZW50LnJlcXVpcmVkIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgIHBhZGRpbmctbGVmdDogMnJlbTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmJveC1pdGVtcy1pbnB1dCxcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmJveC1pdGVtcy1pbnB1dCB7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTsgfSB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5mb3JtLmNvbnRhY3QgLmZpZWxkLnRlcm1zLFxuLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmZpZWxkLnRlcm1zIHtcbiAgcGFkZGluZzogMXJlbSAwIDAgMDsgfVxuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5maWVsZC50ZXJtcyAubGFiZWwsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5maWVsZC50ZXJtcyAubGFiZWwge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5hY3Rpb25zLXRvb2xiYXIsXG4uY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuYWN0aW9ucy10b29sYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5ib3gtaXRlbS10ZXJtcyxcbi5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5ib3gtaXRlbS10ZXJtcyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5ib3gtaXRlbS10ZXJtcyxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuYm94LWl0ZW0tdGVybXMge1xuICAgICAgbWluLWhlaWdodDogMzcwcHg7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuLFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICBmb250LXNpemU6IDNyZW07IH0gfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlLFxuLmNtcy1rb253ZXJzamEtYjJiIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICBtaW4taGVpZ2h0OiA0MjBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogMS8xICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgICAgbWF4LWhlaWdodDogNDAwcHg7IH0gfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbixcbi5jbXMta29ud2Vyc2phLWIyYiAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbWF4LXdpZHRoOiA5MDBweDsgfVxuIiwiLy8gU3R5bGVzIG1vdmVkIGZyb20gdmVuZG9yL21hZ2VudG8vdGhlbWUtZnJvbnRlbmQtYmxhbmsvTWFnZW50b19Db250YWN0L3dlYi9jc3Mvc291cmNlL19tb2R1bGUubGVzc1xuLy8gaW4gb3JkZXIgdG8gYXZvaWQgbG9hZGluZyB0aGVtIG9uIGV2ZXJ5IHBhZ2UgdmlhIHN0eWxlcy1tLmNzcyBhbmQgc3R5bGVzLWwuc2Nzc1xuXG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtLFxuLmNtcy1rb253ZXJzamEtYjJiIHtcbiAgICAuY29sdW1uOm5vdCguc2lkZWJhci1tYWluKSAuZm9ybS5jb250YWN0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIC5jb2x1bW46bm90KC5zaWRlYmFyLWFkZGl0aW9uYWwpIC5mb3JtLmNvbnRhY3Qge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICBwYWRkaW5nOiA0cmVtIDJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgIDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDYwcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY3MtZGFzaGJvYXJkIC5sZWdlbmQge1xuICAgICAgICBoMiB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICNtYWluY29udGVudCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICB9XG5cbiAgICAuc2VjdGlvbi13cmFwcGVyIHtcbiAgICAgICAgcGFkZGluZzogM3JlbSAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG5cbiAgICAgICAgLmNvbnRhY3QtYm94IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbTtcblxuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBtaW4td2lkdGg6IDI1MHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMzQ3cHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250YWN0LWJ0biB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAycHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNjBweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbSAwLjVyZW0gMy41cmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAwLjVyZW0gMC41cmVtIDA7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3RlbGVwaG9uZS1wdXJwbGUuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MyU7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udGFjdC1idG4tbWFpbCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21haWwtcHVycGxlLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb250YWN0LWJveC1ob3VycyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyLjNyZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Nsb2NrLXB1cnBsZS5zdmdcIik7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiA1MyU7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDNyZW0gMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDNyZW07XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCAkY29sb3JfcGFwaWxhcnRfb3JhbmdlO1xuXG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA3cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL2V4Y2xhbWF0aW9uLXRyaWFuZ2xlLW9yYW5nZS5zdmcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY29udGFjdC1yb3ctdGFiOSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMXJlbTtcblxuICAgICAgICAuc2VjdGlvbi10YWItdGl0bGUge1xuICAgICAgICAgICAgcGFkZGluZzogMCAxcmVtIDFyZW0gMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAudGl0bGUtdGFicy1ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgICAgIC5pdGVtLnRpdGxlIHtcbiAgICAgICAgICAgICAgICAvLyBtaW4td2lkdGg6IDE2NXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcblxuICAgICAgICAgICAgICAgIC5zd2l0Y2gge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAzcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLml0ZW0udGl0bGUuYWN0aXZlPi5zd2l0Y2gsXG4gICAgICAgICAgICAucHJvZHVjdC5kYXRhLml0ZW1zPi5pdGVtLnRpdGxlLmFjdGl2ZT4uc3dpdGNoOmZvY3VzLFxuICAgICAgICAgICAgLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZS5hY3RpdmU+LnN3aXRjaDpob3ZlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2FxdWE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIC5zZWN0aW9uLWNvbnRhY3QtdGFicyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDhyZW07XG5cbiAgICAgICAgLmNvbnRlbnQtdGFiLWJveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcblxuICAgICAgICAgICAgLnRhYi1uYW1lIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50YWItbGluayB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGFiLXBob25lIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvdGVsZXBob25lLWdyYXkuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGFiLW1haWwge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tYWlsLWdyYXkuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIC8vZm9ybVxuICAgIC5mb3JtLmNvbnRhY3Qge1xuICAgICAgICAuZmllbGQgLmNvbnRyb2w+dGV4dGFyZWEge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTVweDtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM1NHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkLmNvbW1lbnQucmVxdWlyZWQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1pdGVtcy1pbnB1dCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkLnRlcm1zIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMCAwIDA7XG5cbiAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMwcHgpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtaXRlbS10ZXJtcyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAzNzBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy9zdHJlZmEgZGxhIGZpcm1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmUnKSB7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDEvMSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgbWluLWhlaWdodDogNDIwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgbWF4LXdpZHRoOiA5MDBweDtcbiAgICB9XG5cblxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuXG4udXNlci1kcm9wZG93bi1tZW51IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm94LXNoYWRvdzogMnB4IDJweCA1cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gIC51c2VyLWRyb3Bkb3duLW1lbnUgbGkge1xuICAgIGJhY2tncm91bmQ6IHdoaXRlOyB9XG4gIC51c2VyLWRyb3Bkb3duLW1lbnUgYSB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBtYXJnaW46IDAuNXJlbSAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQuMDFlbSkge1xuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluOmhvdmVyIC51c2VyLWRyb3Bkb3duLW1lbnUge1xuICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0LjAxZW0pIHtcbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOjphZnRlciB7XG4gICAgY29udGVudDogJ1xcMjc2Ric7XG4gICAgcm90YXRlOiA5MGRlZztcbiAgICBmb250LXNpemU6IDJyZW07IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyOjphZnRlciB7XG4gICAgcm90YXRlOiAyNzBkZWc7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIG1pbi13aWR0aDogODBweDsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi51c2VyLWRyb3Bkb3duLW1lbnUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwcHg7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiA1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDJweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuXG4gICAgbGkge1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC04MDA7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgfVxufVxuXG4uY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluOmhvdmVyIHtcbiAgICAudXNlci1kcm9wZG93bi1tZW51IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz5sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGluY2x1ZGUgbWVkaWEoJz5sYXB0b3AnKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5re1xuICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgIGNvbnRlbnQ6ICdcXDI3NkYnO1xuICAgICAgICAgICAgcm90YXRlOiA5MGRlZztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICY6OmFmdGVye1xuICAgICAgICAgICAgICAgIHJvdGF0ZTogMjcwZGVnO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBtaW4td2lkdGg6IDgwcHg7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmN1c3RvbS1tb2RhbC1vcGVuIHtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG5cbi5jdXN0b20tbW9kYWwge1xuICBkaXNwbGF5OiBub25lO1xuICB6LWluZGV4OiAtMTtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAwcHg7XG4gIHdpZHRoOiAwcHg7IH1cbiAgLmN1c3RvbS1tb2RhbCAuY29udGVudCB7XG4gICAgei1pbmRleDogLTE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jdXN0b20tbW9kYWwgLmN1c3RvbS1tb2RhbC1jbG9zZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgbWFyZ2luOiAxcmVtO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMiU7IH1cblxuLmN1c3RvbS1tb2RhbC5vcGVuIHtcbiAgei1pbmRleDogOTk3O1xuICBvcGFjaXR5OiAxO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHRvcDogMDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3VzdG9tLW1vZGFsLm9wZW4gLmNvbnRlbnQge1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgei1pbmRleDogOTk5O1xuICAgIG1heC13aWR0aDogOTV2dztcbiAgICBtYXgtaGVpZ2h0OiA5NXZoO1xuICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDgwMHB4O1xuICAgIGhlaWdodDogZml0LWNvbnRlbnQ7IH1cbiAgLmN1c3RvbS1tb2RhbC5vcGVuIC5vdmVybGF5IHtcbiAgICB6LWluZGV4OiA5OTg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDBiMzsgfVxuXG4ubmV3c2xldHRlci1wb3B1cC1jb250ZW50IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHBhZGRpbmc6IDJyZW07XG4gIGZvbnQtc2l6ZTogMi44cmVtOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgaDMge1xuICAgIGZvbnQtc2l6ZTogNHJlbTsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IGgzLCAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IHAge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IHAge1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLnBvcHVwLWJveC1pbnB1dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAucG9wdXAtYm94LWlucHV0IHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gICAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAucG9wdXAtYm94LWlucHV0IC5maWVsZCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAucG9wdXAtY29tbWVudCB7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAubmV3c2xldHRlcl9fYnRuIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmE3MDEzO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IHNvbGlkIDJweCAjZmE3MDEzO1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAxLjJyZW0gM3JlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5uZXdzbGV0dGVyX19idG4ge1xuICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTsgfSB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLmFtZm9ybS1mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDUwMHB4O1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAuYW1mb3JtLWZvcm0gLmFjdGlvbi5wcmltYXJ5LCAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5hbWZvcm0tcGFyZW50IC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAuY3MtbmV3c2xldHRlcl9fYWN0aW9ucyB7XG4gICAgaGVpZ2h0OiA1LjRyZW07XG4gICAgd2lkdGg6IDcwcHg7IH1cbiAgICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5jcy1uZXdzbGV0dGVyX19hY3Rpb25zIC5jcy1uZXdzbGV0dGVyX19idXR0b24ge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLmNzLW5ld3NsZXR0ZXJfX2FjdGlvbnMgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCI+XCI7IH1cbiIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLmN1c3RvbS1tb2RhbC1vcGVuIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5jdXN0b20tbW9kYWwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogLTE7XG4gICAgb3BhY2l0eTogMDtcbiAgICBoZWlnaHQ6IDBweDtcbiAgICB3aWR0aDogMHB4O1xuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgIC5jdXN0b20tbW9kYWwtY2xvc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgICAgIG1hcmdpbjogMXJlbTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDIlO1xuICAgIH1cbn1cblxuLmN1c3RvbS1tb2RhbC5vcGVuIHtcbiAgICB6LWluZGV4OiA5OTc7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgLmNvbnRlbnQge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICB6LWluZGV4OiA5OTk7XG4gICAgICAgIG1heC13aWR0aDogOTV2dztcbiAgICAgICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICAgICAgbWluLXdpZHRoOiAzMDBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6IDgwMHB4O1xuICAgICAgICBoZWlnaHQ6IGZpdC1jb250ZW50O1xuICAgICAgICAvLyBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgLy8gICAgIHdpZHRoOiA5NSU7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICAub3ZlcmxheSB7XG4gICAgICAgIHotaW5kZXg6IDk5ODtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMGIzO1xuICAgIH1cbn1cblxuLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudHtcbiAgICBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGZvbnQtc2l6ZTogMi44cmVtO1xuICAgIGgze1xuICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgfVxuICAgIGgzLHB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG4gICAgcHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgfVxuICAgIC5wb3B1cC1ib3gtaW5wdXR7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgICAgIC5maWVsZHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuICAgIC5wb3B1cC1jb21tZW50e1xuICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgLy8gcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuICAgIC5uZXdzbGV0dGVyX19idG57XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9vcmFuZ2U7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlcjogc29saWQgMnB4ICRjb2xvcl9wYXBpbGFydF9vcmFuZ2U7XG4gICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgICBwYWRkaW5nOiAxLjJyZW0gM3JlbTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmFtZm9ybS1mb3Jte1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gICAgLmFtZm9ybS1mb3JtIC5hY3Rpb24ucHJpbWFyeSwgLmFtZm9ybS1wYXJlbnQgLmFjdGlvbi5wcmltYXJ5e1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxuXG4gICAgLmNzLW5ld3NsZXR0ZXJfX2FjdGlvbnN7XG4gICAgICAgIGhlaWdodDogNS40cmVtO1xuICAgICAgICB3aWR0aDogNzBweDtcblxuICAgICAgICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgIC8vIGNvbnRlbnQ6IHVybChcIkB7YmFzZURpcn1pbWFnZXMvaWNvbnMvYXJyb3dfbmV4dC5zdmdcIik7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCI+XCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnJlbmRlcmVkLWZvcm0gYnV0dG9uLFxuLnJlbmRlcmVkLWZvcm0gaW5wdXQsXG4ucmVuZGVyZWQtZm9ybSBzZWxlY3QsXG4ucmVuZGVyZWQtZm9ybSB0ZXh0YXJlYSB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgbWFyZ2luOiAwIDAgMC4yZW07XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4ucmVuZGVyZWQtZm9ybSBpbnB1dC5hbWZvcm0tY2hlY2tib3gge1xuICB3aWR0aDogYXV0bzsgfVxuXG4uYW1jZm9ybS1wYWdlLXdyYXAge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG5cbi5hbWZvcm0tZm9ybSB7XG4gIG1hcmdpbjogMCBhdXRvIDEwcHg7XG4gIG1heC13aWR0aDogNzAwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHBhZGRpbmc6IDNyZW0gMS41cmVtOyB9XG5cbi5hbWZvcm0tdmVyc2lvbnR3by1sYWJlbCB7XG4gIGZvbnQtc2l6ZTogMC44NWVtOyB9XG5cbi5yZW5kZXJlZC1mb3JtIC5jaGVja2JveC1ncm91cCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gIHBhZGRpbmc6IDJyZW0gNHJlbTsgfVxuXG4ucmVuZGVyZWQtZm9ybSAuZm9ybS1jb250cm9sOm5vdChbbmFtZT1cImRvY3VtZW50XCJdKSwgLnJlbmRlcmVkLWZvcm0gb3V0cHV0IHtcbiAgZm9udC1zaXplOiAxZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgd2lkdGg6IDEwMCU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi5yZW5kZXJlZC1mb3JtIC5maWVsZHNldCAuZmllbGRzIC5maWVsZC5mb3JtLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTsgfVxuXG4ucmVuZGVyZWQtZm9ybSAuZmllbGRzZXQgLmZpZWxkcyAuZmllbGQgLmlucHV0LXRleHQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAucmVuZGVyZWQtZm9ybSAuZmllbGRzZXQgLmZpZWxkcyAuZmllbGQgLmlucHV0LXRleHQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cblxuLmFtZm9ybS1mb3JtIC5hY3Rpb24ucHJpbWFyeSwgLmFtZm9ybS1wYXJlbnQgLmFjdGlvbi5wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzdlNTdjMjtcbiAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gIG1hcmdpbi10b3A6IDRyZW07XG4gIGNvbG9yOiAjZmZmO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmFtZm9ybS1mb3JtIC5hY3Rpb24ucHJpbWFyeTpob3ZlciwgLmFtZm9ybS1wYXJlbnQgLmFjdGlvbi5wcmltYXJ5OmhvdmVyIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmFtZm9ybS1mb3JtIC5hY3Rpb24ucHJpbWFyeSwgLmFtZm9ybS1wYXJlbnQgLmFjdGlvbi5wcmltYXJ5IHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9IH1cblxuLmFtZm9ybS1mb3JtIC5hbWNmb3JtLXRvb2xiYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcclxuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcclxuXHJcbi5yZW5kZXJlZC1mb3JtIGJ1dHRvbiwgXHJcbi5yZW5kZXJlZC1mb3JtIGlucHV0LCBcclxuLnJlbmRlcmVkLWZvcm0gc2VsZWN0LCBcclxuLnJlbmRlcmVkLWZvcm0gdGV4dGFyZWF7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xyXG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcclxuICAgIGNvbG9yOiAjNDU1YTY0O1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcclxuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbn1cclxuLnJlbmRlcmVkLWZvcm0gaW5wdXQuYW1mb3JtLWNoZWNrYm94IHtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG59XHJcblxyXG4uYW1jZm9ybS1wYWdlLXdyYXB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG59XHJcbi5hbWZvcm0tZm9ybSB7XHJcbiAgICBtYXJnaW46IDAgYXV0byAxMHB4O1xyXG4gICAgbWF4LXdpZHRoOiA3MDBweDtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gICAgcGFkZGluZzogM3JlbSAxLjVyZW07XHJcbn1cclxuXHJcbi5hbWZvcm0tdmVyc2lvbnR3by1sYWJlbHtcclxuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xyXG59XHJcblxyXG4ucmVuZGVyZWQtZm9ybXtcclxuICAgIC5jaGVja2JveC1ncm91cHtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xyXG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XHJcbiAgICAgICAgcGFkZGluZzogMnJlbSA0cmVtO1xyXG4gICAgfVxyXG59XHJcbi5yZW5kZXJlZC1mb3JtIC5mb3JtLWNvbnRyb2w6bm90KFtuYW1lPVwiZG9jdW1lbnRcIl0pLCAucmVuZGVyZWQtZm9ybSBvdXRwdXR7XHJcbiAgICBmb250LXNpemU6IDFlbTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xyXG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcclxuICAgIGNvbG9yOiAjNDU1YTY0O1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZjtcclxuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xyXG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcclxuICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcclxuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xyXG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbn1cclxuLnJlbmRlcmVkLWZvcm0gLmZpZWxkc2V0IC5maWVsZHMge1xyXG4gICAgLmZpZWxkLmZvcm0tZ3JvdXB7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogM3JlbTtcclxuICAgIH1cclxuXHJcbiAgICAuZmllbGQgLmlucHV0LXRleHQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQgLmlucHV0LXRleHQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcclxuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyIWltcG9ydGFudDtcclxuICAgICAgICBib3gtc2hhZG93OiBub25lIWltcG9ydGFudDtcclxuICAgIH1cclxuXHJcbiAgICBsYWJlbC5mYi1jaGVja2JveC1ncm91cC1sYWJlbC5sYWJlbHtcclxuICAgICAgICAvLyB0b3A6LTNyZW07XHJcbiAgICAgICAgLy8gcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC8vIGxlZnQ6IDA7XHJcbiAgICAgICAgLy8gd2lkdGg6IGluaGVyaXQ7XHJcbiAgICB9XHJcbn1cclxuXHJcbi5hbWZvcm0tZm9ybSAuYWN0aW9uLnByaW1hcnksIC5hbWZvcm0tcGFyZW50IC5hY3Rpb24ucHJpbWFyeXtcclxuICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xyXG4gICAgcGFkZGluZzogMXJlbSAyLjVyZW07XHJcbiAgICBtYXJnaW4tdG9wOiA0cmVtO1xyXG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcclxuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgJjpob3ZlcntcclxuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XHJcbiAgICB9XHJcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XHJcbiAgICAgICAgd2lkdGg6IGF1dG87XHJcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gICAgICAgIC8vIHJpZ2h0OiAxMiU7XHJcbiAgICB9XHJcbn1cclxuLmFtZm9ybS1mb3JtIC5hbWNmb3JtLXRvb2xiYXJ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5yZWRpbmdvLXVuaXQtcHJpY2Utd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDAgMCAwLjVyZW0gMDtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cbiIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLnJlZGluZ28tdW5pdC1wcmljZS13cmFwcGVye1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDAgMCAwLjVyZW0gMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ud2lzaGxpc3QgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtY29sb3I6ICMxN2M4YzA7XG4gIHRvcDogLTVweDtcbiAgcmlnaHQ6IC04cHg7XG4gIHBhZGRpbmc6IDAuOHJlbTtcbiAgd2lkdGg6IDE1cHg7XG4gIGhlaWdodDogMTVweDtcbiAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gIC53aXNobGlzdCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3Q6OmJlZm9yZSB7XG4gICAgY29udGVudDogbm9uZTsgfVxuICAud2lzaGxpc3QgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgIG1pbi13aWR0aDogMTVweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxcmVtOyB9XG5cbi5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyB7XG4gIHBhZGRpbmctdG9wOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgcGFkZGluZy1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyB7XG4gICAgICBwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIC5jcy1idXlib3hfX2FkZHRvLWxpc3Qge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuICAuY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMgLmNzLWJ1eWJveF9fYWRkdG8taXRlbS0td2lzaGxpc3QgLmNzLWJ1eWJveF9fYWRkdG8taWNvbi0td2lzaGxpc3Qge1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5cbi53aXNobGlzdHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3R7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9hcXVhO1xuICAgICAgICB0b3A6IC01cHg7XG4gICAgICAgIHJpZ2h0OiAtOHB4O1xuICAgICAgICBwYWRkaW5nOiAwLjhyZW07XG4gICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFue1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gY2F0YWxvZyBwcm9kdWN0XG4uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXN7XG4gICAgcGFkZGluZy10b3A6IDEuNXJlbSFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDEuNXJlbSFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nLXRvcDogMCFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNzLWJ1eWJveF9fYWRkdG8tbGlzdHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cbiAgICAuY3MtYnV5Ym94X19hZGR0by1pdGVtLS13aXNobGlzdHtcbiAgICAgICAgLmNzLWJ1eWJveF9fYWRkdG8taWNvbi0td2lzaGxpc3R7XG4gICAgICAgICAgICB3aWR0aDogMnJlbTtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAucGFnZWJ1aWxkZXItbW9iaWxlLW9ubHkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfSB9XG5cbi5wYWdlYnVpbGRlci1tb2JpbGUtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4ucGFnZWJ1aWxkZXItbW9iaWxlLW9ubHl7XG4gICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG59XG4ucGFnZWJ1aWxkZXItbW9iaWxlLWhpZGRlbntcbiAgICBkaXNwbGF5OiBub25lO1xufSJdLCJtYXBwaW5ncyI6IkFBQUE7O0FDRUE7QURDQTtBRUhBOzs7QURPQTtBRGtCQTs7QUNmQTtBRFZBOztBQ2FBO0FEVkE7QUVIQTs7O0FEa0JBO0FET0E7O0FDSkE7QUVmQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUVBOzs7QUFHQTtBQUNBO0FBRUE7QUNqQkE7QURtQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7Ozs7QUFJQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQUE7QUFBQTtBQURBO0FBS0E7QUFDQTtBQUNBO0FBSUE7QUFFQTtBQUVBO0FBUUE7QUFWQTtBQUtBO0FBQ0E7QUFDQTtBQVBBO0FBZUE7QUFDQTtBQUlBO0FBRUE7O0FIMUVBOztBS0VBO0FMQ0E7QUVIQTs7O0FHT0E7QUxrQkE7O0FLZkE7QUxWQTs7QUthQTtBTFZBO0FFSEE7OztBR2tCQTtBTE9BOztBS0pBO0FMckJBOztBS3dCQTtBTHJCQTtBRUhBOzs7QUc2QkE7QUxKQTs7QUtPQTtBQzlCQTs7QURpQ0E7QUM3QkE7OztBRGlDQTtBQ3hCQTs7O0FENEJBO0FDbEJBOztBRHFCQTtBRTFDQTtBRE9BO0FBQ0E7QUNKQTtBQUNBO0FBQ0E7QUFFQTtBRGlCQTtBQUNBO0FBQ0E7QUNqQkE7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUNvaEJBO0FEcmhCQTtBQUlBO0FDaWhCQTtBRHJoQkE7QUFRQTtBQzZnQkE7QURy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O0FZcEVBO0Fia0tBO0FBQ0E7QUFDQTtBYXBLQTtBYjBLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FhcExBO0FidUxBO0FBQ0E7QWF4TEE7QWI4T0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FhdFBBO0FieVBBO0FBQ0E7QWExUEE7QWIyU0E7QUFDQTtBYXRTQTtBYjhTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QWExVEE7QWJ3V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0FBQ0E7QWE5WEE7QWJ1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWNsR0E7QURrQ0E7QUFDQTtBQUNBO0FBVEE7QVpsQkE7QVlrQkE7QVpYQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FZSUE7QVpNQTtBQUNBO0FBQ0E7QUFJQTtBWVpBO0Faa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWXZDQTtBWitDQTtBWS9DQTtBYjZJQTtBQUNBO0FBQ0E7QWEvSUE7QWJxSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBYS9KQTtBYmtLQTtBQUNBO0FhbktBO0FieU5BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBYWpPQTtBYm9PQTtBQUNBO0Fhck9BO0Fic1JBO0FBQ0E7QWRxUEE7QTJCNWdCQTtBQ2pCQTtBQUtBO0FBQ0E7QURzQkE7QWJvUkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQVVBO0FhaFNBO0FiOFVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFtQkE7QUFDQTtBYXBXQTtBQUVBO0FBRkE7QUFLQTs7QW5DL0RBOztBcUNFQTtBckNDQTtBRUhBOzs7QW1DT0E7QXJDa0JBOztBcUNmQTtBckNWQTs7QXFDYUE7QXJDVkE7QUVIQTs7O0FtQ2tCQTtBckNPQTs7QXFDSkE7QXJDckJB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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDL0lBOzs7OztBRG9KQTtBQUNBO0FDckpBO0FEMEpBO0FBQ0E7QUMzSkE7OztBRDBKQTtBQUNBO0FDM0pBOzs7QUQrSkE7QUMvSkE7Ozs7O0FEeUtBO0FDaEtBOztBRCtNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ2xPQTs7O0FEdU9BO0FBQ0E7QUN4T0E7OztBRDhPQTtBQUNBO0FBQ0E7QUNoUEE7O0FEcVBBO0FDclBBOztBRHlQQTtBQUNBO0FBQ0E7QUN2UEE7O0FEa1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3JSQTs7O0FEMFJBO0FBQ0E7QUMzUkE7OztBRGlTQTtBQUNBO0FBQ0E7QUNuU0E7O0FEd1NBO0FDeFNBOzs7O0FENlNBO0FBQ0E7QUFDQTtBQy9TQTs7Ozs7O0FEc1RBO0FDNVNBOztBRHdQQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFnREE7QUFDQTtBQUNBO0FDN1RBOzs7QURnUkE7QUFDQTtBQ2pSQTs7O0FEdVJBO0FBQ0E7QUFDQTtBQ3pSQTs7QUQ4UkE7QUM5UkE7Ozs7QURtU0E7QUFDQTtBQUNBO0FDclNBOzs7Ozs7QUQ0U0E7QUM1U0E7O0FEZ1VBO0FDaFVBOzs7QURrSkE7QUNwSUE7O0FEMklBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzVJQTs7QURzSkE7QUFDQTtBQUNBO0FBQ0E7QUNySkE7O0FEa0pBO0FBQ0E7QUFDQTtBQUNBO0FBUUE7QUFDQTtBQ3pKQTtBRDJCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNuQ0E7QUR1Q0E7QUN2Q0E7QUFRQTtBQVJBO0FEOEhBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FDMUhBO0FBWkE7QUQyRUE7QUMzRUE7QURpRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM3RkE7QURrR0E7QUFDQTtBQ25HQTtBRHdHQTtBQUNBO0FDekdBO0FEd0dBO0FBQ0E7QUN6R0E7QUQ2R0E7QUM3R0E7QUF5QkE7QUFDQTtBQUNBO0FBM0JBO0FBOEJBO0FBOUJBO0FEdURBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzVEQTtBQXlDQTtBQUNBO0FBMUNBO0FEbUVBO0FBQ0E7QUNwRUE7QUF5REE7QUF6REE7QURpRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUM3RkE7QURrR0E7QUFDQTtBQ25HQTtBRHdHQTtBQUNBO0FDekdBO0FEd0dBO0FBQ0E7QUN6R0E7QUQ2R0E7QUM3R0E7QUR1SEE7QUN2SEE7QUF1RUE7QUF2RUE7QURzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6TEE7QUQ4TEE7QUFDQTtBQy9MQTtBRHFNQTtBQUNBO0FBQ0E7QUN2TUE7QUQ0TUE7QUM1TUE7QURnTkE7QUFDQTtBQUNBO0FDbE5BO0FENk5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWdEQTtBQUNBO0FBQ0E7QUNsU0E7QURxUEE7QUFDQTtBQ3RQQTtBRDRQQTtBQUNBO0FBQ0E7QUM5UEE7QURtUUE7QUNuUUE7QUR3UUE7QUFDQTtBQUNBO0FDMVFBOzs7QURpUkE7QUNqUkE7QURxU0E7QUNyU0E7QUR1SEE7QUN2SEE7QUQ2TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDaFBBO0FEcVBBO0FBQ0E7QUN0UEE7QUQ0UEE7QUFDQTtBQUNBO0FDOVBBO0FEbVFBO0FDblFBO0FEd1FBO0FBQ0E7QUFDQTtBQzFRQTs7O0FEaVJBO0FDalJBO0FEc0tBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDekxBO0FEOExBO0FBQ0E7QUMvTEE7QURxTUE7QUFDQTtBQUNBO0FDdk1BO0FENE1BO0FDNU1BO0FEZ05BO0FBQ0E7QUFDQTtBQ2xOQTtBRGlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzdGQTtBRGtHQTtBQUNBO0FDbkdBO0FEd0dBO0FBQ0E7QUN6R0E7QUR3R0E7QUFDQTtBQ3pHQTtBRDZHQTtBQzdHQTtBRHVIQTtBQ3ZIQTtBN0JnQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QTZCaENBO0E3Qm1FQTtBNkJuRUE7QTdCc0dBO0FBQ0E7QUFDQTtBNkJ4R0E7QTdCOEdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QTZCbklBO0E3QnNJQTtBQUNBO0E2QnZJQTtBN0JrTEE7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0E2QnJNQTtBN0J3TUE7QUFDQTtBNkJ6TUE7QTdCK09BO0FBQ0E7QTZCaFBBO0E3QndQQTtBQUNBO0FBQ0E7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QWdCQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QTVDOFBBO0E0Q25RQTtBQVFBO0FBUkE7O0FBYUE7QUFDQTtBQWRBOztBQWlCQTtBQUNBO0FBbEJBO0FBdUJBO0FBQ0E7QUFDQTtBNUMwT0E7QTRDblFBO0FBNEJBO0FBQ0E7QUE3QkE7QUFpQ0E7QUFDQTtBQWxDQTtBQXVDQTtBQUNBOztBcERsVkE7O0F1REVBO0F2RENBO0FFSEE7OztBcURPQTtBdkRrQkE7O0F1RGZBO0F2RFZBOztBdURhQTtBdkRWQTtBRUhBOzs7QXFEa0JBO0F2RE9BOztBdURKQTtBdkJyQkE7O0F1QndCQTtBdkR4QkE7O0F1RDJCQTtBdkR4QkE7QUVIQTs7O0FxRGdDQTtBdkRQQTs7QXVEVUE7QTlDbkNBO0FBWUE7QVRaQTs7QXVEd0NBO0F2RHJDQTtBRUhBOzs7QXFENkNBO0F2RHBCQTs7QXVEdUJBO0FDakNBO0F4QlZBO0FBQ0E7QUFDQTtBd0JhQTtBQUNBO0FBTkE7QTdDeUJBO0FBQ0E7QTZDMUJBO0E3Q2tDQTtBQUNBO0E2Q25DQTtBQWlCQTtBQUNBO0FBQ0E7QWhEMmdCQTtBZ0Q5aEJBO0FBdUJBO0FBQ0E7O0F4RHZDQTs7QXlERUE7QXpEQ0E7QUVIQTs7O0F1RE9BO0F6RGtCQTs7QXlEZkE7QXpEVkE7O0F5RGFBO0F6RFZBO0FFSEE7OztBdURrQkE7QXpET0E7O0F5REpBO0FoRHJCQTtBQVlBO0FUWkE7O0F5RDBCQTtBekR2QkE7QUVIQTs7O0F1RCtCQTtBekROQTs7QXlEU0E7QUNaQTtBQUdBO0FBR0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFKQTtBL0NFQTtBQUNBO0ErQ0hBO0EvQ1dBO0FBQ0E7QStDSUE7QUFDQTtBQUNBO0FBRkE7QUFLQTtBQUNBO0FBQ0E7QUFQQTtBL0NkQTtBQUNBO0ErQ2FBO0EvQ0xBO0FBQ0E7QStDeUJBO0FB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OztBaUVPQTtBbkVrQkE7O0FtRWZBO0FuRVZBOztBbUVhQTtBbkVWQTtBRUhBOzs7QWlFa0JBO0FuRU9BOztBbUVKQTtBbkVyQkE7O0FtRXdCQTtBbkVyQkE7QUVIQTs7O0FpRTZCQTtBbkVKQTs7QW1FT0E7QW5FaENBOztBbUVtQ0E7QW5FaENBO0FFSEE7OztBaUV3Q0E7QW5FZkE7O0FtRWtCQTtBbkUzQ0E7O0FtRThDQTtBbkUzQ0E7QUVIQTs7O0FpRW1EQTtBbkUxQkE7O0FtRTZCQTtBbkV0REE7O0FtRXlEQTtBbkV0REE7QUVIQTs7O0FpRThEQTtBbkVyQ0E7O0FtRXdDQTtBbkVqRUE7O0FtRW9FQTtBbkVqRUE7QUVIQTs7O0FpRXlFQTtBbkVoREE7O0FtRW1EQTtBQzVFQTtBQVNBO0FDSkE7QUNlQTtBQUNBO0FBQ0E7QUFDQTtBRGZBO0FBQ0E7QWpDSEE7QTVCdWlCQTtBNkR4aUJBO0FqQ1dBO0FBS0E7QUFDQTtBaUNUQTtBQ3VCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RGtnQkE7QTZEaGlCQTtBQ2lDQTtBRGpDQTtBQ3VDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0E5RHFmQTtBNkRoaUJBO0FDOENBO0FEOUNBO0FDbURBO0FEbkRBO0FDdURBO0FEbkRBO0FDaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTlEb2RBO0E2RDVoQkE7QUMyRUE7O0FDNUZBOzs7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBS0E7QUFDQTs7QXZFckJBOztBd0VFQTtBeEVDQTtBRUhBOzs7QXNFT0E7QXhFa0JBOztBd0VmQTtBQ0FBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBREE7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBUUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNB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QUFDQTtBQUNBO0EyRDRQQTtBM0RwUEE7QTJEb1BBO0E1RHRKQTtBQUNBO0FBQ0E7QTREb0pBO0E1RDlJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0E0RG9JQTtBNURqSUE7QUFDQTtBNERnSUE7QTVEMUVBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBNERrRUE7QTVEL0RBO0FBQ0E7QTREOERBO0E1RGJBO0FBQ0E7QTREb0JBO0E1RFpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBNERGQTtBQUdBO0E1RDZDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBbUJBO0FBQ0E7QTREckVBO0FBQ0E7QUFHQTtBNURyUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QTREMlBBO0FBTkE7QTVEbE5BO0E0RGtOQTtBNUQvS0E7QUFDQTtBQUNBO0E0RDZLQTtBNUR2S0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBNERrSkE7QTVEL0lBO0FBQ0E7QTREOElBO0E1RG5HQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QTREZ0ZBO0E1RDdFQTtBQUNBO0E0RDRFQTtBNUR0Q0E7QUFDQTtBNEQ2Q0E7QTVEckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBNER1QkE7QUFHQTtBNURvQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0E0RDVDQTtBQUNBO0FBR0E7QTVEOVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0E0RCtRQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOQTtBNUQzT0E7QTREMk9BO0E1RHhNQTtBQUNBO0FBQ0E7QTREc01BO0E1RGhNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNB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QWRBO0FBb0JBO0FBQ0E7QUFDQTtBQXRCQTtBQTRCQTtBQUtBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFEQTtBQUlBO0FBT0E7QUFDQTtBQURBO0FBSUE7QUFRQTtBNUM1TUE7QTRDNE1BO0E1Q3hNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTZCQTtBNENxS0E7QTVDckpBO0E0Q3FKQTtBNUM3SUE7QUFDQTtBNEM0SUE7QTVDN0hBO0FBQ0E7QTRDNEhBO0E1QzNHQTtBQUNBO0E0QzBHQTtBNUM5RkE7QUFDQTtBNEMrR0E7QTVDOU5BO0E0QzhOQTtBNUMxTkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE2QkE7QTRDdUxBO0E1Q3ZLQTtBNEN1S0E7QTVDekpBO0FBQ0E7QTRDd0pBO0E1Q3pJQTtBQUNBO0E0Q3dJQTtBNUNwRUE7QUFDQTtBNENtRUE7QTVDdkRBO0FBQ0E7QTRDc0RBO0FBZUE7QUFyT0E7QUFnUEE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUhBO0FBTUE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FuRjZPQTtBbUZoUEE7QUFRQTs7QUNyVUE7QTVGQUE7O0E0RkdBO0E1RkFBO0FFSEE7OztBMEZRQTtBNUZpQkE7O0E0RmRBO0E1RlhBOztBNEZjQTtBNUZYQTtBRUhBOzs7QTBGbUJBO0E1Rk1BOztBNEZIQTtBNUZ0QkE7O0E0RnlCQTtBNUZ0QkE7QUVIQTs7O0EwRjhCQTtBNUZMQTs7QTRGUUE7QTVGakNBOztBNEZvQ0E7QTVGakNBO0FFSEE7OztBMEZ5Q0E7QTVGaEJBOztBNEZtQkE7QXRDNUNBOzs7Ozs7Ozs7QXNDc0RBO0E1RnREQTs7QTRGeURBO0E1RnREQTtBRUhBOzs7QTBGOERBO0E1RnJDQTs7QTRGd0NBO0E1QmpFQTtBQVNBO0FDeUJBO0FBR0E7QUFDQTtBQUNBO0FBRUE7QXpEb2dCQTtBeUQzZ0JBO0FBVUE7QXpEaWdCQTtBeUQzZ0JBO0FBYUE7QUFHQTtBQUNBO0FB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a0RBO0FBQ0E7QUFDQTtBQXBEQTtBQXVEQTtBQUNBO0FBeERBO0FBNERBO0FBQ0E7QUE3REE7QUFnRUE7QUFoRUE7QUFtRUE7O0E1Sm5KQTs7QTZKRUE7QTdKQ0E7QUVIQTs7O0EySk9BO0E3SmtCQTs7QTZKZkE7QTdKVkE7O0E2SmFBO0E3SlZBO0FFSEE7OztBMkprQkE7QTdKT0E7O0E2SkpBO0FDbEJBOzs7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBVUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFhQTtBQUNBO0F0SitjQTtBc0o3ZEE7QUFpQkE7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBOztBOUp4R0E7O0ErSkVBO0EvSkNBO0FFSEE7OztBNkpPQTtBL0prQkE7O0ErSmZBO0EvSlZBOztBK0phQTtBL0pWQTtBRUhBOzs7QTZKa0JBO0EvSk9BOztBK0pKQTtBQ2xCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FoS1JBOztBaUtFQTtBaktDQTtBRUhBOzs7QStKT0E7QWpLa0JBOztBaUtmQTtBaktWQTs7QWlLYUE7QWpLVkE7QUVIQTs7O0ErSmtCQTtBaktPQTs7QWlLSkE7QUNqQkE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFXQTtBQVhBO0FBY0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QTFKOGdCQTtBMEpqaEJBO0FBS0E7QUFMQTtBQVNBO0FBVEE7QUFhQTtBQUNBOztBbEsxQ0E7O0FtS0VBO0FuS0NBO0FFSEE7OztBaUtPQTtBbktrQkE7O0FtS2ZBO0FuS1ZBOztBbUthQTtBbktWQTtBRUhBOzs7QWlLa0JBO0FuS09BOztBbUtKQTtBM0p3aEJBO0E0SjFpQkE7QUFFQTtBQUNBO0FBRUE7QUFDQTs7Iiwic291cmNlUm9vdCI6IiJ9*//**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
html {
  box-sizing: border-box;
  font-size: 62.5%;
  background: #fff;
  overflow-x: hidden;
  height: -webkit-fill-available; }

*,
*:before,
*:after {
  box-sizing: inherit; }

body {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  -webkit-overflow-scrolling: touch;
  margin: 0;
  font-size: 1.8rem;
  min-height: 100vh;
  min-height: -webkit-fill-available; }

button,
input,
textarea,
select {
  font-family: inherit; }

/* Hide HTML5 Up and Down arrows. */
input[type='number'] {
  -webkit-appearance: textfield;
     -moz-appearance: textfield;
          appearance: textfield; }
  input[type='number']::-webkit-outer-spin-button, input[type='number']::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0; }

/* Hide HTML5 'X' in search input */
input[type='search'] {
  /* Clears the 'X' from Internet Explorer */
  /* Clears the 'X' from Chrome */ }
  input[type='search']::-ms-clear, input[type='search']::-ms-reveal {
    display: none;
    width: 0;
    height: 0; }
  input[type='search']::-webkit-search-decoration, input[type='search']::-webkit-search-cancel-button, input[type='search']::-webkit-search-results-button, input[type='search']::-webkit-search-results-decoration {
    display: none; }

.loading-mask[data-role='main-css-loader'] {
  display: none !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 128rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }
  .cs-container--no-padding {
    padding-left: 0;
    padding-right: 0; }
  .cs-container--use-whole-screen .cs-container__inner {
    max-width: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
body,
html {
  height: 100%;
  max-width: 100vw; }

.no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh; }

.no-scroll-child {
  overflow-y: hidden !important; }

#maincontent {
  flex: 1 0 auto;
  background: #edeff1;
  min-width: 100%; }

.page-wrapper {
  display: block !important;
  min-height: 100%; }
  @media (min-width: 48em) {
    .page-wrapper {
      display: flex !important;
      flex-direction: column !important; } }

.columns .column.main {
  width: auto;
  padding: 4rem 0 0;
  max-width: 100%;
  min-height: 10rem; }
  @media (min-width: 48em) {
    .columns .column.main {
      padding: 4rem 0 0; } }

.cms-home .columns .column.main {
  padding: 0; }
  @media (min-width: 48em) {
    .cms-home .columns .column.main {
      padding: 0; } }

.page-layout-1column .product-info-wrapper {
  width: 100%; }
  @media (min-width: 48em) {
    .page-layout-1column .product-info-wrapper {
      position: absolute;
      right: 0;
      height: 100%;
      width: 40%; } }
  @media (min-width: 64em) {
    .page-layout-1column .product-info-wrapper {
      width: 30%; } }

@media (min-width: 48em) {
  .page-layout-2columns-left .sidebar-main,
  .page-layout-2columns-left .sidebar-additional {
    width: 22.5%;
    padding-right: 40px;
    border-right: 1px solid #f0f0f0; }
  .page-layout-2columns-left .columns {
    display: block; }
  .page-layout-2columns-left .column.main {
    float: right; }
  .page-layout-2columns-left .sidebar-main {
    float: left; } }

a, a:visited {
  color: #7e57c2;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #4d2c91;
  text-decoration: none; }

.gift-options-cart-item {
  display: none; }

@media (min-width: 48em) {
  .paypal-express-review .page-title-wrapper {
    padding: 0 1.5rem; } }

@media (max-width: 63.99em) {
  .paypal-review.view .cs-cart-item__price {
    padding-left: 0 !important; }
  .paypal-review.view .cs-cart-item__subtotal {
    padding-right: 0 !important; } }

@media (min-width: 48em) {
  .paypal-review.view {
    padding: 0 1.5rem; } }

.paypal-express-in-context-mini-cart-container {
  margin-top: 1rem; }

.paypal-review-discount {
  border-bottom: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.login-container .block-new-customer .actions-toolbar {
  margin-top: 2.5rem; }

.login-container .block .block-title {
  font-size: 1.8rem;
  border-bottom: 1px solid #e8e8e8;
  margin-bottom: 1.5rem;
  padding-bottom: 1.2rem; }

.login-container .fieldset:after {
  margin: 1rem 0 0;
  content: attr(data-hasrequired);
  display: block;
  letter-spacing: normal;
  word-spacing: normal;
  color: #e02b27;
  font-size: 1.2rem; }

.block-addresses-list .items.addresses > .item {
  margin-bottom: 2rem; }

.block-addresses-list .items.addresses > .item:last-child {
  margin-bottom: 0; }

.form-address-edit .region_id {
  display: none; }

.form-address-edit .actions-toolbar .action.primary {
  font-size: 1.8rem; }

.form-edit-account .fieldset.password {
  display: none; }

.box-billing-address .box-content,
.box-shipping-address .box-content,
.box-information .box-content,
.box-newsletter .box-content {
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  -webkit-hyphens: auto;
          hyphens: auto;
  line-height: 2.6rem; }

.field.password .control {
  display: flex;
  flex-direction: column; }

.field.password .control .mage-error {
  order: 2; }

.field.password .control .input-text {
  order: 0;
  z-index: 2; }

.fieldset .fullname.field > .label {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }
  .fieldset .fullname.field > .label + .control {
    width: 100%; }

.field.street .field .label {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.control.captcha-image {
  margin-top: 1rem; }

.control.captcha-image .captcha-img {
  vertical-align: middle; }

@media only screen and (max-width: 639px) {
  .account .column.main,
  .account .sidebar-additional {
    margin: 0; } }

@media (max-width: 47.99em) {
  .login-container .fieldset:after {
    text-align: center; }
  .control.captcha-image .captcha-img {
    margin-bottom: 1rem;
    display: block; }
  .form.search.advanced .field.price .with-addon .input-text {
    flex-basis: auto;
    width: 100%; } }

@media (min-width: 48em) {
  .login-container .block .login .actions-toolbar > .primary {
    margin-bottom: 0;
    margin-right: 3rem; }
  .login-container .block .login .actions-toolbar > .secondary {
    float: left; }
  .fieldset .fullname .field .label {
    padding: 6px 15px 0 0;
    text-align: right;
    width: 25.8%;
    box-sizing: border-box;
    float: left; }
  .fieldset .fullname .field .control {
    width: 74.2%;
    float: left; }
  .block-addresses-list .items.addresses {
    font-size: 0; }
  .block-addresses-list .items.addresses > .item {
    display: inline-block;
    font-size: 1.4rem;
    margin-bottom: 2rem;
    vertical-align: top;
    width: 48.8%; }
  .block-addresses-list .items.addresses > .item:nth-last-child(1),
  .block-addresses-list .items.addresses > .item:nth-last-child(2) {
    margin-bottom: 0; }
  .block-addresses-list .items.addresses > .item:nth-child(even) {
    margin-left: 2.4%; }
  .control.captcha-image .captcha-img {
    margin: 0 1rem 1rem 0; }
  .dashboard-welcome-toggler {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-navigation {
  display: none; }
  @media (hover: hover) and (pointer: fine) {
    .cs-slider-navigation {
      position: absolute;
      z-index: 11;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      display: flex;
      align-items: center;
      justify-content: center;
      width: 4.4rem;
      height: 5.2rem;
      border: 0;
      border-radius: 7px;
      background: #fff;
      box-shadow: 1px 1px 2px 0 rgba(0, 0, 0, 0.25);
      padding: 0;
      color: #7e57c2;
      cursor: pointer;
      transition: all 0.3s; }
      .cs-slider-navigation--prev {
        left: 1.5rem; }
      .cs-slider-navigation--next {
        right: 1.5rem; }
      .cs-slider-navigation[disabled] {
        opacity: 0.25;
        cursor: not-allowed; }
        .cs-slider-navigation[disabled] svg {
          filter: grayscale(1); }
      .cs-slider-navigation:not([disabled]):hover {
        box-shadow: 1px 1px 10px 0 rgba(0, 0, 0, 0.25); }
      .cs-slider-navigation__icon {
        width: 1.4rem;
        height: 2.7rem;
        fill: currentColor; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-slider-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 0.8rem;
  min-height: 3rem; }
  .cs-slider-pagination--fraction {
    gap: 0;
    white-space: pre-wrap;
    color: inherit;
    font-weight: 600; }
    .cs-slider-pagination--fraction span {
      color: #11a099; }
  .cs-slider-pagination__bullet {
    position: relative;
    border-radius: 2px;
    background: #fff;
    border: 0;
    inline-size: 2.2rem;
    block-size: 0.9rem;
    transition: all 0.15s;
    overflow: hidden;
    text-indent: -99rem; }
    .cs-slider-pagination__bullet.current {
      background-color: #11a099; }
    .cs-slider-pagination__bullet:only-child {
      display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-addtocart {
  /* stylelint-disable */
  /* stylelint-enable */ }
  .cs-addtocart__wrapper {
    overflow: hidden; }
    @supports ((-webkit-clip-path: inset(0 0 0 0 round 200px)) or (clip-path: inset(0 0 0 0 round 200px))) {
      .cs-addtocart__wrapper {
        -webkit-clip-path: inset(0 0 0 0 round 200px);
                clip-path: inset(0 0 0 0 round 200px); } }
    .page-product-downloadable .update .cs-addtocart__wrapper {
      display: none; }
  .cs-addtocart__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-addtocart__button:hover, .cs-addtocart__button:focus, .cs-addtocart__button:active {
      background-color: #7e57c2 !important; }
    .cs-addtocart__button:before, .cs-addtocart__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-addtocart__button:before {
      width: 3.4em;
      border-radius: 0 200px 200px 0;
      z-index: -1;
      background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
    .cs-addtocart__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-addtocart__button:hover:after {
      width: calc(100% + 2px); }
    .cs-addtocart__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-addtocart__button, .cs-addtocart__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-addtocart__button *, .cs-addtocart__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button:hover:not([disabled]), .cs-addtocart__button:focus:not([disabled]), .cs-addtocart__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-addtocart__button:hover:not([disabled]) *, .cs-addtocart__button:focus:not([disabled]) *, .cs-addtocart__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-addtocart__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-addtocart__button[disabled] {
      /* 
             * ATC btn. in buybox uses deferATCClick()
             * as part of the `Faster Add To Cart` enahncement
             * therefore it's appearance is set to normal all the time.
             */ }
      .cs-buybox .cs-addtocart__button[disabled] {
        opacity: 1; }
    .cs-addtocart__button .cs-addtocart__success-label, .cs-addtocart__button:hover .cs-addtocart__success-label, .cs-addtocart__button:focus .cs-addtocart__success-label, .cs-addtocart__button:active .cs-addtocart__success-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__success-icon *, .cs-addtocart__button:hover .cs-addtocart__success-icon *, .cs-addtocart__button:focus .cs-addtocart__success-icon *, .cs-addtocart__button:active .cs-addtocart__success-icon * {
      fill: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-label, .cs-addtocart__button:hover .cs-addtocart__fail-label, .cs-addtocart__button:focus .cs-addtocart__fail-label, .cs-addtocart__button:active .cs-addtocart__fail-label {
      color: #fff; }
    .cs-addtocart__button .cs-addtocart__fail-icon *, .cs-addtocart__button:hover .cs-addtocart__fail-icon *, .cs-addtocart__button:focus .cs-addtocart__fail-icon *, .cs-addtocart__button:active .cs-addtocart__fail-icon * {
      fill: #fff; }
  .cs-addtocart__button-label, .cs-addtocart__success-label, .cs-addtocart__fail-label {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    white-space: nowrap; }
  .cs-addtocart__configure-icon, .cs-addtocart__button-icon, .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    max-width: none;
    max-height: none;
    width: 2.2rem;
    height: 2.2rem;
    /* stylelint-disable */
    right: 0.8em;
    /* stylelint-enable */ }
  .cs-addtocart__fail-icon {
    transition: none; }
  .cs-addtocart__button-label, .cs-addtocart__success-label {
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1); }
  .cs-addtocart__button-label {
    display: inline-block;
    transform: translate3d(0, 0, 0); }
  .cs-addtocart__loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: scale(0) translate3d(-50%, -50%, 0);
    width: 40px;
    height: 10px;
    opacity: 0;
    transition: opacity 0.15s linear, transform 1s cubic-bezier(0, 0.77, 0.18, 1);
    transition-delay: 0.2s; }
    .cs-addtocart__loading-ball {
      position: absolute;
      display: block;
      width: 10px;
      height: 10px;
      bottom: 0;
      background: #fff;
      border-radius: 50%; }
      .cs-addtocart__loading-ball--1 {
        left: 0; }
      .cs-addtocart__loading-ball--2 {
        left: 15px;
        animation-delay: 0.15s !important; }
      .cs-addtocart__loading-ball--3 {
        left: 30px;
        animation-delay: 0.3s !important; }
  .cs-addtocart__feedback-bg {
    position: absolute;
    left: -1em;
    top: -1px;
    bottom: -1px;
    width: calc(100% + 2.5em);
    transform: translate3d(-100%, 0, 0);
    transform-origin: 0 0;
    transition: transform 0.45s cubic-bezier(0.01, 0.65, 0.38, 1);
    background: #31a43a; }
    .cs-addtocart--no-transitions .cs-addtocart__feedback-bg {
      transition: none; }
    .cs-addtocart--fail .cs-addtocart__feedback-bg {
      background: #cc1c10; }
  .cs-addtocart__success-label, .cs-addtocart__success-icon, .cs-addtocart__fail-label, .cs-addtocart__fail-icon {
    opacity: 0; }
  .cs-addtocart__success-icon, .cs-addtocart__fail-icon {
    height: 1.725em;
    transition-delay: 0.2s; }
  .cs-addtocart__success-label, .cs-addtocart__fail-label {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0) translateX(-2em);
    transition-delay: 0.2s;
    white-space: nowrap;
    padding-right: 3.5rem; }
  .cs-addtocart__minicart {
    width: 100%;
    text-align: center; }
    .cs-addtocart__minicart--sticky, .cs-addtocart__minicart--unstick {
      max-width: 128rem;
      width: 100%;
      margin: 0 auto;
      width: 100%;
      position: fixed;
      top: 0;
      left: 50%;
      transform: translate3d(-50%, 0, 0);
      z-index: 400;
      padding: 0;
      text-align: right;
      display: flex;
      justify-content: flex-end; }
      .cs-addtocart__minicart--sticky .ui-dialog, .cs-addtocart__minicart--unstick .ui-dialog {
        right: 0 !important; }
      .cs-addtocart__minicart--sticky .block-minicart:after, .cs-addtocart__minicart--unstick .block-minicart:after {
        right: 3.2rem !important; }
  .cs-addtocart__minicart--sticky .cs-addtocart__minicart-link,
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    text-align: center;
    padding: 2.5rem 1rem;
    background: #fff;
    box-shadow: 1px 3px 4.5rem 0 rgba(30, 48, 67, 0.34);
    animation: minicart-in 1s cubic-bezier(0, 0.77, 0.18, 1);
    position: relative; }
  .cs-addtocart__minicart--unstick .cs-addtocart__minicart-link {
    animation: minicart-out 0.5s cubic-bezier(0.55, 0.2, 0.89, 0.45); }
  .cs-addtocart__minicart-link:before {
    content: none !important; }
  .cs-addtocart__minicart-qty-badge-wrapper {
    position: absolute;
    opacity: 0;
    z-index: 600;
    transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93);
    pointer-events: none; }
    .cs-addtocart__minicart-qty-badge-wrapper--animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      position: fixed;
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-addtocart__minicart-qty-badge-wrapper--animating {
          position: absolute;
          top: 5.3rem; } }
      .cs-addtocart__minicart-qty-badge-wrapper--animating.cs-addtocart__minicart-qty-badge-wrapper--minicart-sticky {
        position: fixed;
        top: 1.8rem; }
    .cs-addtocart__minicart-qty-badge-wrapper .cs-addtocart__minicart-qty-badge {
      position: static;
      visibility: visible; }
  .cs-addtocart--loading .cs-addtocart__button-label, .cs-addtocart--done .cs-addtocart__button-label {
    opacity: 0;
    transform: translate3d(2em, 0, 0); }
  .cs-addtocart--loading .cs-addtocart__loading {
    opacity: 1;
    transform: scale(1) translate3d(-50%, -50%, 0) translateX(-1.25em); }
    .cs-addtocart--loading .cs-addtocart__loading-ball {
      animation: ball-in 1s infinite; }
  .cs-addtocart--done .cs-addtocart__button-icon {
    opacity: 0; }
  .cs-addtocart--done .cs-addtocart__feedback-bg {
    transform: translate3d(0, 0, 0); }
    .cs-addtocart--done .cs-addtocart__feedback-bg:after {
      transform: translate3d(-5.3rem, 0, 0); }
  .cs-addtocart--success .cs-addtocart__success-icon {
    opacity: 1; }
  .cs-addtocart--success .cs-addtocart__success-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--fail .cs-addtocart__fail-icon {
    opacity: 1; }
  .cs-addtocart--fail .cs-addtocart__fail-label {
    opacity: 1;
    transform: translate3d(-50%, -50%, 0); }
  .cs-addtocart--animation-done .cs-addtocart__button-label,
  .cs-addtocart--animation-done .cs-addtocart__button-icon {
    transition-delay: 0.5s; }
  .cs-addtocart--animation-done .cs-addtocart__feedback-bg {
    transition-delay: 0.2s; }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg, .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition: transform 0.4s cubic-bezier(0.86, 0.01, 0.83, 0.51); }
    .cs-addtocart--animation-done .cs-addtocart__feedback-bg:after {
      transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-label,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition: opacity 0.6s linear, transform 0.6s cubic-bezier(0.86, 0.01, 0.83, 0.51);
    transition-delay: 0; }
  .cs-addtocart--animation-done .cs-addtocart__success-icon,
  .cs-addtocart--animation-done .cs-addtocart__fail-icon {
    transition-delay: 0; }

@keyframes ball-in {
  0% {
    opacity: 0; }
  50% {
    opacity: 1; }
  100% {
    opacity: 0; } }

@keyframes minicart-in {
  0% {
    transform: translate3d(0, -100%, 0); }
  100% {
    transform: translate3d(0, 0, 0); } }

@keyframes minicart-out {
  0% {
    transform: translate3d(0, 0, 0); }
  100% {
    transform: translate3d(0, -100%, 0); } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  80% {
    opacity: 1;
    transform: scale(1.5); }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-addtocart .block-minicart {
    margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-authorization-link {
  display: flex;
  align-items: center;
  position: relative;
  margin-left: 0.9rem;
  padding: 0 0 0 0.3rem; }
  @media (min-width: 64em) {
    .cs-authorization-link {
      padding: 0 0 0 1.3rem;
      margin-left: 1.7rem; } }
  .cs-authorization-link:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    content: '';
    border-left: 0.2rem solid #fff; }
  .cs-authorization-link__link {
    display: flex;
    align-items: center; }
    .cs-authorization-link__link, .cs-authorization-link__link:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-authorization-link__link:hover, .cs-authorization-link__link:focus, .cs-authorization-link__link:active, .cs-authorization-link__link:visited:hover, .cs-authorization-link__link:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
    .cs-authorization-link__link:hover .cs-authorization-link__icon path {
      fill: #888; }
  .cs-authorization-link__icon {
    width: 1.8rem;
    height: 1rem;
    padding-right: 0.5rem; }
    .cs-authorization-link__icon path {
      fill: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
.cs-autocomplete {
  width: 100%;
  top: 100%;
  left: 0;
  box-sizing: border-box;
  background-color: #fff;
  border-radius: 3px;
  box-shadow: 0 0 10px 0 rgba(69, 90, 100, 0.17);
  z-index: 200;
  margin-top: -1px; }
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    background: #fff;
    padding: 0.5rem 1rem;
    margin: 0;
    border-bottom: 1px solid #dcdcdc;
    display: flex;
    align-items: center;
    transition: background-color 0.15s linear;
    font-size: 1.29rem; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-autocomplete .autocomplete-list dd, .cs-autocomplete__item {
    padding: 1rem; } }
    .cs-autocomplete .autocomplete-list dd:hover, .cs-autocomplete .autocomplete-list dd.selected, .cs-autocomplete__item:hover, .cs-autocomplete__item.selected {
      background-color: #f0f0f0;
      cursor: pointer; }
    .cs-autocomplete .autocomplete-list dd:last-child, .cs-autocomplete__item:last-child {
      border-bottom: none; }
    .cs-autocomplete .autocomplete-list dd-image-container, .cs-autocomplete__item-image-container {
      padding: 0;
      margin-right: 1rem;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: center; }
    .cs-autocomplete .autocomplete-list dd-image, .cs-autocomplete__item-image {
      width: 3.6rem;
      height: 4.5rem; }
    .cs-autocomplete .autocomplete-list dd-details, .cs-autocomplete__item-details {
      flex: 1 1 100%;
      margin: 0; }
      .cs-autocomplete .autocomplete-list dd-details .f-fix, .cs-autocomplete__item-details .f-fix {
        height: 5.8rem;
        display: flex;
        flex-direction: column;
        justify-content: center; }
      .cs-autocomplete .autocomplete-list dd-details img, .cs-autocomplete__item-details img {
        display: block; }
    .cs-autocomplete .autocomplete-list dd-brand, .cs-autocomplete__item-brand {
      font-size: 1.2rem;
      color: #888; }
    .cs-autocomplete .autocomplete-list dd-name, .cs-autocomplete__item-name {
      font-size: 1.29rem;
      color: #455a64;
      font-weight: 700; }
    .cs-autocomplete .autocomplete-list dd-price, .cs-autocomplete__item-price {
      margin: 0.3rem 0 0; }
  .cs-autocomplete .price-box {
    display: flex; }
    .cs-autocomplete .price-box > .price {
      color: #324dcf;
      font-size: 1.5rem;
      font-weight: 700;
      margin-right: 0; }
    .cs-autocomplete .price-box .old-price > .price {
      text-decoration: line-through;
      color: #a8b1b7;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .special-price > .price {
      color: #e41f12;
      font-size: 1.5rem;
      font-weight: 700; }
    .cs-autocomplete .price-box .minimal-price-link {
      display: none; }
    .cs-autocomplete .price-box .old-price {
      order: -1; }
      .cs-autocomplete .price-box .old-price .price {
        margin-right: 1rem; }
  .cs-autocomplete__badges {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    margin-left: 1rem; }
  .cs-autocomplete__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 7px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase; }
    .cs-autocomplete__badge + .cs-autocomplete__badge {
      margin-top: 0.5rem; }
    .cs-autocomplete__badge--popular {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--popular .cs-autocomplete__badge-text + .cs-autocomplete__badge--popular .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
    .cs-autocomplete__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
        line-height: normal; }
        .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text + .cs-autocomplete__badge--free-shipping .cs-autocomplete__badge-text {
          margin-left: 0.5rem; }
  .cs-autocomplete__badge-text {
    line-height: normal; }
    .cs-autocomplete__badge-text + .cs-autocomplete__badge-text {
      margin-left: 0.5rem; }
    @media (min-width: 23.125em) {
      .cs-autocomplete__badge-text {
        white-space: nowrap; } }

.autocomplete-list {
  margin: -1px 0 1rem;
  border-top: 1px solid #dcdcdc; }
  .autocomplete-list:first-child {
    border-top: 0; }
  .autocomplete-list:last-child {
    margin-bottom: 0; }
  .autocomplete-list .amount {
    color: #888;
    font-size: 1.29rem;
    font-weight: 700;
    margin-left: 0.5rem; }
    .autocomplete-list .amount:not(:empty):after {
      content: ')'; }
    .autocomplete-list .amount:not(:empty):before {
      content: '('; }

.autocomplete-list-title {
  padding: 1.2rem 3rem 1rem 1rem;
  border-bottom: none;
  color: #888;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 1.29rem;
  letter-spacing: 1px;
  margin: 0; }
  .autocomplete-list-title:hover, .autocomplete-list-title.selected {
    background-color: transparent; }
  .autocomplete-list-title:not(:empty):first-child {
    border-top: transparent; }

@media (hover: none) {
  html.autocomplete-dropdown-visible {
    overflow-y: hidden; } }

@media (hover: none) {
  html.autocomplete-dropdown-visible body {
    overflow-y: hidden; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-breadcrumbs {
  padding-top: 1.3rem;
  padding-bottom: 1.3rem;
  font-weight: 400; }
  .cs-breadcrumbs__list {
    margin: 0;
    padding: 0;
    list-style: none; }
  .cs-breadcrumbs__item {
    position: relative;
    display: inline-block;
    margin: 0;
    padding: 0 1.95em 0 0;
    cursor: pointer;
    font-size: 1.6rem; }
    .cs-breadcrumbs__item:last-child {
      padding: 0;
      color: #11a099;
      cursor: default; }
    .cs-breadcrumbs__item:not(:last-child):after {
      position: absolute;
      top: 50%;
      right: 0.8em;
      content: ">";
      transform: translateY(-50%);
      line-height: 1;
      color: #888; }
  .cs-breadcrumbs__link {
    position: relative;
    display: inline-block;
    color: #888; }
    .cs-breadcrumbs__link:visited {
      color: #888; }
    .cs-breadcrumbs__link:hover {
      text-decoration: none;
      color: #455a64; }
  .cs-breadcrumbs__separator-icon {
    position: absolute;
    top: 50%;
    right: 0.5em;
    transform: translateY(-50%);
    width: 0.8em;
    height: 0.8em;
    fill: #888; }

.cs-container--breadcrumbs {
  max-width: none;
  display: none;
  background: #edeff1; }
  @media (min-width: 48em) {
    .cs-container--breadcrumbs {
      display: block;
      background: #edeff1; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-button {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-button:hover, .cs-button:focus, .cs-button:active {
    background-color: #7e57c2 !important; }
  .cs-button:before, .cs-button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-button:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-button:hover:after {
    width: calc(100% + 2px); }
  .cs-button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button, .cs-button:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-button *, .cs-button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button:hover:not([disabled]), .cs-button:focus:not([disabled]), .cs-button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-button:hover:not([disabled]) *, .cs-button:focus:not([disabled]) *, .cs-button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-button__span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-button__icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }

.cs-button-component {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  margin: 0 0 3rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .cs-button-component:hover, .cs-button-component:focus, .cs-button-component:active {
    background-color: #7e57c2 !important; }
  .cs-button-component:before, .cs-button-component:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-button-component:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-button-component:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-button-component:hover:after {
    width: calc(100% + 2px); }
  .cs-button-component::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-button-component, .cs-button-component:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-button-component *, .cs-button-component:visited * {
      color: #fff;
      fill: #fff; }
  .cs-button-component:hover:not([disabled]), .cs-button-component:focus:not([disabled]), .cs-button-component:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-button-component:hover:not([disabled]) *, .cs-button-component:focus:not([disabled]) *, .cs-button-component:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-button-component[disabled] {
    opacity: 0.65;
    cursor: auto; }
  @media (min-width: 48em) {
    .cs-button-component {
      margin: 0 0 4rem; } }
  .cs-button-component--skip-spacing {
    margin: 0; }
  .cs-button-component__span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-button-component__icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }
  .cs-button-component__amount:before {
    content: '('; }
  .cs-button-component__amount:after {
    content: ')'; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
.cs-container {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  margin: 0 auto;
  width: 100%;
  box-sizing: border-box; }
  .cs-container__inner {
    max-width: 128rem;
    width: 100%;
    margin: 0 auto;
    position: relative; }
    .cs-container__inner:before, .cs-container__inner:after {
      content: '';
      display: table;
      clear: both; }
  .cs-container__aside {
    width: 100%; }
    @media (min-width: 48em) {
      .cs-container__aside {
        width: 40%; } }
    @media (min-width: 64em) {
      .cs-container__aside {
        width: 32%; } }
    @media (min-width: 90em) {
      .cs-container__aside {
        width: 30%; } }
  .cs-container__main-column {
    width: 56%;
    position: relative; }
    @media (min-width: 64em) {
      .cs-container__main-column {
        width: 65%; } }
    @media (min-width: 90em) {
      .cs-container__main-column {
        width: 67%; } }
    @media (max-width: 47.99em) {
      .cs-container__main-column {
        max-width: 100% !important;
        width: 100% !important; } }
    @media (min-width: 64em) {
      .cs-container__main-column--space-top {
        padding-top: 3rem; } }
  .cs-container--contrast {
    background-color: #f0f0f0; }
    @media (min-width: 64em) {
      .cs-container--contrast {
        background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/background.png");
        background-size: cover;
        background-repeat: no-repeat; } }
  .cs-container--spacious {
    padding-top: 2rem;
    padding-bottom: 2rem; }
    @media (min-width: 64em) {
      .cs-container--spacious {
        padding-top: 3rem;
        padding-bottom: 3rem; } }
  .cs-container--noscroll {
    overflow: hidden; }
  .cs-container--ontop {
    z-index: 301; }
  .cs-container--viewport-width {
    max-width: none; }
  .cs-container--no-padding {
    padding-left: 0;
    padding-right: 0; }
  .cs-container--use-whole-screen .cs-container__inner {
    max-width: 100%; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-cookie-message {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 1.2rem;
  background-color: #fff;
  color: #455a64;
  box-shadow: 0 -0.3rem 0.5rem 0 rgba(0, 0, 0, 0.15);
  font-size: 85%;
  z-index: 98;
  transform: translate3d(0, 110%, 0);
  opacity: 0;
  transition: transform 0.25s ease-out, opacity 0.18s linear;
  display: flex;
  justify-content: center;
  align-items: center; }
  .cs-cookie-message--shown {
    z-index: 202;
    transform: translate3d(0, 0, 0);
    opacity: 1; }
  .cs-cookie-message__inner {
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    position: relative;
    padding-left: 8rem; }
    @media (min-width: 48em) {
      .cs-cookie-message__inner {
        flex-direction: row; } }
  .cs-cookie-message__button-wrapper {
    align-self: flex-start; }
    @media (min-width: 48em) {
      .cs-cookie-message__button-wrapper {
        align-self: unset; } }
  .cs-cookie-message__text {
    position: relative;
    margin: 0; }
    .cs-cookie-message__text .block-cms-link.widget,
    .cs-cookie-message__text p {
      margin: 0;
      display: inline; }
    .cs-cookie-message__text a, .cs-cookie-message__text a:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-cookie-message__text a:hover, .cs-cookie-message__text a:focus, .cs-cookie-message__text a:active, .cs-cookie-message__text a:visited:hover, .cs-cookie-message__text a:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-cookie-message__icon {
    position: absolute;
    left: 0.5rem;
    width: 5.5rem;
    height: 5.5rem;
    top: 50%;
    transform: translateY(-50%); }
    @media (min-width: 48em) {
      .cs-cookie-message__icon {
        top: -3.5rem;
        transform: translateY(0); } }
  .cs-cookie-message__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    white-space: nowrap;
    margin-top: 1.2rem; }
    .cs-cookie-message__button:hover, .cs-cookie-message__button:focus, .cs-cookie-message__button:active {
      background-color: #7e57c2 !important; }
    .cs-cookie-message__button:before, .cs-cookie-message__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-cookie-message__button:before {
      width: 3.4em;
      border-radius: 0 200px 200px 0;
      z-index: -1;
      background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
    .cs-cookie-message__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-cookie-message__button:hover:after {
      width: calc(100% + 2px); }
    .cs-cookie-message__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-cookie-message__button, .cs-cookie-message__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-cookie-message__button *, .cs-cookie-message__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button:hover:not([disabled]), .cs-cookie-message__button:focus:not([disabled]), .cs-cookie-message__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-cookie-message__button:hover:not([disabled]) *, .cs-cookie-message__button:focus:not([disabled]) *, .cs-cookie-message__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-cookie-message__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (min-width: 48em) {
      .cs-cookie-message__button {
        margin-top: 0;
        margin-left: 1.2rem; } }
  .cs-cookie-message__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-cookie-message__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-dailydeal {
  display: none; }
  .cs-dailydeal__header {
    display: flex;
    width: 100%;
    margin: 0 0 0.5rem;
    font-size: 1.2rem;
    justify-content: space-between;
    align-items: flex-start; }
  .cs-dailydeal__title {
    margin: 0;
    text-transform: uppercase;
    font-weight: 600; }
  .cs-dailydeal__items-amount {
    font-weight: 600; }
  .cs-dailydeal__countdown {
    display: flex;
    margin: 0;
    justify-content: stretch;
    align-items: stretch; }
  .cs-dailydeal__countdown-element {
    position: relative;
    z-index: 3;
    width: 100%;
    padding: 0.3rem 0.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    line-height: 1;
    background: none;
    border-radius: 7px; }
    .cs-dailydeal__countdown-element--special {
      width: 50%;
      background: #e41f12;
      z-index: 5; }
    .cs-dailydeal--teaser .cs-dailydeal__countdown-element {
      min-height: 4rem; }
  .cs-dailydeal__countdown-icon {
    width: 1.9rem;
    height: 2.4rem;
    fill: #fff; }
  .cs-dailydeal__countdown-value {
    display: block;
    font-size: 1.5rem;
    font-weight: 600;
    color: #e41f12;
    padding: 2px 0 0; }
  .cs-dailydeal__countdown-label {
    display: block;
    font-size: 1.1rem;
    font-weight: inherit;
    color: #888;
    padding: 2px 0 0; }
  .cs-dailydeal--tile {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    z-index: 3; }
    .cs-dailydeal--tile .cs-dailydeal__availability {
      position: relative;
      background: #888;
      font-size: 1rem;
      color: #fff;
      padding: 2px 4px;
      z-index: 4;
      font-weight: 300;
      border-radius: 7px; }
    @media (max-width: 599px) {
      .cs-dailydeal--tile .cs-dailydeal__countdown-element {
        margin-left: 0;
        margin-right: 0; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child:not(:only-child) {
          margin-left: 0; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:last-child .cs-dailydeal__countdown-value:after {
          content: none; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element--special {
          width: auto; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special) {
          border-radius: 0;
          width: auto;
          padding: 0; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):before {
            transform: none; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):nth-child(2) {
            padding-left: 1.8rem;
            margin-left: -1rem !important; }
          .cs-dailydeal--tile .cs-dailydeal__countdown-element:not(.cs-dailydeal__countdown-element--special):last-child {
            padding-right: 0.8rem;
            border-radius: 0 7px 7px 0; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-value {
        font-size: 1.3rem; }
        .cs-dailydeal--tile .cs-dailydeal__countdown-value:after {
          content: ':'; }
      .cs-dailydeal--tile .cs-dailydeal__countdown-label {
        display: none; } }
  .cs-dailydeal__badge-pdp-icon {
    width: 1.5rem;
    height: 1.5rem;
    z-index: 10;
    fill: #fff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .cs-display-controller--hidden-mobile {
    display: none; } }

@media (min-width: 48em) {
  .cs-display-controller--hidden-desktop {
    display: none; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-dropdown-switcher {
  white-space: nowrap;
  cursor: pointer;
  width: 100%; }
  @media (min-width: 64em) {
    .cs-dropdown-switcher {
      position: relative;
      display: inline-flex;
      align-items: center;
      flex-shrink: 0; }
      .cs-dropdown-switcher:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 1.3rem;
        content: '';
        border-left: 0.2rem solid #fff;
        display: block; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher--stores:before {
      display: none; } }
  .cs-dropdown-switcher__option-icon {
    min-width: 1.5rem;
    height: 1.5rem;
    margin-right: 0.6rem;
    margin-bottom: 0.2rem;
    display: inline-block; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher--language .cs-dropdown-switcher__option-icon {
        width: 1.5rem; } }
  @media (min-width: 64em) {
    .cs-dropdown-switcher .switcher-options {
      display: flex; } }
  .cs-dropdown-switcher__trigger {
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    font-weight: 700;
    border-bottom: 1px #dcdcdc solid;
    position: relative;
    position: relative; }
    .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
      content: '';
      position: absolute;
      top: 50%;
      width: 0.7rem;
      height: 0.1rem;
      left: auto;
      background-color: #7e57c2;
      transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
      backface-visibility: hidden; }
    .cs-dropdown-switcher__trigger:before {
      transform: rotate(45deg) translate3d(0, 0, 0);
      right: 3rem; }
    .cs-dropdown-switcher__trigger:after {
      transform: rotate(-45deg) translate3d(0, 0, 0);
      right: 2.5rem; }
    .cs-dropdown-switcher__trigger.active:before {
      transform: rotate(-45deg); }
    .cs-dropdown-switcher__trigger.active:after {
      transform: rotate(45deg); }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__trigger {
        height: 100%;
        display: inline-flex;
        align-items: center;
        margin-left: 2rem;
        font-size: 1.1rem;
        font-weight: 400;
        padding: 0 1.5rem 0 0;
        border-bottom: none;
        position: relative; }
        .cs-dropdown-switcher__trigger:before, .cs-dropdown-switcher__trigger:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 0.7rem;
          height: 0.1rem;
          left: auto;
          background-color: #000;
          transition: transform 0.15s linear, right 0.15s linear, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-dropdown-switcher__trigger:before {
          transform: rotate(45deg) translate3d(0, 0, 0);
          right: 0.5rem; }
        .cs-dropdown-switcher__trigger:after {
          transform: rotate(-45deg) translate3d(0, 0, 0);
          right: 0; }
        .cs-dropdown-switcher__trigger.active:before {
          transform: rotate(-45deg); }
        .cs-dropdown-switcher__trigger.active:after {
          transform: rotate(45deg); } }
    .active .cs-dropdown-switcher__trigger {
      background: transparent;
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border: none;
      position: relative;
      width: 100%; }
      @media (max-width: 63.99em) {
        .active .cs-dropdown-switcher__trigger {
          padding: 2.4rem 2rem;
          border-style: none; } }
    .cs-dropdown-switcher__trigger-span {
      display: flex;
      align-items: center; }
  .cs-dropdown-switcher__list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: none;
    list-style: none;
    font-size: 1.1rem;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px;
    border-color: #f0f0f0;
    border-style: solid;
    border-width: 0 1px 1px;
    width: 100%; }
    @media (min-width: 64em) {
      .cs-dropdown-switcher__list {
        background: #fff;
        min-width: 100%;
        position: absolute;
        top: 100%;
        right: -1rem;
        left: 1rem; } }
    .cs-dropdown-switcher__list .cs-dropdown-switcher--currency {
      right: -1rem; }
    .active .cs-dropdown-switcher__list {
      display: block; }
    .cs-dropdown-switcher__list-item {
      margin: 0;
      white-space: nowrap; }
    .cs-dropdown-switcher__list-item-link {
      width: 100%;
      color: #455a64 !important;
      display: flex;
      align-items: center; }
      .cs-dropdown-switcher__list-item-link:hover {
        background-color: #f0f0f0;
        text-decoration: none; }
      @media (max-width: 63.99em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 1.4rem 2rem;
          font-size: 1.4rem; } }
      @media (min-width: 64em) {
        .cs-dropdown-switcher__list-item-link {
          padding: 0.6rem 1.8rem;
          font-size: 1.1rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/* stylelint-disable no-descending-specificity */
.cs-field,
.cs-input {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .cs-field._editing .field-error,
  .cs-input._editing .field-error {
    display: none; }
  .cs-field__control,
  .cs-input__control {
    width: 100%; }
  .cs-field__label,
  .cs-input__label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding-bottom: 0.5rem; }
    .required .cs-field__label:after, .required
    .cs-input__label:after {
      content: ' *';
      color: #e41f12; }
  .cs-field__input, .cs-field__textarea,
  .cs-input__input,
  .cs-input__textarea {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .cs-field__input:hover:not([disabled]), .cs-field__input:focus:not([disabled]), .cs-field__textarea:hover:not([disabled]), .cs-field__textarea:focus:not([disabled]),
    .cs-input__input:hover:not([disabled]),
    .cs-input__input:focus:not([disabled]),
    .cs-input__textarea:hover:not([disabled]),
    .cs-input__textarea:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-field__input::-moz-placeholder, .cs-field__textarea::-moz-placeholder, .cs-input__input::-moz-placeholder, .cs-input__textarea::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input::placeholder, .cs-field__textarea::placeholder,
    .cs-input__input::placeholder,
    .cs-input__textarea::placeholder {
      opacity: 1;
      color: #888; }
    .cs-field__input[disabled], .cs-field__textarea[disabled],
    .cs-input__input[disabled],
    .cs-input__textarea[disabled] {
      opacity: 0.65; }
    .cs-field__input.mage-error, .cs-field__input.mage-error:hover:not(:focus), .cs-field__textarea.mage-error, .cs-field__textarea.mage-error:hover:not(:focus),
    .cs-input__input.mage-error,
    .cs-input__input.mage-error:hover:not(:focus),
    .cs-input__textarea.mage-error,
    .cs-input__textarea.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .cs-field__select,
  .cs-input__select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-field__select:-moz-focusring, .cs-field__select::-moz-focus-inner,
    .cs-input__select:-moz-focusring,
    .cs-input__select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__select:hover:not([disabled]), .cs-field__select:focus:not([disabled]),
    .cs-input__select:hover:not([disabled]),
    .cs-input__select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-field__select[disabled],
    .cs-input__select[disabled] {
      opacity: 0.65; }
    .cs-field__select option,
    .cs-input__select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .cs-field__radio,
  .cs-input__radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .cs-field__radio::-moz-focus-inner, .cs-field__radio:-moz-focusring,
    .cs-input__radio::-moz-focus-inner,
    .cs-input__radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__radio:hover:not([disabled]), .cs-field__radio:focus:not([disabled]),
    .cs-input__radio:hover:not([disabled]),
    .cs-input__radio:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__radio:checked,
    .cs-input__radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__radio:checked, .cs-field__radio:checked:hover, .cs-field__radio:checked:focus,
      .cs-input__radio:checked,
      .cs-input__radio:checked:hover,
      .cs-input__radio:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__radio[disabled],
    .cs-field__radio[disabled] + .label,
    .cs-field__radio[disabled] + .cs-input__label,
    .cs-input__radio[disabled],
    .cs-input__radio[disabled] + .label,
    .cs-input__radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .cs-field__checkbox,
  .cs-input__checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 7px;
    background-size: 1em 1em;
    border-color: #7e57c2; }
    .cs-field__checkbox::-moz-focus-inner, .cs-field__checkbox:-moz-focusring,
    .cs-input__checkbox::-moz-focus-inner,
    .cs-input__checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-field__checkbox:hover:not([disabled]), .cs-field__checkbox:focus:not([disabled]),
    .cs-input__checkbox:hover:not([disabled]),
    .cs-input__checkbox:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .cs-field__checkbox:checked, .cs-field__checkbox:checked:hover, .cs-field__checkbox:checked:focus,
      .cs-input__checkbox:checked,
      .cs-input__checkbox:checked:hover,
      .cs-input__checkbox:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .cs-field__checkbox[disabled],
    .cs-field__checkbox[disabled] + .label,
    .cs-field__checkbox[disabled] + .cs-input__label,
    .cs-input__checkbox[disabled],
    .cs-input__checkbox[disabled] + .label,
    .cs-input__checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .cs-field__checkbox:checked,
    .cs-input__checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%237e57c2' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .cs-field__checkbox.mage-error, .cs-field__checkbox.mage-error:hover:not(:focus),
    .cs-input__checkbox.mage-error,
    .cs-input__checkbox.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .cs-field__icon,
  .cs-input__icon {
    position: absolute;
    width: 1.3em;
    height: 1.3em;
    right: 0.8em;
    top: 0.8em;
    display: none; }
  .cs-field__note,
  .cs-input__note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }
  .cs-field__error,
  .cs-input__error {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969;
    color: #e41f12; }

.field {
  font-size: 1.8rem;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  align-items: center;
  border: 0;
  padding: 0;
  margin: 0;
  width: 100%; }
  .field._editing .field-error {
    display: none; }
  .field._success:not(._warn) .control {
    position: relative; }
    .field._success:not(._warn) .control:after {
      position: absolute;
      width: 1.3em;
      height: 1.3em;
      right: 0.8em;
      top: 0.8em;
      display: none;
      background: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/check-green.svg") no-repeat center center/contain;
      content: ''; }
  .field .control {
    width: 100%; }
    .field .control > textarea {
      font-size: 1em;
      line-height: 1.275em;
      padding: 0.75em 1em;
      color: #455a64;
      background: #fff;
      border-radius: 200px;
      border: 2px solid #dcdcdc;
      box-shadow: none;
      transition: border-color 0.5s;
      margin: 0 0 0.2em;
      width: 100%;
      background-clip: padding-box;
      font-family: inherit; }
      .field .control > textarea:hover:not([disabled]), .field .control > textarea:focus:not([disabled]) {
        border: 2px solid #7e57c2;
        box-shadow: none; }
      .field .control > textarea::-moz-placeholder {
        opacity: 1;
        color: #888; }
      .field .control > textarea::placeholder {
        opacity: 1;
        color: #888; }
      .field .control > textarea[disabled] {
        opacity: 0.65; }
    .field .control .nested {
      display: flex;
      align-items: center;
      justify-content: space-between; }
      .field .control .nested .field {
        max-width: 48%; }
  .field .label {
    font-weight: 700;
    font-size: 0.85em;
    width: 100%;
    text-transform: none;
    color: inherit;
    padding-bottom: 0.5rem; }
  .field.choice label.label {
    width: auto;
    margin-bottom: 0; }
  .field.required > .label:after, .field._required > .label:after {
    content: ' *';
    color: #e41f12; }
  .field.required ._required > .label:after {
    display: none; }
  .field .input-text {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .field .input-text:hover:not([disabled]), .field .input-text:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .field .input-text::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .field .input-text::placeholder {
      opacity: 1;
      color: #888; }
    .field .input-text[disabled] {
      opacity: 0.65; }
    .field .input-text.mage-error, .field .input-text.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
    .field .input-text.required-entry {
      margin-bottom: 1rem; }
  .field .select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field .select:-moz-focusring, .field .select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .select:hover:not([disabled]), .field .select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field .select[disabled] {
      opacity: 0.65; }
    .field .select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .field .checkbox {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s;
    border-radius: 7px;
    background-size: 1em 1em;
    border-color: #7e57c2; }
    .field .checkbox::-moz-focus-inner, .field .checkbox:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .checkbox:hover:not([disabled]), .field .checkbox:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .field .checkbox:checked, .field .checkbox:checked:hover, .field .checkbox:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .field .checkbox[disabled],
    .field .checkbox[disabled] + .label,
    .field .checkbox[disabled] + .cs-input__label {
      opacity: 0.65; }
    .field .checkbox:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='%237e57c2' d='M5.313 10.108H5.24a1.064 1.005 0 0 1-.75-.41l-1.947-2.55a1.064 1.005 0 0 1 1.723-1.175L5.463 7.56 9.06 4.19a1.064 1.005 0 0 1 .75-.297h.846a1.064 1.005 0 0 1 0 2.004h-.45L6.064 9.81a1.064 1.005 0 0 1-.75.298z'/%3e%3c/svg%3e"); }
    .field .checkbox.mage-error, .field .checkbox.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .field .radio {
    display: inline-block;
    height: 1em;
    width: 1em;
    margin: -0.0625em calc(0.5em + 1px) 0 0;
    font-size: 1em;
    overflow: hidden;
    vertical-align: middle;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    flex: 0 0 auto;
    cursor: pointer;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    background-color: transparent;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    background-size: 1em 1em;
    outline: 0;
    border-radius: 50%;
    transition: background-color 0.5s, border-color 0.5s; }
    .field .radio::-moz-focus-inner, .field .radio:-moz-focusring {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field .radio:hover:not([disabled]), .field .radio:focus:not([disabled]) {
      border: 2px solid #4d2c91;
      box-shadow: none;
      background-color: transparent; }
    .field .radio:checked {
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='14' height='14' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='%237e57c2' r='4' cy='7' cx='7'/%3e%3c/svg%3e"); }
      .field .radio:checked, .field .radio:checked:hover, .field .radio:checked:focus {
        border: 2px solid #7e57c2;
        background-color: transparent;
        box-shadow: none; }
    .field .radio[disabled],
    .field .radio[disabled] + .label,
    .field .radio[disabled] + .cs-input__label {
      opacity: 0.65; }
  .field.customer-name-prefix select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .field.customer-name-prefix select:-moz-focusring, .field.customer-name-prefix select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .field.customer-name-prefix select:hover:not([disabled]), .field.customer-name-prefix select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .field.customer-name-prefix select[disabled] {
      opacity: 0.65; }
    .field.customer-name-prefix select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .field.field-dob input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit; }
    .field.field-dob input:hover:not([disabled]), .field.field-dob input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .field.field-dob input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .field.field-dob input::placeholder {
      opacity: 1;
      color: #888; }
    .field.field-dob input[disabled] {
      opacity: 0.65; }
    .field.field-dob input.mage-error, .field.field-dob input.mage-error:hover:not(:focus) {
      border: 2px solid #e41f12; }
  .field.field-dob button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .field.field-dob button::before, .field.field-dob button::after {
      content: none; }
    .field.field-dob button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .field.field-dob button, .field.field-dob button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .field.field-dob button *, .field.field-dob button:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .field.field-dob button:hover:not([disabled]), .field.field-dob button:focus:not([disabled]), .field.field-dob button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .field.field-dob button:hover:not([disabled]) *, .field.field-dob button:focus:not([disabled]) *, .field.field-dob button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .field.field-dob button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .field.field-dob button span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
  .field._error .input-text, .field._error .input-text:hover:not(:focus),
  .field._error .checkbox,
  .field._error .checkbox:hover:not(:focus) {
    border: 2px solid #e41f12; }
  .field .control._with-tooltip input {
    width: 100%;
    margin-right: 0; }
  .field .field-tooltip {
    position: static; }
    .field .field-tooltip .label,
    .field .field-tooltip .field-tooltip-action {
      display: none; }
    .field .field-tooltip .field-tooltip-content {
      position: static;
      background: none;
      border: none;
      display: block;
      font-size: 0.85em;
      padding: 0.3em 0 0;
      color: #696969; }
      .field .field-tooltip .field-tooltip-content:before, .field .field-tooltip .field-tooltip-content:after {
        display: none; }
  .field .note {
    display: block;
    font-size: 0.85em;
    padding: 0.3em 0 0;
    color: #696969; }

.field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) {
  position: relative; }
  .field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) .label {
    position: absolute;
    top: -10px;
    left: 20px;
    z-index: 3;
    font-weight: normal;
    padding: 0 5px;
    background: white;
    width: auto; }
    .field:not(.choice):not(.limiter):not(.terms):not(.cs-pagination__page-provider) .label .fieldset .fullname .field .label {
      padding: 0 5px;
      width: auto !important; }

input[name="faktura_elektroniczna"] + label {
  top: 2px !important; }

.field[name="amastyPaymentAttributes.faktura_elektroniczna"] > label {
  top: 2px !important;
  display: none; }

.customer-address-form .field.street .label {
  top: 10px; }

.field.terms .label {
  top: -3px !important;
  left: 24px !important; }

.cs-dashboard .field {
  margin-bottom: 2rem !important; }

.fieldset .fullname .field .label {
  padding: 0 5px;
  width: auto !important; }

div.mage-error:not(._editing),
div.field-error:not(._editing) {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969;
  color: #e41f12; }

/* stylelint-enable */

/**
 * Footer component customization.
 * @see /Magento_Theme/templates/footer/columns.phtml for templates.
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-footer {
  font-size: 1rem;
  color: #455a64;
  background: #fff;
  overflow: hidden;
  padding: 0 0 2rem;
  padding-bottom: 2rem; }
  .cs-footer h3 {
    color: #455a64;
    display: flex;
    margin-top: 0;
    margin-bottom: 0;
    padding-bottom: 2rem;
    min-height: 40px;
    font-size: 2.4rem;
    text-transform: none; }
  .cs-footer p {
    color: #455a64;
    display: grid;
    font-size: 16px; }
    @media (max-width: 47.99em) {
      .cs-footer p {
        justify-content: center; } }
  @media (min-width: 48em) {
    .cs-footer {
      padding: 0 1.5rem; } }
  .cs-footer__content {
    padding: 0; }
    @media (min-width: 48em) {
      .cs-footer__content {
        /*display: flex;*/
        flex-wrap: wrap;
        padding-top: 4rem;
        padding-bottom: 2.5rem; } }
    @media (min-width: 64em) {
      .cs-footer__content {
        flex-wrap: nowrap; } }
  @media (min-width: 64em) {
    .cs-footer__item {
      flex: 1 1; } }
  .cs-footer__item--promo {
    flex-basis: 100%; }
    @media (max-width: 47.99em) {
      .cs-footer__item--promo {
        display: none; } }
    @media (max-width: 63.99em) {
      .cs-footer__item--promo {
        margin-bottom: 1.5rem; } }
    @media (min-width: 64em) {
      .cs-footer__item--promo {
        flex-basis: auto;
        flex-grow: 1; } }
  @media (max-width: 47.99em) {
    .cs-footer__item--links {
      margin-top: 2rem; } }
  @media (min-width: 48em) {
    .cs-footer__item--links {
      display: flex;
      flex-basis: 100%;
      margin-top: 2em;
      justify-content: center; } }
  @media (min-width: 48em) {
    .cs-footer__item--links {
      margin-top: 0; } }
  @media (min-width: 64em) {
    .cs-footer__item--links {
      flex-basis: auto;
      flex-grow: 5; } }
  @media (min-width: 48em) {
    .cs-footer__item--extras {
      display: flex;
      flex-basis: 100%; } }
  @media (min-width: 64em) {
    .cs-footer__item--extras {
      display: block;
      flex-basis: 25%;
      flex-grow: 2; } }
  @media (min-width: 48em) {
    .cs-footer__section {
      flex: 1 1; } }
  @media (min-width: 48em) {
    .cs-footer__section--newsletter {
      flex-grow: 2; } }
  @media (min-width: 64em) {
    .cs-footer__section--socials {
      margin-top: 4rem; } }
  @media (min-width: 64em) {
    .cs-footer__section--stores-switcher {
      margin-top: 4rem;
      max-width: 20rem; } }
  .cs-footer__section .content {
    display: flex;
    flex-direction: column; }
    .cs-footer__section .content .phone {
      font-size: 2rem;
      margin-bottom: 1rem; }
    .cs-footer__section .content .small {
      font-size: 1.3rem;
      font-weight: 700; }
    .cs-footer__section .content .mail {
      margin-top: 1rem;
      font-size: 2rem;
      display: flex;
      padding-left: 4rem;
      position: relative; }
      .cs-footer__section .content .mail:before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/mail-logo.svg");
        display: block;
        width: 30px;
        height: 18px;
        position: absolute;
        left: 0px; }
  @media (max-width: 47.99em) {
    .cs-footer__section--collapsible {
      width: 96%;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 10px;
      padding: 8px 30px 10px;
      border-radius: 23px;
      border: 1px solid #888; } }
  .cs-footer__section-title,
  .cs-footer [data-role='title'] {
    font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.5rem;
    line-height: 1.1;
    color: #455a64;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    position: relative;
    margin: 0;
    color: #455a64;
    font-size: 2rem;
    font-weight: 700;
    text-transform: none; }
    @media (max-width: 47.99em) {
      .cs-footer__section--collapsible .cs-footer__section-title, .cs-footer__section--collapsible
      .cs-footer [data-role='title'] {
        cursor: pointer;
        position: relative; }
        .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          content: '';
          position: absolute;
          top: 50%;
          width: 1.2rem;
          height: 0.2rem;
          left: auto;
          background-color: #888;
          transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
          backface-visibility: hidden; }
        .cs-footer__section--collapsible .cs-footer__section-title:before, .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          right: 1.5rem;
          transform: translate3d(0, -50%, 0) !important; }
        .cs-footer__section--collapsible .cs-footer__section-title:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title']:after {
          transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
        .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded="true"]:before, .cs-footer__section--collapsible
        .cs-footer [data-role='title'][aria-expanded="true"]:before {
          transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
          opacity: 0; }
        .cs-footer__section--collapsible .cs-footer__section-title[aria-expanded="true"]:after, .cs-footer__section--collapsible
        .cs-footer [data-role='title'][aria-expanded="true"]:after {
          transform: translate3d(0, -50%, 0) rotate(0) !important; }
      .cs-footer__section--socials .cs-footer__section-title, .cs-footer__section--socials
      .cs-footer [data-role='title'] {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }
    @media (min-width: 48em) {
      .cs-footer__section-title,
      .cs-footer [data-role='title'] {
        margin-bottom: 2rem;
        border-top: none;
        padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-footer__section-title,
      .cs-footer [data-role='title'] {
        padding-top: 0;
        padding-right: 0; } }
  .cs-footer__section-content,
  .cs-footer [data-role='content'] {
    padding: 1rem;
    font-size: 1.2em; }
    @media (max-width: 47.99em) {
      .cs-footer__section--collapsible .cs-footer__section-content, .cs-footer__section--collapsible
      .cs-footer [data-role='content'] {
        display: none; } }
    @media (min-width: 48em) {
      .cs-footer__section-content,
      .cs-footer [data-role='content'] {
        padding-left: 0; } }
    @media (min-width: 64em) {
      .cs-footer__section-content,
      .cs-footer [data-role='content'] {
        padding-right: 0;
        padding-bottom: 0; } }
  .cs-footer__shop-logo {
    display: block;
    width: 13.5em;
    height: 2.3em;
    min-width: 13.5em;
    max-width: 100%;
    max-height: 100%; }

.cs-container--footer {
  max-width: none; }

.cs-container--footer-usps .cs-image-teaser__content {
  margin: 0 !important; }

.cs-footer__content .cs-footer__item.cs-footer__item--credentials {
  margin: 2rem 0;
  display: flex;
  justify-content: space-around;
  align-items: center; }
  @media (max-width: 47.99em) {
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials {
      flex-direction: column; } }
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .copyright,
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .author {
    font-size: 16px;
    color: #b0b0b0; }
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .copyright a,
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .author a {
      color: #b0b0b0 !important;
      text-decoration: none; }
  .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials {
    padding: 8px 30px;
    border: 1px solid #b0b0b0;
    border-radius: 200px; }
    @media (max-width: 47.99em) {
      .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials {
        order: -1;
        border: unset; } }
    .cs-footer__content .cs-footer__item.cs-footer__item--credentials .socials .instagram {
      margin-right: 1rem; }

.cs-footer__content .cs-footer__item.cs-footer__item--links > .cs-footer__section {
  max-width: 100%;
  padding: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-footer-links {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-footer-links__item {
    margin: 0 0 0.3em; }
  .cs-footer-links a, .cs-footer-links a:visited {
    color: #455a64;
    text-decoration: none; }
  .cs-footer-links a:hover, .cs-footer-links a:focus, .cs-footer-links a:active, .cs-footer-links a:visited:hover, .cs-footer-links a:visited:focus {
    color: #4d2c91;
    text-decoration: none; }
  .cs-footer-links a, .cs-footer-links a:visited {
    display: block;
    padding: 0px;
    font-size: 2rem; }
    @media (min-width: 48em) {
      .cs-footer-links a, .cs-footer-links a:visited {
        padding: 0px;
        display: inline-block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-google-recaptcha {
  margin: 1rem 0; }
  .cs-google-recaptcha__badge--invisible .grecaptcha-badge {
    visibility: hidden;
    height: 0 !important;
    width: 0 !important;
    overflow: hidden; }
  .cs-google-recaptcha__note {
    display: inline-block;
    margin: 0;
    font-size: 1.2rem;
    color: #696969; }
    .cs-google-recaptcha__note a, .cs-google-recaptcha__note a:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-google-recaptcha__note a:hover, .cs-google-recaptcha__note a:focus, .cs-google-recaptcha__note a:active, .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha__note a:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-google-recaptcha--newsletter {
    display: none;
    margin: 1rem 0; }
    .cs-google-recaptcha--newsletter .cs-google-recaptcha__note {
      margin: 0;
      font-size: 1.2rem;
      color: #fff; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited {
        color: #fff;
        text-decoration: none; }
      .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:focus, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:active, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:hover, .cs-google-recaptcha--newsletter .cs-google-recaptcha__note a:visited:focus {
        color: #fff;
        text-decoration: underline; }
  .cs-google-recaptcha--customer_create {
    margin-top: -2rem; }
  .cs-google-recaptcha--customer_login .g-recaptcha {
    margin-bottom: 0 !important; }

/*
* Fair warning: Don't mix units while using 'utils/poly-fluid-sizing' feature.
* If you use rems, stick to rems everywhere in the area of whole map, or else the mixin will throw an error
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-grid-layout__grid {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto;
  gap: 0;
  position: relative;
  gap: 15px; }
  @media (min-width: 23.125em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 30em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 48em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 64em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 80em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  @media (min-width: 90em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  @media (min-width: 120em) {
    .cs-grid-layout__grid {
      grid-template-columns: repeat(4, minmax(0, 1fr)); } }
  @media (min-width: 23.125em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 30em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  @media (min-width: 48em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 64em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 80em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 90em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (min-width: 120em) {
    .cs-grid-layout--with-sidebar .cs-grid-layout__grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)); } }
  @media (max-width: 47.99em) {
    .cs-grid-layout__grid {
      gap: 10px; } }
  @media (max-width: 29.99em) {
    .cs-grid-layout__grid {
      gap: 10px; } }

.cs-grid-layout__brick {
  width: 100%;
  padding: 1px;
  margin: 0;
  overflow: hidden; }
  .cs-grid-layout__brick--x2 {
    aspect-ratio: 600/350; }
  .cs-grid-layout__brick--y2 {
    aspect-ratio: 300/700; }
  .cs-grid-layout__brick--x2.cs-grid-layout__brick--y2 {
    aspect-ratio: 600/700; }
  @media (min-width: 23.125em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  @media (min-width: 30em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  @media (min-width: 48em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  @media (min-width: 64em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  @media (min-width: 80em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  @media (min-width: 90em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  @media (min-width: 120em) {
    .cs-grid-layout__brick--x2 {
      grid-column-end: span 2; }
    .cs-grid-layout__brick--y2 {
      grid-row-end: span 2; } }
  .cs-grid-layout__brick--hidden {
    display: none !important; }
  @media (max-width: 29.99em) {
    .cs-grid-layout__brick--teaser:before {
      padding-top: 0; } }

.cs-grid-layout__teaser {
  overflow: hidden; }
  .cs-grid-layout__teaser-content-wrapper {
    display: flex;
    width: 100%;
    height: 100%; }
  .cs-grid-layout__teaser-figure {
    position: relative;
    width: 100%;
    height: 100%; }
  .cs-grid-layout__teaser-image {
    min-width: 100%;
    min-height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0); }
  .cs-grid-layout__teaser-content {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    padding: 1.5rem;
    line-height: 1.15; }
  .cs-grid-layout__teaser-content-inner {
    max-width: 100%; }
  .cs-grid-layout__teaser-headline {
    margin: 0 0 0.2em;
    color: #455a64;
    font-weight: 600;
    text-transform: none;
    font-size: 1.8rem; }
    @media (min-width: 32rem) {
      .cs-grid-layout__teaser-headline {
        font-size: calc(1.04167vw + 1.46667rem); } }
    @media (min-width: 128rem) {
      .cs-grid-layout__teaser-headline {
        font-size: 2.8rem; } }
    .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
      margin: 0 0 0.2em;
      font-size: 1.8rem; }
      @media (min-width: 32rem) {
        .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
          font-size: calc(2.29167vw + 1.06667rem); } }
      @media (min-width: 128rem) {
        .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-headline {
          font-size: 4rem; } }
    .cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-headline {
      color: #fff; }
  .cs-grid-layout__teaser-subheadline {
    display: block;
    margin: 0 0 0.6em;
    color: #455a64;
    font-weight: 400;
    text-transform: none;
    font-size: 1.6rem; }
    @media (min-width: 32rem) {
      .cs-grid-layout__teaser-subheadline {
        font-size: calc(0.20833vw + 1.53333rem); } }
    @media (min-width: 128rem) {
      .cs-grid-layout__teaser-subheadline {
        font-size: 1.8rem; } }
    .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
      margin: 0 0 0.6em;
      font-size: 1.6rem; }
      @media (min-width: 32rem) {
        .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
          font-size: calc(0.9375vw + 1.3rem); } }
      @media (min-width: 128rem) {
        .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-subheadline {
          font-size: 2.5rem; } }
    .cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-subheadline {
      color: #fff; }
  .cs-grid-layout__teaser-text {
    margin: 0 0 1em;
    color: #455a64;
    font-weight: 400;
    text-transform: none;
    font-size: 1.3rem; }
    @media (min-width: 32rem) {
      .cs-grid-layout__teaser-text {
        font-size: calc(0.10417vw + 1.26667rem); } }
    @media (min-width: 128rem) {
      .cs-grid-layout__teaser-text {
        font-size: 1.4rem; } }
    .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
      margin: 0 0 1em;
      font-size: 1.3rem; }
      @media (min-width: 32rem) {
        .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
          font-size: calc(0.3125vw + 1.2rem); } }
      @media (min-width: 128rem) {
        .cs-grid-layout__brick--x2 .cs-grid-layout__teaser-text {
          font-size: 1.6rem; } }
    .cs-grid-layout__teaser--scheme-light .cs-grid-layout__teaser-text {
      color: #fff; }
  .cs-grid-layout__teaser-cta-button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-grid-layout__teaser-cta-button:hover, .cs-grid-layout__teaser-cta-button:focus, .cs-grid-layout__teaser-cta-button:active {
      background-color: #7e57c2 !important; }
    .cs-grid-layout__teaser-cta-button:before, .cs-grid-layout__teaser-cta-button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-grid-layout__teaser-cta-button:before {
      width: 3.4em;
      border-radius: 0 200px 200px 0;
      z-index: -1;
      background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
    .cs-grid-layout__teaser-cta-button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-grid-layout__teaser-cta-button:hover:after {
      width: calc(100% + 2px); }
    .cs-grid-layout__teaser-cta-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-grid-layout__teaser-cta-button, .cs-grid-layout__teaser-cta-button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-grid-layout__teaser-cta-button *, .cs-grid-layout__teaser-cta-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-grid-layout__teaser-cta-button:hover:not([disabled]), .cs-grid-layout__teaser-cta-button:focus:not([disabled]), .cs-grid-layout__teaser-cta-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-grid-layout__teaser-cta-button:hover:not([disabled]) *, .cs-grid-layout__teaser-cta-button:focus:not([disabled]) *, .cs-grid-layout__teaser-cta-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-grid-layout__teaser-cta-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-grid-layout__teaser-cta-button-span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal;
      padding-left: 0;
      padding-right: 4em; }
    .cs-grid-layout__teaser-cta-button-icon {
      max-width: 1em;
      max-height: 1.8rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-right: 0;
      right: 1em; }

.cs-container--grid-teaser {
  width: 100%;
  height: 100%;
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  bottom: auto;
  overflow: visible; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Mixins for flexible containers declaration.
 */
/**
 * Defines page container. This mixin makes sure that the content has always equal padding
 * for mobile screens on both size of the device.
 */
/**
 * Negates parent container's padding and sets it own.
 * Somethimes this has to be done to make background even to other containers' content.
 */
/**
 * Defines container wrapper that makes sure contnet doesn't extend above certain width and is always centered.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Variables related to sticky header and topbar on mobile devices.
 * to prevent page jumping when offacnvas (fixed positioned) is opened
 * If you have more elements on top, you have to include their height.
 */
@media (max-width: 63.99em) {
  .cs-container--header {
    padding-left: 0;
    padding-right: 0; } }

/**
     * Styles related to sticky header and topbar on mobile devices.
     * to prevent page jumping when offacnvas (fixed positioned) is opened
     */
@media (max-width: 63.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 8.3rem; } }

@media (max-width: 47.99em) {
  .navigation-offcanvas-open .page-wrapper.no-scroll-child {
    padding-top: 5rem; } }

@media (max-width: 63.99em) {
  .cs-container--header {
    position: sticky;
    z-index: 800;
    top: 0;
    /**
                 * Fixed positioning required to work with offcanvas elements.
                 */ }
    .navigation-offcanvas-open.no-scroll .cs-container--header {
      position: fixed; } }

@media (max-width: 47.99em) {
  .cs-container--header {
    top: 0; } }

.cs-header {
  font-size: 1rem;
  height: 5rem; }
  @media (min-width: 48em) {
    .cs-header {
      height: 8.3rem; } }
  @media (min-width: 80em) {
    .cs-header {
      height: 10rem; } }
  .cs-header__content {
    height: 5rem;
    z-index: 300;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    position: relative;
    max-width: 100vw; }
    @media (min-width: 48em) {
      .cs-header__content {
        height: 8.3rem; } }
    @media (min-width: 64em) {
      .cs-header__content {
        border-bottom: unset;
        flex-wrap: nowrap; } }
    @media (min-width: 80em) {
      .cs-header__content {
        height: 10rem; } }
  .cs-header__offcanvas-toggle {
    height: 100%;
    flex: 0 1 4rem; }
    .cs-header__offcanvas-toggle path.st0 {
      fill: #7e57c2 !important; }
    @media (min-width: 64em) {
      .cs-header__offcanvas-toggle {
        display: none; } }
  .cs-header__logo {
    display: flex;
    flex: 1 1;
    margin-bottom: 0;
    height: 100%;
    padding: 0.7rem 0 0.7rem 0rem; }
    @media (min-width: 23.125em) {
      .cs-header__logo {
        padding: 0.7rem 0 0.7rem 0rem; } }
    @media (min-width: 48em) {
      .cs-header__logo {
        flex: 0 1 auto;
        padding: 0; } }
    .page-print .cs-header__logo {
      max-width: 128rem;
      width: 100%;
      margin: 0 auto;
      position: relative;
      height: auto;
      padding: 2rem 0; }
      .page-print .cs-header__logo:after {
        content: '';
        display: table;
        clear: both; }
  .cs-header__search {
    display: none;
    width: 100%;
    background-color: #fff;
    padding: 1rem;
    position: absolute;
    left: 0;
    right: 0;
    z-index: 300;
    top: 100%; }
    @media (min-width: 64em) {
      .cs-header__search {
        flex-grow: 1;
        width: auto;
        padding: 0;
        position: initial;
        margin-left: 2rem !important;
        justify-content: center; } }
    .cs-header__search--active {
      display: flex; }
    @media (min-width: 64em) {
      .cs-header__search {
        display: flex; } }
    @media (min-width: 64em) {
      .cs-header__search {
        position: relative;
        padding: 0;
        top: initial; } }
  .cs-header__user-nav {
    display: flex;
    justify-content: space-between;
    flex: 0 1 30%; }
    @media (min-width: 64em) {
      .cs-header__user-nav {
        flex: 0 1 25%; } }
  .cs-header__back-button {
    border-right: 1px solid #dcdcdc;
    height: 100%;
    display: flex;
    padding: 0 1rem;
    align-items: center;
    justify-content: center;
    min-width: 4rem; }
    @media (min-width: 23.125em) {
      .cs-header__back-button {
        padding: 0 1.5rem; } }
    @media (min-width: 48em) {
      .cs-header__back-button {
        display: none; } }
  .cs-header__back-button-icon {
    fill: #888;
    height: 2.5rem; }
    @media (max-width: 23.115em) {
      .cs-header__back-button-icon {
        height: 2rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-search {
  width: 100%; }
  @media (min-width: 64em) {
    .cs-header-search {
      width: 60%; } }
  .cs-header-search--in-offcanvas {
    position: relative; }
  .cs-header-search__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__field {
    position: relative; }
    .cs-header-search__field:before, .cs-header-search__field:after {
      content: '';
      position: absolute;
      opacity: 0;
      transition: opacity 0.3s;
      left: -0.5rem;
      right: -0.5rem;
      background: #fff; }
    .cs-header-search__field:before {
      content: '';
      position: absolute;
      box-shadow: unset;
      top: -0.5rem;
      bottom: -0.5rem;
      border-radius: 5px 5px 0 0; }
    .cs-header-search__field:after {
      content: '';
      position: absolute;
      bottom: -1rem;
      top: 100%;
      z-index: 209; }
    .active-popup .cs-header-search__field:before, .active-popup .cs-header-search__field:after {
      opacity: 1; }
  .cs-header-search__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    border-color: #7e57c2;
    font-size: 1.6rem;
    position: relative;
    z-index: 210;
    margin: 0;
    -webkit-appearance: none; }
    .cs-header-search__input:hover:not([disabled]), .cs-header-search__input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-header-search__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-header-search__input[disabled] {
      opacity: 0.65; }
    @media (min-width: 30em) {
      .cs-header-search__input {
        font-size: 1.6rem; } }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--search {
      transform: translateX(100%);
      opacity: 0; }
    .ajax-loading .cs-header-search__input:focus + .cs-header-search__action .cs-header-search__button-container--loader {
      transform: translateX(0);
      opacity: 1; }
  .cs-header-search__action {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 220;
    overflow: hidden;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top-right-radius: 200px;
    border-bottom-right-radius: 200px; }
  .cs-header-search__close-icon {
    width: 1.5rem;
    height: 1.5rem;
    margin-right: 1rem;
    display: block;
    opacity: 0.6;
    transition: opacity 0.3s linear; }
    .cs-header-search__close-icon:hover {
      cursor: pointer;
      opacity: 1; }
    @media (min-width: 64em) {
      .cs-header-search__close-icon {
        display: none; } }
    .cs-header-search__close-icon path {
      fill: #888; }
  .cs-header-search__close-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__button-container {
    position: absolute;
    top: 0;
    left: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    transition: transform 0.5s cubic-bezier(0, 0.66, 0.32, 0.99), opacity 0.15s linear; }
    .cs-header-search__button-container--search {
      transform: translateX(0); }
    .cs-header-search__button-container--loader {
      transform: translateX(100%); }
  .cs-header-search__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    width: 5rem;
    height: 100%;
    overflow: hidden;
    position: relative;
    border-radius: 200px;
    backface-visibility: hidden;
    transform: translateX(0.7rem);
    background-color: transparent !important; }
    .cs-header-search__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-header-search__button, .cs-header-search__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-header-search__button *, .cs-header-search__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button:hover:not([disabled]), .cs-header-search__button:focus:not([disabled]), .cs-header-search__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-header-search__button:hover:not([disabled]) *, .cs-header-search__button:focus:not([disabled]) *, .cs-header-search__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-header-search__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-header-search__button[disabled] {
      opacity: 1; }
  .cs-header-search__button-icon {
    transform: translateX(-0.3rem); }
    .cs-header-search__button-icon--search {
      width: 2rem;
      height: 2rem; }
      .cs-header-search__button-icon--search path {
        fill: #7e57c2 !important; }
    .cs-header-search__button-icon--loader {
      stroke: #7e57c2;
      width: 3.2rem;
      height: 3.2rem; }
  .cs-header-search__button-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-header-search__autocomplete {
    width: calc(100% - 1rem);
    left: 0.5rem;
    right: 0.5rem; }
    @media (max-width: 47.99em) {
      .cs-header-search__autocomplete {
        max-height: calc(100vh - 5rem - 1.275em - 7rem);
        overflow-y: auto; } }
    @media (min-width: 64em) {
      .cs-header-search__autocomplete {
        margin-top: 0.5rem;
        left: 50%;
        transform: translateX(-50%);
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.17);
        border: 0;
        width: 60%; } }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  @media (min-width: 64em) {
    .cs-header-user-nav {
      padding: 0; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 0 0 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
    .cs-header-user-nav__item--account a {
      max-width: 160px; }
      @media (min-width: 48.01em) {
        .cs-header-user-nav__item--account a {
          min-width: 145px; } }
  .cs-header-user-nav .minicart-wrapper > .cs-header-user-nav__link {
    padding: 0.5rem 1rem;
    border: 2px solid #7e57c2;
    border-radius: 200px; }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-direction: row;
    position: relative;
    width: 100%;
    padding: 0rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #7e57c2; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #4d2c91; }
    .cs-header-user-nav__link--search {
      display: none; }
      @media (min-width: 48em) {
        .cs-header-user-nav__link--search {
          display: flex; } }
      .cs-header-user-nav__link--search:hover {
        cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative;
    margin-left: 10px;
    margin-right: 10px; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #7e57c2; }
  .cs-header-user-nav__label {
    text-transform: unset;
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 0.3rem;
    color: #455a64;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal;
        margin-top: 0.3rem; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 50px;
    padding: 0 0.9rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    opacity: 1;
    transition: opacity 0.3s; }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #11a099;
      color: #455a64;
      transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #fcb739;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #11a099;
      color: #455a64; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
    .cs-header-user-nav__qty-counter--empty::before {
      content: '0';
      width: 0; }
    .cs-header-user-nav__qty-counter--wishlist-cloned {
      position: fixed;
      z-index: 1200;
      right: auto;
      opacity: 1;
      transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--wishlist-animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 3.5rem; } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  85% {
    opacity: 1;
    transform: scale(1.5); }
  95% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }
  .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text {
    font-size: 1.4rem;
    font-weight: 700;
    min-width: 40px;
    display: inline-block; }
    .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text .minicart-amount-text--empty::before {
      content: '0,00 zł'; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-headline {
  font-size: 1rem;
  clear: both;
  padding: 0 0 2em 0;
  margin: 0 0 2em 0;
  margin: 0;
  padding: 0;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-headline {
      margin: 0 0 4rem; } }
  .cs-headline--skip-spacing {
    margin: 0; }
  .cs-headline__title {
    display: block;
    text-align: center;
    align-items: center;
    margin: 0;
    font-size: 2.6em;
    font-weight: 700;
    color: #455a64;
    text-transform: uppercase; }
    @media (min-width: 48em) {
      .cs-headline__title {
        display: flex; } }
    .cs-headline__title:before, .cs-headline__title:after {
      content: '';
      display: none;
      height: 1px;
      flex-grow: 1;
      background-color: #dcdcdc; }
      @media (min-width: 48em) {
        .cs-headline__title:before, .cs-headline__title:after {
          display: flex; } }
    .cs-headline__title:before {
      margin-right: 0.6em; }
    .cs-headline__title:after {
      margin-left: 0.6em; }
  .cs-headline__subtitle {
    color: #888;
    font-size: 2em;
    font-weight: 400;
    text-transform: none;
    margin: 0;
    padding: 2rem 0;
    display: none;
    text-align: center; }
    @media (min-width: 48em) {
      .cs-headline__subtitle {
        display: block; } }

.lazyload,
.lazyloading,
.swiper-lazy {
  opacity: 0.001; }

.lazyload[data-bg] {
  opacity: 1; }

.lazyloaded,
.swiper-lazy-loaded {
  opacity: 1;
  transition: opacity 0.2s; }

.cs-image-teaser__image.lazyload:not(.lazyloaded) {
  height: 1px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-links-block-addto {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%; }
  .page-product-bundle .cs-links-block-addto {
    margin-top: 1rem; }
  .cs-product-tile__addon .cs-links-block-addto {
    padding-top: 0; }
  .cs-links-block-addto--centered {
    justify-content: center; }
  .cs-links-block-addto__item {
    margin: 0; }
    .cs-links-block-addto__item + .cs-links-block-addto__item {
      margin-left: 0.5rem; }
      .cs-product-tile--list .cs-links-block-addto__item + .cs-links-block-addto__item {
        margin-left: 0;
        margin-top: 0.5rem; }
  .cs-links-block-addto__link {
    display: flex;
    align-items: center;
    font-size: 1.2rem;
    color: #4d2c91;
    transition: color 0.15s linear; }
    .cs-links-block-addto__link:hover {
      color: #4d2c91;
      text-decoration: none; }
  .cs-links-block-addto__icon {
    width: 1.375em;
    height: 1.375em;
    margin-right: 0.4rem; }
    .cs-links-block-addto__icon path {
      fill: #888; }
    .cs-links-block-addto__icon--wishlist path {
      fill: #e41f12; }
    .cs-links-block-addto__icon--compare path {
      fill: #7e57c2; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-logo {
  height: 100%; }
  .cs-logo__image {
    height: 100%; }
    .cs-logo__image--desktop {
      display: none; }
      .checkout-index-index .cs-logo__image--desktop {
        display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--desktop {
          display: block; } }
    .cs-logo__image--mobile {
      display: block; }
      @media (min-width: 48em) {
        .cs-logo__image--mobile {
          display: none; } }
      .checkout-index-index .cs-logo__image--mobile {
        display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.messages {
  max-width: 128rem;
  margin: 0 auto; }

.cs-messages__message,
.message {
  margin: 1rem 0;
  padding: 1.2rem 1rem 1rem;
  border-radius: 7px;
  background-repeat: no-repeat;
  background-position: 1.2rem center;
  background-size: 2rem 2rem;
  padding-left: 4.3rem; }

.message.global.demo {
  text-align: center;
  font-size: 2.4rem;
  font-weight: bold;
  color: white;
  background: red;
  padding: 2rem 1rem;
  border-radius: 0; }

.cs-messages__message--success,
.message.success {
  background-color: #d5efd7;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-success.svg");
  border: none; }

.cs-messages__message--notice,
.message.warning {
  background-color: #fdf4ca;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-warning.svg");
  border: none; }

.cs-messages__message--info,
.message.info,
.message.notice {
  background-color: #fdf4ca;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-info.svg");
  border: none; }

.cs-messages__message--error,
.message.error {
  background-color: #f8d0ce;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/messages/icon-error.svg");
  border: none; }

.cs-messages__text,
.message span {
  color: #696969;
  font-size: 1.4rem; }

.cs-messages--space-top {
  margin-top: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-minicart-product {
  display: flex; }
  .cs-minicart-product__image-container {
    flex-shrink: 0;
    margin-right: 1rem; }
    .cs-minicart-product__image-container img {
      width: auto !important;
      height: auto !important; }
  .cs-minicart-product__image {
    max-height: 100%;
    width: auto; }
  .cs-minicart-product__overview {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: baseline; }
  .cs-minicart-product__details {
    width: 100%; }
  .cs-minicart-product__brand-wrapper {
    text-align: left; }
  .cs-minicart-product__brand {
    font-size: 1.2rem;
    color: #888; }
  .cs-minicart-product__name-wrapper {
    flex-basis: 55%;
    padding-bottom: 1.2rem;
    text-align: left;
    font-size: 1.3rem;
    flex-basis: 100% !important; }
    @media (min-width: 30em) {
      .cs-minicart-product__name-wrapper {
        flex-basis: 70%; } }
  .cs-minicart-product__name {
    width: 100%;
    padding: 0;
    margin-top: 0;
    font-size: inherit;
    text-decoration: none;
    color: #455a64;
    font-weight: 600;
    font-weight: 700;
    font-size: 1.4rem; }
    .cs-minicart-product__name:visited, .cs-minicart-product__name:hover {
      text-decoration: none;
      color: #455a64; }
  .cs-minicart-product__item-pricing {
    order: 3; }
    .cs-minicart-product__item-pricing--with-special {
      text-align: left; }
      .cs-minicart-product__item-pricing--with-special .old-price .price {
        font-size: 1.3rem;
        color: #a8b1b7; }
      .cs-minicart-product__item-pricing--with-special .cs-minicart-product__price .price {
        color: #e41f12; }
  .cs-minicart-product__price .price {
    font-size: 1.3rem;
    font-weight: 700;
    color: #455a64; }
  .cs-minicart-product__price .price-including-tax,
  .cs-minicart-product__price .price-excluding-tax {
    font-size: 1.3rem; }
  .cs-minicart-product__price .price {
    font-weight: 400; }
  .cs-minicart-product__price-label, .cs-minicart-product__options-subtitle {
    display: none; }
  .cs-minicart-product__options-title {
    font-size: 1.2rem;
    color: #484848;
    cursor: pointer;
    font-size: 1.3rem;
    color: #455a64; }
    .cs-minicart-product__options-title[aria-expanded='true'] > .cs-minicart-product__options-title-svg {
      transform: rotate(180deg);
      vertical-align: initial; }
  .cs-minicart-product__options-title-svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.5rem;
    transition: transform 0.3s cubic-bezier(0, 0.66, 0.32, 0.99);
    vertical-align: middle; }
  .cs-minicart-product__options-wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    margin-top: -0.4rem;
    flex-basis: 100%;
    padding-bottom: 1.2rem; }
  .cs-minicart-product__options-group {
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center; }
    .cs-minicart-product__options-group--qty {
      margin-top: 0.5rem; }
      .cs-minicart-product__options-wrapper + .cs-minicart-product__options-group--qty {
        margin-top: 1.5rem; }
  .cs-minicart-product__options-content {
    width: 100%;
    padding-top: 0.5rem; }
  .cs-minicart-product__options-label {
    font-size: 1.2rem;
    color: #888;
    font-weight: 400;
    margin-bottom: 0;
    text-align: left;
    padding-right: 0.5rem;
    font-size: 1.1rem;
    font-weight: 700;
    color: #455a64;
    text-transform: uppercase; }
    .cs-minicart-product__options-label:after {
      content: ':'; }
  .cs-minicart-product__options-value {
    font-size: 1.2rem;
    color: #888;
    margin-bottom: 0;
    width: 100%; }
    .cs-minicart-product__options-value__value {
      display: flex;
      justify-content: space-between;
      width: 100%; }
      .cs-minicart-product__options-value__value .price {
        color: #455a64; }
  .cs-minicart-product__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding-top: 1.2rem; }
  .cs-minicart-product__action-wrapper {
    margin-left: 1rem; }
  .cs-minicart-product__qty,
  .cs-minicart-product .cs-qty-increment {
    display: flex;
    flex: 1 0 9rem;
    flex-wrap: nowrap; }
  .cs-minicart-product__qty-label {
    display: none; }
  .cs-minicart-product__qty-input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
    margin-bottom: 0;
    height: 3rem;
    width: 4rem;
    max-width: 4rem;
    font-size: 1.2rem; }
    .cs-minicart-product__qty-input:hover:not([disabled]), .cs-minicart-product__qty-input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-minicart-product__qty-input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-minicart-product__qty-input[disabled] {
      opacity: 0.65; }
  .cs-minicart-product__qty-button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    padding: 0;
    width: 3rem;
    height: 3rem;
    margin-left: 0.5rem; }
    .cs-minicart-product__qty-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-minicart-product__qty-button, .cs-minicart-product__qty-button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-minicart-product__qty-button *, .cs-minicart-product__qty-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button:hover:not([disabled]), .cs-minicart-product__qty-button:focus:not([disabled]), .cs-minicart-product__qty-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-minicart-product__qty-button:hover:not([disabled]) *, .cs-minicart-product__qty-button:focus:not([disabled]) *, .cs-minicart-product__qty-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-minicart-product__qty-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-minicart-product__qty-button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    display: none; }
  .cs-minicart-product__qty-button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em; }
  .cs-minicart-product__action:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__action:hover .cs-minicart-product__action-icon *, .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg *,
  .cs-minicart-product__options-title:hover .cs-minicart-product__action-icon * {
    fill: #4d2c91; }
  .cs-minicart-product__action-icon {
    width: 1.6rem;
    height: 1.6rem;
    width: 2rem;
    height: 2rem; }
  .cs-minicart-product__action-icon *, .cs-minicart-product__options-title-svg * {
    fill: #7e57c2; }
  .cs-minicart-product__action-label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-minicart-product__options-title:hover .cs-minicart-product__options-title-svg * {
    fill: #455a64; }
  .cs-minicart-product__options-title-svg * {
    fill: #455a64; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide native browser's scrollbar
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* prettier-ignore */
.cs-minicart__close {
  display: inline-block;
  background: none;
  box-sizing: content-box;
  border: 0;
  box-shadow: none;
  line-height: inherit;
  margin: 0;
  padding: 0;
  text-decoration: none;
  text-shadow: none;
  font-weight: 400;
  position: absolute;
  right: -1.5rem;
  width: 5rem;
  height: 5rem;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  right: 0.5rem; }
  .cs-minicart__close:focus, .cs-minicart__close:active, .cs-minicart__close:hover {
    background: transparent;
    border: none;
    color: inherit; }

.cs-minicart__close-icon {
  position: relative;
  transform: rotate(45deg);
  width: 100%;
  height: 100%;
  display: inline-block; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    content: '';
    position: absolute;
    top: 50%;
    width: 2rem;
    height: 0.2rem;
    left: auto;
    background-color: #484848;
    transition: transform 0.3s ease-out, opacity 0.15s ease-out, background-color 0.15s linear;
    backface-visibility: hidden; }
  .cs-minicart__close-icon:hover:before, .cs-minicart__close-icon:hover:after {
    background-color: #696969; }
  .cs-minicart__close-icon[aria-expanded="true"]:before, .cs-minicart__close-icon[aria-expanded="true"]:after {
    background-color: #888; }
  .cs-minicart__close-icon:before, .cs-minicart__close-icon:after {
    right: 1.5rem;
    transform: translate3d(0, -50%, 0) !important; }
  .cs-minicart__close-icon:after {
    transform: translate3d(0, -50%, 0) rotate(90deg) !important; }
  .cs-minicart__close-icon[aria-expanded="true"]:before {
    transform: translate3d(0, -50%, 0) rotate(-90deg) !important;
    opacity: 0; }
  .cs-minicart__close-icon[aria-expanded="true"]:after {
    transform: translate3d(0, -50%, 0) rotate(0) !important; }

.cs-minicart__close-text {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.cs-minicart__title-wrapper {
  position: relative;
  padding: 2rem 0;
  display: flex;
  color: #455a64;
  font-weight: 700;
  font-size: 1.8rem;
  margin: 0;
  padding: 1rem 2rem;
  font-size: 2.1rem;
  text-transform: uppercase;
  border-bottom: 1px solid #dcdcdc; }

.cs-minicart__items-total {
  margin-left: 0.5rem;
  color: #696969;
  font-weight: 400; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):before {
    content: '('; }
  .cs-minicart__items-total:not(.cs-minicart__items-total--empty):after {
    content: ')'; }
  .cs-minicart__items-total--empty .count {
    display: none; }

.cs-minicart__edit-link {
  font-weight: 700; }
  .cs-minicart__edit-link .cs-link__icon {
    padding: 0 0 0 1rem; }

.cs-minicart__content {
  height: auto !important;
  background-color: #fff;
  position: relative; }
  .cs-minicart__content .load.indicator:before {
    height: unset; }

.cs-minicart__list {
  padding: 0;
  list-style: none;
  margin-bottom: 0; }
  .cs-minicart__list--scroll {
    height: auto !important;
    max-height: calc(100vh - 36rem);
    overflow-y: auto; }
    @media (min-width: 48em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 43rem); } }
    @media (min-width: 64em) {
      .cs-minicart__list--scroll {
        max-height: calc(100vh - 38rem); } }

.cs-minicart__list-item {
  padding: 1.5rem;
  border-bottom: 1px solid #dcdcdc;
  margin-bottom: 0;
  padding: 1.5rem 2rem; }
  .cs-minicart__list-item:last-child {
    border-bottom: none; }

.cs-minicart__actions-wrapper {
  padding: 2rem 0;
  position: relative;
  padding: 1.5rem 2rem;
  box-shadow: 0 -5px 5px -5px rgba(0, 0, 0, 0.27); }

.cs-minicart__actions {
  margin-top: 1rem; }
  .cs-minicart__actions:first-child {
    margin-top: 0; }

.cs-minicart__empty {
  padding: 2rem 0;
  display: inline-block;
  font-size: 1.4rem;
  text-align: center; }

.cs-minicart__subtotal {
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.2rem; }

.cs-minicart__subtotal-price .price {
  font-weight: 700;
  font-size: 1.5rem !important;
  font-size: 2.1rem !important; }

.cs-minicart__button-checkout {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 100%; }
  .cs-minicart__button-checkout:hover, .cs-minicart__button-checkout:focus, .cs-minicart__button-checkout:active {
    background-color: #7e57c2 !important; }
  .cs-minicart__button-checkout:before, .cs-minicart__button-checkout:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-minicart__button-checkout:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-minicart__button-checkout:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-minicart__button-checkout:hover:after {
    width: calc(100% + 2px); }
  .cs-minicart__button-checkout::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-checkout, .cs-minicart__button-checkout:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-minicart__button-checkout *, .cs-minicart__button-checkout:visited * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-checkout:hover:not([disabled]), .cs-minicart__button-checkout:focus:not([disabled]), .cs-minicart__button-checkout:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-checkout:hover:not([disabled]) *, .cs-minicart__button-checkout:focus:not([disabled]) *, .cs-minicart__button-checkout:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-checkout[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-checkout-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-checkout-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-viewcart {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5;
  width: 100%; }
  .cs-minicart__button-viewcart::before, .cs-minicart__button-viewcart::after {
    content: none; }
  .cs-minicart__button-viewcart::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-viewcart, .cs-minicart__button-viewcart:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #7e57c2;
    color: #7e57c2;
    background-color: #fff; }
    .cs-minicart__button-viewcart *, .cs-minicart__button-viewcart:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-minicart__button-viewcart:hover:not([disabled]), .cs-minicart__button-viewcart:focus:not([disabled]), .cs-minicart__button-viewcart:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-viewcart:hover:not([disabled]) *, .cs-minicart__button-viewcart:focus:not([disabled]) *, .cs-minicart__button-viewcart:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-viewcart[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-viewcart-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-viewcart-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    /* stylelint-disable-next-line */ }

.cs-minicart__button-carousel {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-minicart__button-carousel-wrapper {
    display: flex;
    justify-content: center;
    padding-top: 3rem;
    margin: 3rem 0;
    border-top: 1px solid #dcdcdc; }
  .cs-minicart__button-carousel::before, .cs-minicart__button-carousel::after {
    content: none; }
  .cs-minicart__button-carousel::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-minicart__button-carousel, .cs-minicart__button-carousel:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #7e57c2;
    color: #7e57c2;
    background-color: #fff; }
    .cs-minicart__button-carousel *, .cs-minicart__button-carousel:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-minicart__button-carousel:hover:not([disabled]), .cs-minicart__button-carousel:focus:not([disabled]), .cs-minicart__button-carousel:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-minicart__button-carousel:hover:not([disabled]) *, .cs-minicart__button-carousel:focus:not([disabled]) *, .cs-minicart__button-carousel:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-minicart__button-carousel[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-minicart__button-carousel-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em;
    /* stylelint-disable-next-line */ }
  .cs-minicart__button-carousel-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em;
    /* stylelint-disable-next-line */ }

.cs-minicart__messages {
  padding: 0 2rem; }

.cs-minicart-offcanvas__wrapper {
  padding: 0; }

/* prettier-ignore */
.cs-minicart__carousel {
  position: relative;
  z-index: 10; }
  .cs-minicart__carousel-container {
    opacity: 0;
    transition: opacity 0.3s ease-in;
    background: #fff; }
    .cs-minicart__carousel-wrapper--ready .cs-minicart__carousel-container {
      opacity: 1; }
  .cs-minicart__carousel-wrapper {
    display: none;
    visibility: hidden;
    pointer-events: none;
    top: 50%;
    right: calc(40rem + 2rem);
    transform: translateY(-50%);
    width: calc(100vw - (40rem + (2 * 2rem)));
    max-width: 120rem;
    padding: 0;
    margin: 0;
    background: transparent; }
    .cs-minicart__carousel-wrapper--loading, .cs-minicart__carousel-wrapper--ready {
      visibility: visible;
      pointer-events: auto; }
    .drawer--visible .cs-minicart__carousel-wrapper {
      position: absolute; }
    @media (min-width: 64em) {
      .minicart-offcanvas-open .cs-minicart__carousel-wrapper {
        display: block; } }
    @media (min-width: 80em) {
      .cs-minicart__carousel-wrapper {
        right: calc(40rem + (2 * 2rem));
        width: calc(100vw - (40rem + (4 * 2rem))); } }
    .cs-minicart__carousel-wrapper .cs-headline {
      margin: 0 0 2rem;
      padding: 2rem 0 0; }
    .cs-minicart__carousel-wrapper .cs-headline__title {
      font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
      font-size: 1.8rem;
      line-height: 1.1;
      color: #455a64;
      font-weight: 700;
      text-transform: none;
      margin: 1rem 0 2rem; }
  .cs-minicart__carousel-spinner {
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 11rem;
    height: 11rem;
    padding: 2rem 0;
    transform: translate3d(-50%, -50%, 0);
    transition: opacity 0.3s ease-in; }
    .cs-minicart__carousel-wrapper--loading .cs-minicart__carousel-spinner {
      opacity: 1;
      z-index: 10; }
  .cs-minicart__carousel .cs-products-carousel {
    --gap: 0.8rem;
    --base-size: calc(100% - 0.8rem);
    --size: var(--base-size);
    /**
     * class-based columns config relates to classnames, like '--items-in-row-4'
     * which are added to elements, depending on the CC Components configuration.
     */
    --size: calc(
            var(--base-size) /
                2 -
                1 *
                var(--gap) /
                2
        );
    /*  container padding fix  */
    margin: 0;
    background: #fff; }
    @media (min-width: 81.875em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
        --base-size: calc(128rem - 0.8rem); }
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen {
        --base-size: 100%;
        max-width: 100%; }
        .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--use-whole-screen .cs-minicart__carousel .cs-products-carousel__slides {
          scroll-snap-type: x proximity;
          padding-left: calc((100% - 128rem) / 2);
          padding-right: calc((100% - 128rem) / 2);
          scroll-padding-left: calc((100% - 128rem) / 2);
          scroll-padding-right: calc((100% - 128rem) / 2);
          scroll-margin-left: calc((100vw - 128rem) / 2);
          scroll-margin-right: calc((100vw - 128rem) / 2); } }
    @media (hover: hover) and (pointer: fine) and (min-width: 81.875em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width {
        --base-size: 128rem; } }
    @media (min-width: 48em) {
      .cs-minicart__carousel .cs-products-carousel {
        --gap: 0.8rem; } }
    @media (min-width: 23.125em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 30em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 48em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 2 - ((
                                    1 * var(--gap)
                                ) / 2)
                ); } }
    @media (min-width: 64em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
    @media (min-width: 80em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 3 - ((
                                    2 * var(--gap)
                                ) / 3)
                ); } }
    @media (min-width: 90em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
    @media (min-width: 120em) {
      .cs-minicart__carousel .cs-products-carousel {
        --size: calc(
                    var(--base-size) / 4 - ((
                                    3 * var(--gap)
                                ) / 4)
                ); } }
    @media (max-width: 81.8125em) {
      .cs-minicart__carousel .cs-products-carousel.cs-minicart__carousel .cs-products-carousel--container-width .cs-minicart__carousel .cs-products-carousel__slides {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
        scroll-padding-left: 1.5rem;
        scroll-padding-right: 1.5rem; } }
    @media (prefers-reduced-motion: no-preference) {
      .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
        scroll-behavior: smooth; } }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides-wrapper {
      position: relative; }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex: 0 0 100%;
      gap: 0;
      flex-wrap: nowrap;
      padding: var(--gap) 0;
      overflow-x: auto;
      overscroll-behavior-inline: contain;
      scrollbar-width: thin; }
      @supports (scroll-behavior: smooth) {
        .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
          scroll-snap-type: x mandatory; } }
      @media (min-width: 48em) {
        .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides {
          overflow: -moz-scrollbars-none;
          scrollbar-width: none; }
          .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar {
            display: none;
            width: 0;
            height: 0;
            background: transparent; }
          .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slides::-webkit-scrollbar-thumb {
            background: transparent;
            width: 0;
            height: 0; } }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide {
      margin: 0;
      padding: 0;
      list-style: none;
      display: inline-block;
      flex: 0 0 var(--size);
      margin-right: var(--gap);
      scroll-snap-align: start;
      min-width: 0; }
      .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__slide:last-of-type {
        margin-right: 0; }
    .cs-minicart__carousel .cs-products-carousel .cs-minicart__carousel .cs-products-carousel__image {
      display: block; }

.minicart-wrapper .ui-dialog {
  display: block !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable no-descending-specificity */
.modal-slide.confirm .modal-inner-wrap,
.modal-popup.confirm .modal-inner-wrap,
.modal-custom.confirm .modal-inner-wrap {
  max-width: 50rem; }

.modal-slide .modal-inner-wrap,
.modal-popup .modal-inner-wrap,
.modal-custom .modal-inner-wrap {
  background: #fff;
  box-shadow: none;
  border-radius: 0;
  border: none; }

.modal-slide .modal-content,
.modal-popup .modal-content,
.modal-custom .modal-content {
  padding-top: 2rem;
  padding-bottom: 2rem;
  font-size: 1.4rem; }

.modal-slide .modal-header,
.modal-popup .modal-header,
.modal-custom .modal-header {
  padding: 0;
  margin: 0; }

.modal-slide .action-close,
.modal-popup .action-close,
.modal-custom .action-close {
  background: none;
  border: none;
  position: absolute;
  right: 0;
  top: 0;
  margin: 1.5rem;
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/close.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1rem 1rem;
  width: 3rem;
  height: 3rem;
  z-index: 1; }
  .modal-slide .action-close span,
  .modal-popup .action-close span,
  .modal-custom .action-close span {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .modal-slide .action-close:before,
  .modal-popup .action-close:before,
  .modal-custom .action-close:before {
    content: none; }

.modal-slide .modal-footer,
.modal-popup .modal-footer,
.modal-custom .modal-footer {
  padding: 2rem;
  border-top: 1px solid #dcdcdc;
  display: flex;
  justify-content: space-between; }
  @media (max-width: 29.99em) {
    .modal-slide .modal-footer,
    .modal-popup .modal-footer,
    .modal-custom .modal-footer {
      flex-wrap: wrap; } }
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary,
  .modal-popup .modal-footer .action-primary,
  .modal-popup .modal-footer .primary,
  .modal-custom .modal-footer .action-primary,
  .modal-custom .modal-footer .primary {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-primary::-moz-focus-inner,
    .modal-slide .modal-footer .primary::-moz-focus-inner,
    .modal-popup .modal-footer .action-primary::-moz-focus-inner,
    .modal-popup .modal-footer .primary::-moz-focus-inner,
    .modal-custom .modal-footer .action-primary::-moz-focus-inner,
    .modal-custom .modal-footer .primary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-primary, .modal-slide .modal-footer .action-primary:visited,
    .modal-slide .modal-footer .primary,
    .modal-slide .modal-footer .primary:visited,
    .modal-popup .modal-footer .action-primary,
    .modal-popup .modal-footer .action-primary:visited,
    .modal-popup .modal-footer .primary,
    .modal-popup .modal-footer .primary:visited,
    .modal-custom .modal-footer .action-primary,
    .modal-custom .modal-footer .action-primary:visited,
    .modal-custom .modal-footer .primary,
    .modal-custom .modal-footer .primary:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .modal-slide .modal-footer .action-primary *, .modal-slide .modal-footer .action-primary:visited *,
      .modal-slide .modal-footer .primary *,
      .modal-slide .modal-footer .primary:visited *,
      .modal-popup .modal-footer .action-primary *,
      .modal-popup .modal-footer .action-primary:visited *,
      .modal-popup .modal-footer .primary *,
      .modal-popup .modal-footer .primary:visited *,
      .modal-custom .modal-footer .action-primary *,
      .modal-custom .modal-footer .action-primary:visited *,
      .modal-custom .modal-footer .primary *,
      .modal-custom .modal-footer .primary:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary:hover:not([disabled]), .modal-slide .modal-footer .action-primary:focus:not([disabled]), .modal-slide .modal-footer .action-primary:active:not([disabled]),
    .modal-slide .modal-footer .primary:hover:not([disabled]),
    .modal-slide .modal-footer .primary:focus:not([disabled]),
    .modal-slide .modal-footer .primary:active:not([disabled]),
    .modal-popup .modal-footer .action-primary:hover:not([disabled]),
    .modal-popup .modal-footer .action-primary:focus:not([disabled]),
    .modal-popup .modal-footer .action-primary:active:not([disabled]),
    .modal-popup .modal-footer .primary:hover:not([disabled]),
    .modal-popup .modal-footer .primary:focus:not([disabled]),
    .modal-popup .modal-footer .primary:active:not([disabled]),
    .modal-custom .modal-footer .action-primary:hover:not([disabled]),
    .modal-custom .modal-footer .action-primary:focus:not([disabled]),
    .modal-custom .modal-footer .action-primary:active:not([disabled]),
    .modal-custom .modal-footer .primary:hover:not([disabled]),
    .modal-custom .modal-footer .primary:focus:not([disabled]),
    .modal-custom .modal-footer .primary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer .action-primary:hover:not([disabled]) *, .modal-slide .modal-footer .action-primary:focus:not([disabled]) *, .modal-slide .modal-footer .action-primary:active:not([disabled]) *,
      .modal-slide .modal-footer .primary:hover:not([disabled]) *,
      .modal-slide .modal-footer .primary:focus:not([disabled]) *,
      .modal-slide .modal-footer .primary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-primary:active:not([disabled]) *,
      .modal-popup .modal-footer .primary:hover:not([disabled]) *,
      .modal-popup .modal-footer .primary:focus:not([disabled]) *,
      .modal-popup .modal-footer .primary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-primary:active:not([disabled]) *,
      .modal-custom .modal-footer .primary:hover:not([disabled]) *,
      .modal-custom .modal-footer .primary:focus:not([disabled]) *,
      .modal-custom .modal-footer .primary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-primary[disabled],
    .modal-slide .modal-footer .primary[disabled],
    .modal-popup .modal-footer .action-primary[disabled],
    .modal-popup .modal-footer .primary[disabled],
    .modal-custom .modal-footer .action-primary[disabled],
    .modal-custom .modal-footer .primary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-primary,
      .modal-slide .modal-footer .primary,
      .modal-popup .modal-footer .action-primary,
      .modal-popup .modal-footer .primary,
      .modal-custom .modal-footer .action-primary,
      .modal-custom .modal-footer .primary {
        width: 100%; } }
    .modal-slide .modal-footer .action-primary span,
    .modal-slide .modal-footer .primary span,
    .modal-popup .modal-footer .action-primary span,
    .modal-popup .modal-footer .primary span,
    .modal-custom .modal-footer .action-primary span,
    .modal-custom .modal-footer .primary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary,
  .modal-popup .modal-footer .action-secondary,
  .modal-popup .modal-footer .secondary,
  .modal-custom .modal-footer .action-secondary,
  .modal-custom .modal-footer .secondary {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer .action-secondary::-moz-focus-inner,
    .modal-slide .modal-footer .secondary::-moz-focus-inner,
    .modal-popup .modal-footer .action-secondary::-moz-focus-inner,
    .modal-popup .modal-footer .secondary::-moz-focus-inner,
    .modal-custom .modal-footer .action-secondary::-moz-focus-inner,
    .modal-custom .modal-footer .secondary::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer .action-secondary, .modal-slide .modal-footer .action-secondary:visited,
    .modal-slide .modal-footer .secondary,
    .modal-slide .modal-footer .secondary:visited,
    .modal-popup .modal-footer .action-secondary,
    .modal-popup .modal-footer .action-secondary:visited,
    .modal-popup .modal-footer .secondary,
    .modal-popup .modal-footer .secondary:visited,
    .modal-custom .modal-footer .action-secondary,
    .modal-custom .modal-footer .action-secondary:visited,
    .modal-custom .modal-footer .secondary,
    .modal-custom .modal-footer .secondary:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .modal-slide .modal-footer .action-secondary *, .modal-slide .modal-footer .action-secondary:visited *,
      .modal-slide .modal-footer .secondary *,
      .modal-slide .modal-footer .secondary:visited *,
      .modal-popup .modal-footer .action-secondary *,
      .modal-popup .modal-footer .action-secondary:visited *,
      .modal-popup .modal-footer .secondary *,
      .modal-popup .modal-footer .secondary:visited *,
      .modal-custom .modal-footer .action-secondary *,
      .modal-custom .modal-footer .action-secondary:visited *,
      .modal-custom .modal-footer .secondary *,
      .modal-custom .modal-footer .secondary:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .modal-slide .modal-footer .action-secondary:hover:not([disabled]), .modal-slide .modal-footer .action-secondary:focus:not([disabled]), .modal-slide .modal-footer .action-secondary:active:not([disabled]),
    .modal-slide .modal-footer .secondary:hover:not([disabled]),
    .modal-slide .modal-footer .secondary:focus:not([disabled]),
    .modal-slide .modal-footer .secondary:active:not([disabled]),
    .modal-popup .modal-footer .action-secondary:hover:not([disabled]),
    .modal-popup .modal-footer .action-secondary:focus:not([disabled]),
    .modal-popup .modal-footer .action-secondary:active:not([disabled]),
    .modal-popup .modal-footer .secondary:hover:not([disabled]),
    .modal-popup .modal-footer .secondary:focus:not([disabled]),
    .modal-popup .modal-footer .secondary:active:not([disabled]),
    .modal-custom .modal-footer .action-secondary:hover:not([disabled]),
    .modal-custom .modal-footer .action-secondary:focus:not([disabled]),
    .modal-custom .modal-footer .action-secondary:active:not([disabled]),
    .modal-custom .modal-footer .secondary:hover:not([disabled]),
    .modal-custom .modal-footer .secondary:focus:not([disabled]),
    .modal-custom .modal-footer .secondary:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, .modal-slide .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-slide .modal-footer .secondary:hover:not([disabled]) *,
      .modal-slide .modal-footer .secondary:focus:not([disabled]) *,
      .modal-slide .modal-footer .secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-popup .modal-footer .secondary:hover:not([disabled]) *,
      .modal-popup .modal-footer .secondary:focus:not([disabled]) *,
      .modal-popup .modal-footer .secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .action-secondary:active:not([disabled]) *,
      .modal-custom .modal-footer .secondary:hover:not([disabled]) *,
      .modal-custom .modal-footer .secondary:focus:not([disabled]) *,
      .modal-custom .modal-footer .secondary:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer .action-secondary[disabled],
    .modal-slide .modal-footer .secondary[disabled],
    .modal-popup .modal-footer .action-secondary[disabled],
    .modal-popup .modal-footer .secondary[disabled],
    .modal-custom .modal-footer .action-secondary[disabled],
    .modal-custom .modal-footer .secondary[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .modal-slide .modal-footer .action-secondary,
      .modal-slide .modal-footer .secondary,
      .modal-popup .modal-footer .action-secondary,
      .modal-popup .modal-footer .secondary,
      .modal-custom .modal-footer .action-secondary,
      .modal-custom .modal-footer .secondary {
        width: 100%;
        margin-bottom: 1.5rem !important; } }
    .modal-slide .modal-footer .action-secondary span,
    .modal-slide .modal-footer .secondary span,
    .modal-popup .modal-footer .action-secondary span,
    .modal-popup .modal-footer .secondary span,
    .modal-custom .modal-footer .action-secondary span,
    .modal-custom .modal-footer .secondary span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
    body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index
    .modal-slide .modal-footer .secondary, body.checkout-index-index
    .modal-popup .modal-footer .action-secondary, body.checkout-index-index
    .modal-popup .modal-footer .secondary, body.checkout-index-index
    .modal-custom .modal-footer .action-secondary, body.checkout-index-index
    .modal-custom .modal-footer .secondary {
      display: inline-block;
      font-size: 1.8rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      min-width: 12rem; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-slide .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-popup .modal-footer .secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary::-moz-focus-inner, body.checkout-index-index
      .modal-custom .modal-footer .secondary::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-slide .modal-footer .secondary, body.checkout-index-index
      .modal-slide .modal-footer .secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-popup .modal-footer .secondary, body.checkout-index-index
      .modal-popup .modal-footer .secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:visited, body.checkout-index-index
      .modal-custom .modal-footer .secondary, body.checkout-index-index
      .modal-custom .modal-footer .secondary:visited {
        cursor: pointer;
        border-radius: 200px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid #7e57c2;
        color: #7e57c2;
        background-color: #fff; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-slide .modal-footer .secondary *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-popup .modal-footer .secondary *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:visited *, body.checkout-index-index
        .modal-custom .modal-footer .secondary *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:visited * {
          color: #7e57c2;
          fill: #7e57c2; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-slide .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-popup .modal-footer .secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .action-secondary:active:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:hover:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:focus:not([disabled]), body.checkout-index-index
      .modal-custom .modal-footer .secondary:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid #4d2c91;
        color: #fff;
        background-color: #4d2c91; }
        body.checkout-index-index .modal-slide .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index .modal-slide .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-slide .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-popup .modal-footer .secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .action-secondary:active:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:hover:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:focus:not([disabled]) *, body.checkout-index-index
        .modal-custom .modal-footer .secondary:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-slide .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-popup .modal-footer .secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .action-secondary[disabled], body.checkout-index-index
      .modal-custom .modal-footer .secondary[disabled] {
        opacity: 0.65;
        cursor: auto; }
      body.checkout-index-index .modal-slide .modal-footer .action-secondary span, body.checkout-index-index
      .modal-slide .modal-footer .secondary span, body.checkout-index-index
      .modal-popup .modal-footer .action-secondary span, body.checkout-index-index
      .modal-popup .modal-footer .secondary span, body.checkout-index-index
      .modal-custom .modal-footer .action-secondary span, body.checkout-index-index
      .modal-custom .modal-footer .secondary span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal; }
  .modal-slide .modal-footer button:only-child,
  .modal-popup .modal-footer button:only-child,
  .modal-custom .modal-footer button:only-child {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .modal-slide .modal-footer button:only-child::-moz-focus-inner,
    .modal-popup .modal-footer button:only-child::-moz-focus-inner,
    .modal-custom .modal-footer button:only-child::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .modal-slide .modal-footer button:only-child, .modal-slide .modal-footer button:only-child:visited,
    .modal-popup .modal-footer button:only-child,
    .modal-popup .modal-footer button:only-child:visited,
    .modal-custom .modal-footer button:only-child,
    .modal-custom .modal-footer button:only-child:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .modal-slide .modal-footer button:only-child *, .modal-slide .modal-footer button:only-child:visited *,
      .modal-popup .modal-footer button:only-child *,
      .modal-popup .modal-footer button:only-child:visited *,
      .modal-custom .modal-footer button:only-child *,
      .modal-custom .modal-footer button:only-child:visited * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child:hover:not([disabled]), .modal-slide .modal-footer button:only-child:focus:not([disabled]), .modal-slide .modal-footer button:only-child:active:not([disabled]),
    .modal-popup .modal-footer button:only-child:hover:not([disabled]),
    .modal-popup .modal-footer button:only-child:focus:not([disabled]),
    .modal-popup .modal-footer button:only-child:active:not([disabled]),
    .modal-custom .modal-footer button:only-child:hover:not([disabled]),
    .modal-custom .modal-footer button:only-child:focus:not([disabled]),
    .modal-custom .modal-footer button:only-child:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .modal-slide .modal-footer button:only-child:hover:not([disabled]) *, .modal-slide .modal-footer button:only-child:focus:not([disabled]) *, .modal-slide .modal-footer button:only-child:active:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-popup .modal-footer button:only-child:active:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:hover:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:focus:not([disabled]) *,
      .modal-custom .modal-footer button:only-child:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .modal-slide .modal-footer button:only-child[disabled],
    .modal-popup .modal-footer button:only-child[disabled],
    .modal-custom .modal-footer button:only-child[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .modal-slide .modal-footer button:only-child span,
    .modal-popup .modal-footer button:only-child span,
    .modal-custom .modal-footer button:only-child span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }

.modal-slide .modal-title,
.modal-popup .modal-title,
.modal-custom .modal-title {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding: 2rem;
  border-bottom: 1px solid #dcdcdc;
  margin: 0; }

@media (max-width: 47.99em) {
  .modal-popup.modal-slide .modal-inner-wrap[class] {
    background-color: #fff; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer {
    flex-wrap: wrap; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-primary,
  .modal-slide .modal-footer .primary {
    width: 100%; } }

@media (max-width: 29.99em) {
  .modal-slide .modal-footer .action-secondary,
  .modal-slide .modal-footer .secondary {
    width: 100%;
    margin-bottom: 1.5rem !important; } }

.modal-popup {
  pointer-events: none;
  touch-action: none; }

.page-layout-checkout .modal-popup:not(._inner-scroll) {
  pointer-events: auto; }

@media (min-width: 48em) {
  .page-layout-checkout .modal-slide {
    width: 80%;
    max-width: 65rem;
    left: 50%;
    transform: translateX(-50%); } }

.modals-overlay {
  background-color: rgba(0, 0, 0, 0.7); }

body._has-modal.modal-no-scroll {
  position: fixed;
  width: 100vw;
  height: 100vh;
  overflow: initial; }

/* stylelint-enable */

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Using psuedo elements to maintain an elements aspect ratio, even as it scales
 * It's using only for IE11 and Edge (version which doesn't support native CSS grid) browsers
 * For browsers which support native CSS grid, we are using mixins contain `reset` in mixin name
 * to override default mixins (progressive enhancement)
 * https://css-tricks.com/snippets/sass/maintain-aspect-ratio-mixin/
 * @param {number} $width: width of the element;
 * @param {number} $height: height of the element;
 * @param {string} $contentClass: class of the direct child element to be positioned absolutely;
 * @param {boolean} $autoposition: tells if item shall take 100% of parent size or if it can be wider/higher if needed;
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-navigation {
  box-sizing: border-box;
  font-size: 1.2rem; }
  .cs-navigation__list {
    list-style: none;
    padding: 0;
    margin: 0; }
    .cs-navigation__list--main {
      position: relative;
      display: flex;
      flex-wrap: nowrap;
      justify-content: center; }
      .cs-navigation__list--main .cs-navigation__item--main:nth-child(6) a {
        color: #7e57c2; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(6) a::before {
          content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/pdf.svg");
          display: inline-block;
          width: 14px;
          height: 14px;
          margin-right: 4px; }
      .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a {
        color: #7B9643; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a::before {
          content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/pdf-green.svg");
          display: inline-block;
          width: 14px;
          height: 14px;
          margin-right: 4px; }
        .cs-navigation__list--main .cs-navigation__item--main:nth-child(7) a:hover {
          color: #7B9643; }
    .cs-navigation__list--all-categories {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_1 {
      width: 100%;
      -moz-columns: auto 1;
           columns: auto 1;
      -moz-column-gap: 0;
           column-gap: 0;
      flex: 1 0 auto; }
    .cs-navigation__list--level_2 {
      flex-wrap: wrap; }
    .cs-navigation__list--hidden {
      display: none; }
      .cs-navigation__list--hidden + .cs-navigation__extras {
        display: none; }
    .cs-navigation__list .cs-navigation__item--no-children:nth-child(2) {
      padding-top: 1rem; }
    .cs-navigation__list .cs-navigation__item--no-children:last-of-type {
      padding-bottom: 1rem; }
  .cs-navigation__item {
    font-size: 1.2rem;
    margin: 0;
    width: 100%; }
    .cs-navigation__item--active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item.active:not([data-category-identifier='all-categories']) > .cs-navigation__link, .cs-navigation__item:hover:not([data-category-identifier='all-categories']) > .cs-navigation__link {
      color: #7e57c2; }
    .cs-navigation__item--main {
      width: auto;
      font-size: 1.6em; }
      .cs-navigation__item--main:first-of-type > .cs-navigation__link:not(.cs-navigation__link--with-icon) {
        padding-left: 0; }
      .cs-navigation__item--main:last-of-type > .cs-navigation__link {
        padding-right: 0; }
    .cs-navigation__item--all-categories {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--level_1 {
      padding: 1rem;
      page-break-inside: avoid;
      /* Theoretically FF 20+ */
      -moz-column-break-inside: avoid;
           break-inside: avoid-column;
      /* IE 11 */
      display: table; }
    .cs-navigation__item--hidden {
      display: none; }
  .cs-navigation__link {
    display: block;
    text-transform: none;
    padding: 1rem 4rem;
    width: 100%; }
    .cs-navigation__link, .cs-navigation__link:visited {
      color: #455a64; }
    .cs-navigation__link:hover {
      text-decoration: none;
      color: #7e57c2; }
      .cs-navigation__link:hover .cs-navigation__link-icon--svg path {
        fill: #7e57c2; }
    .cs-navigation__link--main {
      font-weight: 700; }
    .cs-navigation__link--all-categories {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 1.6em; }
    .cs-navigation__link--level_1 {
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding-bottom: 0.5rem;
      padding-left: 1rem;
      padding-right: 1rem;
      font-size: 1.4rem; }
    .cs-navigation__link--level_2 {
      text-transform: none;
      font-size: 1.4rem;
      padding-left: 1rem;
      padding-right: 1rem; }
    .cs-navigation__link--with-icon {
      position: relative;
      padding-left: 3rem; }
    .cs-navigation__link-icon-wrapper {
      position: absolute;
      width: 2rem;
      height: 2rem;
      top: 0;
      left: 0;
      margin-top: 0.8em; }
    .cs-navigation__link-icon {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0);
      height: 2rem;
      width: 2rem; }
      .cs-navigation__link--category .cs-navigation__link-icon {
        margin-top: -0.5rem; }
      .cs-navigation__link-icon--svg path {
        fill: #484848; }
    .cs-navigation__link-products-qty:before {
      content: '('; }
    .cs-navigation__link-products-qty:after {
      content: ')'; }
  .cs-navigation .cs-navigation__item--no-children {
    padding: 0; }
  .cs-navigation .cs-navigation__item--no-children > .cs-navigation__link--level_1 {
    text-transform: none;
    font-size: 1.12em;
    font-weight: 400;
    padding: 0.9em 1.5em;
    border: none;
    color: #455a64; }
  .cs-navigation__flyout {
    position: absolute;
    display: none;
    background: #fff;
    left: 0;
    backface-visibility: hidden;
    z-index: 1001;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
    margin-top: -1px; }
    .cs-navigation__flyout--visible {
      display: flex; }
    .cs-navigation__flyout svg {
      pointer-events: none; }
    @supports (-ms-ime-align: auto) {
      .cs-navigation__flyout li {
        list-style: none;
        list-style-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=);
        list-style-type: none; } }
  .cs-navigation__extras {
    margin: 0; }
  .cs-navigation__teaser {
    max-height: 100%;
    padding: 1em 0;
    margin-bottom: 0 !important; }
    .cs-navigation__teaser--hidden {
      display: none; }
  .cs-navigation__products {
    padding: 0.5em 1em;
    min-width: 24rem; }
    .cs-navigation__products-header {
      display: block;
      color: #455a64;
      text-transform: uppercase;
      width: 100%;
      font-weight: 700;
      margin: 0;
      border-bottom: 1px solid #dcdcdc;
      padding: 1.1em 1.05em 1.55em;
      font-size: 0.9em; }
    .cs-navigation__products-list {
      margin: 0;
      padding: 0;
      list-style: none; }
  .cs-navigation__product {
    position: relative; }
    .cs-navigation__product:before {
      display: block;
      content: '';
      width: 100%;
      padding-top: 116.66667%; }
    .cs-navigation__product .cs-product-tile {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
  .cs-navigation__overlay {
    display: none;
    position: absolute;
    z-index: 1000;
    background-color: #000;
    opacity: 0;
    left: 0;
    width: 100%;
    height: 0;
    transform: translate3d(0, 3rem, 0);
    transition: opacity 0.15s linear, transform 0.2s cubic-bezier(0, 0.97, 0.05, 0.99); }
    .cs-navigation__overlay--visible {
      opacity: 0.8;
      transform: translate3d(0, 0, 0); }
  .page-print .cs-navigation {
    display: none; }
  @supports (display: grid) and (grid-auto-flow: row) {
    .cs-navigation__product {
      position: relative; }
      .cs-navigation__product:before {
        content: none; }
      .cs-navigation__product .cs-product-tile {
        position: relative;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto; } }

.cs-container--navigation {
  display: none; }
  @media (min-width: 64em) {
    .cs-container--navigation {
      display: block; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-newsletter {
  margin: 0;
  width: 100%; }
  @media (max-width: 47.99em) {
    .cs-newsletter {
      padding: 0 1.5rem; } }
  .cs-newsletter__form {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    overflow: hidden; }
    @media (min-width: 48em) {
      .cs-newsletter__form {
        max-width: 34rem; } }
    @media (min-width: 64em) {
      .cs-newsletter__form {
        max-width: 100%; } }
  .cs-newsletter__form-wrapper {
    display: flex;
    flex-basis: 100%; }
  .cs-newsletter__field {
    flex-basis: 100%; }
  .cs-newsletter__input {
    margin-top: 0 !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important; }
  .cs-newsletter__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-newsletter__actions {
    display: flex;
    align-items: stretch;
    height: 4rem; }
  .cs-newsletter__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important; }
    .cs-newsletter__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-newsletter__button, .cs-newsletter__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-newsletter__button *, .cs-newsletter__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button:hover:not([disabled]), .cs-newsletter__button:focus:not([disabled]), .cs-newsletter__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-newsletter__button:hover:not([disabled]) *, .cs-newsletter__button:focus:not([disabled]) *, .cs-newsletter__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-newsletter__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-newsletter__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: relative;
    top: 0.1em;
    width: 0.8em;
    height: 0.8em;
    margin-right: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
.cs-offcanvas-navigation {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  overflow-y: scroll;
  background: #fff; }
  .cs-offcanvas-navigation__list {
    z-index: 1;
    width: 100%;
    min-width: 100%;
    list-style: none;
    padding: 0;
    margin: 0;
    background-color: #fff;
    overflow-y: hidden;
    overflow-x: hidden;
    height: 100%;
    -webkit-overflow-scrolling: touch;
    display: none; }
    .cs-offcanvas-navigation__list--level_0:last-child a[data-category-id="293"] {
      color: #7e57c2; }
      .cs-offcanvas-navigation__list--level_0:last-child a[data-category-id="293"]::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/pdf.svg");
        display: inline-block;
        width: 14px;
        height: 14px;
        margin-right: 4px; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--level_1, .cs-offcanvas-navigation__list--current, .cs-offcanvas-navigation__list--active {
      display: block; }
    .cs-offcanvas-navigation__list--level_0, .cs-offcanvas-navigation__list--level_1, .cs-offcanvas-navigation__list--current {
      overflow-y: auto; }
    .cs-offcanvas-navigation__list--current > .cs-offcanvas-navigation__item > .cs-offcanvas-navigation__list {
      display: block; }
    .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list {
      position: absolute;
      left: 105%;
      height: 100%;
      top: 0;
      transition: transform 0.3s;
      top: 14%; }
      .cs-offcanvas-navigation__list .cs-offcanvas-navigation__list--active {
        transform: translateX(-105%);
        transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas-navigation__item {
    width: 100%;
    display: flex;
    overflow: hidden;
    margin: 0; }
    .cs-offcanvas-navigation__item + .cs-offcanvas-navigation__item {
      border-top: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item:last-of-type {
      border-bottom: 1px #dcdcdc solid; }
    .cs-offcanvas-navigation__item--with-icon .cs-offcanvas-navigation__text {
      position: relative;
      padding-left: 2rem; }
  .cs-offcanvas-navigation__link {
    min-width: 100%;
    width: 100%;
    display: flex;
    padding: 2.4rem 2rem;
    font-size: 1.4rem;
    align-items: center;
    text-transform: uppercase;
    font-weight: 700;
    position: relative; }
    .cs-offcanvas-navigation__link, .cs-offcanvas-navigation__link:visited {
      color: #455a64; }
    .cs-offcanvas-navigation__link:hover {
      color: #455a64; }
    .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-out {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--sign-in, .cs-offcanvas-navigation__link--sign-in:visited, .cs-offcanvas-navigation__link--sign-out, .cs-offcanvas-navigation__link--sign-out:visited {
        color: #7e57c2; }
      .cs-offcanvas-navigation__link--sign-in:hover, .cs-offcanvas-navigation__link--sign-out:hover {
        color: #7e57c2; }
        .cs-offcanvas-navigation__link--sign-in:hover .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out:hover .cs-offcanvas-navigation__icon path {
          fill: #7e57c2; }
      .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon {
        width: 2.3rem;
        height: 2.7rem;
        right: 2rem; }
        .cs-offcanvas-navigation__link--sign-in .cs-offcanvas-navigation__icon path, .cs-offcanvas-navigation__link--sign-out .cs-offcanvas-navigation__icon path {
          fill: #7e57c2; }
    .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon, .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
      width: 0.7rem;
      height: 0.1rem; }
    .cs-offcanvas-navigation__link--parent {
      padding-right: 5rem; }
      .cs-offcanvas-navigation__link--parent .cs-offcanvas-navigation__icon {
        right: 2rem; }
    .cs-offcanvas-navigation__link--return {
      padding-left: 5rem; }
      .cs-offcanvas-navigation__link--return .cs-offcanvas-navigation__icon {
        left: 2rem; }
    .cs-offcanvas-navigation__link--next {
      position: relative; }
      .cs-offcanvas-navigation__link--next:before, .cs-offcanvas-navigation__link--next:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #7e57c2;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--next:before {
        transform: rotate(135deg) translate3d(50%, 0, 0);
        right: 2rem; }
      .cs-offcanvas-navigation__link--next:after {
        right: 2rem;
        transform: rotate(-135deg) translate3d(50%, 0, 0); }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:before {
        transform: rotate(225deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--next[aria-expanded="true"]:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 2rem; }
    .cs-offcanvas-navigation__link--prev {
      position: relative; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 0.7rem;
        height: 0.1rem;
        left: auto;
        background-color: #7e57c2;
        backface-visibility: hidden; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before, .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-offcanvas-navigation__link--prev:before {
        transform: rotate(45deg) translate3d(50%, -50%, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:after {
        right: 0;
        transform: rotate(-45deg) translate3d(50%, 50%, 0); }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:before {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: auto; }
      .cs-offcanvas-navigation__link--prev[aria-expanded="true"]:after {
        transform: rotate(-135deg) translate3d(0, 0, 0);
        right: 0; }
      .cs-offcanvas-navigation__link--prev:before, .cs-offcanvas-navigation__link--prev:after {
        left: 2rem; }
  .cs-offcanvas-navigation .active > .cs-offcanvas-navigation__link {
    color: #7e57c2; }
  .cs-offcanvas-navigation__icon {
    position: absolute;
    top: 50%;
    transform: translateY(-50%); }
    .cs-offcanvas-navigation__icon path {
      fill: #7e57c2; }
  .cs-offcanvas-navigation__category-icon-wrapper {
    position: relative;
    width: 2rem;
    margin-right: 1rem; }
  .cs-offcanvas-navigation__category-icon {
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate3d(0, -50%, 0);
    max-height: 2rem; }
  .cs-offcanvas-navigation__search {
    position: relative;
    padding: 2.4rem 2rem;
    border-bottom: 1px #dcdcdc solid; }
    @media (min-width: 48em) {
      .cs-offcanvas-navigation__search {
        display: none; } }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-header-user-nav {
  list-style: none;
  margin: 0;
  padding: 0 1.5rem;
  height: 100%; }
  @media (max-width: 23.115em) {
    .cs-header-user-nav {
      padding: 0 0.7rem; } }
  @media (min-width: 64em) {
    .cs-header-user-nav {
      padding: 0; } }
  .cs-header-user-nav__item {
    margin-bottom: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1 1 25%; }
    @media (min-width: 64em) {
      .cs-header-user-nav__item {
        flex: 0 0 33.33333%; } }
    @media (min-width: 64em) {
      .cs-header-user-nav__item--search {
        display: none; } }
    .cs-header-user-nav__item--account a {
      max-width: 160px; }
      @media (min-width: 48.01em) {
        .cs-header-user-nav__item--account a {
          min-width: 145px; } }
  .cs-header-user-nav .minicart-wrapper > .cs-header-user-nav__link {
    padding: 0.5rem 1rem;
    border: 2px solid #7e57c2;
    border-radius: 200px; }
  .cs-header-user-nav__link {
    display: flex;
    align-items: center;
    justify-content: space-evenly;
    flex-direction: row;
    position: relative;
    width: 100%;
    padding: 0rem; }
    .cs-header-user-nav__link:hover {
      text-decoration: none; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__icon path {
        fill: #7e57c2; }
      .cs-header-user-nav__link:hover .cs-header-user-nav__label {
        color: #4d2c91; }
    .cs-header-user-nav__link--search {
      display: none; }
      @media (min-width: 48em) {
        .cs-header-user-nav__link--search {
          display: flex; } }
      .cs-header-user-nav__link--search:hover {
        cursor: pointer; }
  .cs-header-user-nav__icon-wrapper {
    position: relative;
    margin-left: 10px;
    margin-right: 10px; }
  .cs-header-user-nav__icon {
    width: 2.6rem;
    height: 2.6rem;
    display: block;
    margin: 0 auto; }
    .cs-header-user-nav__icon path {
      fill: #7e57c2; }
  .cs-header-user-nav__label {
    text-transform: unset;
    font-size: 1.6rem;
    font-weight: 700;
    margin-top: 0.3rem;
    color: #455a64;
    text-decoration: none;
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
    @media (min-width: 48em) {
      .cs-header-user-nav__label {
        clip: auto;
        height: auto;
        margin: 0;
        overflow: visible;
        padding: 0;
        position: static;
        width: auto;
        white-space: normal;
        margin-top: 0.3rem; } }
  .cs-header-user-nav__qty-counter {
    display: inline-flex;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 50px;
    padding: 0 0.9rem;
    position: relative;
    justify-content: center;
    align-items: center;
    font-size: 1.4rem;
    line-height: 100%;
    font-weight: 700;
    height: 1.8em;
    opacity: 1;
    transition: opacity 0.3s; }
    .cs-header-user-nav__qty-counter--wishlist {
      background-color: #11a099;
      color: #455a64;
      transition: top 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 0.9s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--minicart {
      background-color: #fcb739;
      color: #fff; }
    .cs-header-user-nav__qty-counter--compare {
      background-color: #11a099;
      color: #455a64; }
    .cs-header-user-nav__qty-counter--have-items {
      opacity: 1; }
    .cs-header-user-nav__qty-counter--empty::before {
      content: '0';
      width: 0; }
    .cs-header-user-nav__qty-counter--wishlist-cloned {
      position: fixed;
      z-index: 1200;
      right: auto;
      opacity: 1;
      transition: top 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93), left 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93); }
    .cs-header-user-nav__qty-counter--wishlist-animating {
      animation: move-qty-badge 1.2s cubic-bezier(0.42, 0.31, 0.34, 0.93);
      top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 1.3rem; } }
      @media (min-width: 64em) {
        .cs-header-user-nav__qty-counter--wishlist-animating {
          top: 3.5rem; } }

@keyframes move-qty-badge {
  0% {
    opacity: 1; }
  15% {
    transform: scale(1); }
  85% {
    opacity: 1;
    transform: scale(1.5); }
  95% {
    opacity: 1; }
  100% {
    opacity: 0;
    transform: scale(1); } }
  .cs-header-user-nav__qty-counter-span {
    min-width: 1ch; }
  .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text {
    font-size: 1.4rem;
    font-weight: 700;
    min-width: 40px;
    display: inline-block; }
    .cs-header-user-nav .minicart-amount-wrapper > .minicart-amount-text .minicart-amount-text--empty::before {
      content: '0,00 zł'; }

.cs-offcanvas-toggle {
  position: relative;
  display: flex;
  border: 0;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  align-self: stretch;
  height: 100%;
  width: 100%;
  width: 5.5rem; }
  @media (min-width: 48em) {
    .cs-offcanvas-toggle {
      width: auto; } }
  .cs-offcanvas-toggle, .cs-offcanvas-toggle:active, .cs-offcanvas-toggle:focus, .cs-offcanvas-toggle:hover {
    border: 0;
    background: transparent;
    box-shadow: none;
    border-radius: 0; }
  .cs-offcanvas-toggle:after {
    content: '';
    position: absolute;
    height: 2px;
    width: 100%;
    transform: scale(0);
    background: #7e57c2;
    transition: transform 0.3s;
    bottom: 0;
    left: 0;
    transform-origin: left; }
  .cs-offcanvas-toggle--active, .cs-offcanvas-toggle--active:active, .cs-offcanvas-toggle--active:focus, .cs-offcanvas-toggle--active:hover {
    background: #7e57c2; }
  .cs-offcanvas-toggle--active:after {
    transform: scale(1); }
  .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
    transform: rotate(-45deg); }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      background: #fff; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon:after {
      transform: rotate(90deg); }
  .cs-offcanvas-toggle__icon {
    padding: 0;
    margin: 0;
    position: relative;
    display: none; }
    .cs-offcanvas-toggle__icon, .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      width: 1.8rem;
      height: 0.2rem;
      background: #7e57c2;
      transition: background-color 0.3s, transform 0.3s; }
    .cs-offcanvas-toggle__icon:before, .cs-offcanvas-toggle__icon:after {
      content: '';
      display: block;
      position: absolute; }
    .cs-offcanvas-toggle__icon:before {
      transform: translateY(-250%);
      transform: translate3d(0, -250%, 0); }
    .cs-offcanvas-toggle__icon:after {
      transform: translateY(250%);
      transform: translate3d(0, 250%, 0); }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__icon {
        display: block; } }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__icon {
      display: block; }
  .cs-offcanvas-toggle__text {
    position: absolute;
    bottom: 0.5rem;
    left: 0;
    width: 100%;
    text-align: center;
    font-size: 0.8rem;
    color: #455a64;
    text-transform: uppercase;
    transition: color 0.3s; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__text {
      color: #fff; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__text {
        bottom: 2rem; } }
  .cs-offcanvas-toggle__menu-search-icon {
    fill: #7e57c2;
    width: 2.6rem;
    height: 2.6rem; }
    @media (min-width: 48em) {
      .cs-offcanvas-toggle__menu-search-icon {
        display: none; } }
    .cs-offcanvas-toggle__menu-search-icon:hover {
      fill: #7e57c2; }
    .cs-offcanvas-toggle--active .cs-offcanvas-toggle__menu-search-icon {
      display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-offcanvas {
  position: relative;
  z-index: 300; }
  .cs-offcanvas__drawer, .cs-offcanvas__overlay {
    position: fixed;
    left: 0;
    top: 0;
    bottom: 0;
    top: 5rem; }
    @media (min-width: 48em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        top: 8.3rem;
        bottom: 0; } }
    @media (min-width: 64em) {
      .cs-offcanvas__drawer, .cs-offcanvas__overlay {
        display: none; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__drawer, .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      display: block;
      top: 0; }
  .cs-offcanvas__overlay {
    width: 100%;
    height: calc(100% - 5rem);
    background-color: transparent;
    transition: background-color 0.3s, transform 1ms 0.3s;
    transform: scale(0);
    cursor: pointer; }
    @media (min-width: 48em) {
      .cs-offcanvas__overlay {
        height: 100%; } }
    .cs-offcanvas--mini-cart .cs-offcanvas__overlay {
      height: 100%; }
  .cs-offcanvas .overlay--visible {
    transform: scale(1);
    background: rgba(0, 0, 0, 0.7);
    transition: background-color 0.3s; }
  .cs-offcanvas__drawer {
    position: fixed;
    background: #fff;
    transition: transform 0.3s;
    width: 90%;
    max-width: 40rem; }
    .cs-offcanvas--side_left .cs-offcanvas__drawer {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
    .cs-offcanvas--side_right .cs-offcanvas__drawer {
      left: auto;
      right: 0;
      transform: translate3d(105%, 0, 0); }
    .cs-offcanvas__drawer--navigation {
      left: 0;
      right: auto;
      transform: translate3d(-105%, 0, 0); }
  .cs-offcanvas .drawer--visible {
    transform: translate3d(0, 0, 0) !important; }
  .cs-offcanvas__spinner {
    position: absolute;
    width: 6rem;
    height: 6rem;
    left: 50%;
    top: 20%;
    margin-left: -3rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-page-bottom {
  padding: 1.5rem 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-page-bottom {
      flex-wrap: wrap;
      justify-content: flex-start; } }
  @media (min-width: 64em) {
    .cs-page-bottom {
      flex-wrap: nowrap;
      justify-content: space-between; } }
  .page-print .cs-page-bottom {
    display: none; }
  .cs-page-bottom__image {
    height: 3rem;
    width: auto; }
    .cs-page-bottom__image--circle {
      width: 4.7rem;
      height: 4.7rem;
      min-width: 4.7rem;
      min-height: 4.7rem;
      margin-right: 1rem; }
  .cs-page-bottom__text {
    font-size: 1.2rem;
    color: #696969;
    margin-bottom: 0;
    margin-right: 0.6rem; }
    .cs-page-bottom__text--small {
      font-size: 1rem; }
  .cs-page-bottom__group {
    display: flex;
    align-items: center;
    flex-grow: 1;
    flex-shrink: 1;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-page-bottom__group {
        width: 100%;
        padding: 1rem 0; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group {
        width: auto;
        padding: 0; } }
    .cs-page-bottom__group--info {
      display: none;
      flex-direction: row-reverse; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--info {
          display: flex;
          flex-basis: 40%;
          justify-content: flex-end;
          padding-right: 1.5rem; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 20rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--info {
          flex-basis: 17%;
          padding-right: 0; }
          .cs-page-bottom__group--info .cs-page-bottom__text {
            max-width: 100%; } }
    .cs-page-bottom__group--shipping {
      display: none; }
      @media (min-width: 48em) {
        .cs-page-bottom__group--shipping {
          display: flex;
          flex-basis: 55%;
          padding-left: 1.5rem; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--shipping {
          flex-basis: 33%;
          padding-left: 4rem; } }
    .cs-page-bottom__group--payment {
      flex-basis: 50%; }
      @media (max-width: 47.99em) {
        .cs-page-bottom__group--payment .cs-page-bottom__text {
          display: none; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-page-bottom__group--payment {
    flex-basis: 100%; } }
      @media (min-width: 64em) {
        .cs-page-bottom__group--payment {
          padding-left: 4rem; } }
    @media (min-width: 64em) {
      .cs-page-bottom__group--shipping, .cs-page-bottom__group--payment {
        position: relative; }
        .cs-page-bottom__group--shipping:before, .cs-page-bottom__group--payment:before {
          margin: 0 1rem;
          content: '';
          position: absolute;
          left: 1rem;
          top: 50%;
          width: 0.2rem;
          height: 2rem;
          background: #dcdcdc;
          transform: translateY(-50%); } }
  .cs-page-bottom__logo {
    display: flex;
    flex-shrink: 1;
    height: 2rem; }
    @media (max-width: 63.99em) {
      .cs-page-bottom__logo {
        width: auto; } }
    .cs-page-bottom__logo--hermes {
      width: 12.2rem; }
    .cs-page-bottom__logo--dhl {
      height: auto;
      max-height: 2rem;
      min-width: 8.6rem;
      padding-left: 10px; }
    .cs-page-bottom__logo--paypal {
      width: 6.2rem; }
    .cs-page-bottom__logo--visa {
      height: auto;
      max-height: 2rem;
      min-width: 5.5rem; }
    .cs-page-bottom__logo--mastercard {
      width: 3.3rem; }
    .cs-page-bottom__logo--klarna-sofort {
      height: auto;
      max-height: 2.5rem;
      min-height: 2.5rem; }
    .cs-page-bottom__logo--klarna {
      width: 7rem; }
    .cs-page-bottom__logo--gls {
      width: 5rem; }
    .cs-page-bottom__logo--giropay {
      width: 4.8rem; }
    .cs-page-bottom__logo--ec {
      width: 1.8rem; }
    .cs-page-bottom__logo--paydirekt {
      width: 6rem; }
    .cs-page-bottom__logo--lastschrift {
      width: 6.15rem; }
    .cs-page-bottom__logo--vorkasse {
      width: 8.3rem; }
    .cs-page-bottom__logo--rechnung {
      width: 6.15rem; }
    .cs-page-bottom__logo:not(:last-child) {
      margin-right: 0.5rem; }

.cs-container--page-bottom {
  max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.page-title {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem;
  padding-bottom: 1rem;
  text-transform: none;
  font-weight: 600; }
  .page-title__headline {
    margin: 0;
    padding: 0;
    font-size: inherit;
    font-weight: inherit;
    font-family: inherit;
    display: inline; }
  .page-title__span {
    color: #696969;
    font-weight: 300;
    padding: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.price-box {
  display: inline-block; }
  .price-box .price {
    font-weight: 700;
    white-space: nowrap; }
    .price-box .price-label {
      display: none; }
  .price-box .old-price .price {
    font-size: 0.65rem;
    text-decoration: line-through; }
  .price-box .old-price.no-display {
    display: none; }
  .price-box .special-price .price {
    padding-left: 0.4em; }
  .price-box .price {
    color: #7e57c2;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0; }
    .price-box .price-label {
      color: #324dcf;
      display: none;
      font-size: 1.1rem;
      font-weight: 700;
      text-transform: uppercase;
      margin: 0 0.3rem 0.3rem 0; }
      .price-box .price-label:after {
        content: ':'; }
      body
p
.price-box .price-label {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
  .price-box .normal-price .price-label {
    display: inline; }
  .price-box .price-wrapper {
    display: flex; }
  .price-box .price-from,
  .price-box .price-to {
    display: inline-block;
    margin: 0;
    padding: 0; }
    .price-box .price-from > .price-container,
    .price-box .price-to > .price-container {
      font-size: 1.1rem; }
    .price-box .price-from .price-label,
    .price-box .price-to .price-label {
      display: inline-block;
      padding: 0; }
  .price-box .old-price .price {
    text-decoration: line-through;
    color: #a8b1b7;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price .price {
    padding-left: 0;
    color: #e41f12;
    font-size: 1.5rem;
    font-weight: 700; }
  .price-box .special-price.active .price {
    color: #e41f12; }
  .price-box .price-from {
    margin-right: 1rem; }
  .cs-price--pdp_dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
    display: none; }
  .price-box .price-container.price-final_price:not(:only-child) .price {
    color: #e41f12; }

.cs-bundle-box__add .price-as-configured {
  margin: 1rem 0 0; }

.minimal-price-link {
  margin-top: 0 !important;
  margin-right: 1.5rem;
  position: relative; }
  .minimal-price-link:after {
    color: #324dcf;
    display: block;
    content: '-';
    right: -1rem;
    top: 0;
    position: absolute; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Because price-box is used in multiple components like tile, buybox etc,
 * we need to move variables to separate file to have possibility to include them
 * in each component without generate price-box component styles multiple times
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * String to number converter
 * https://www.sassmeister.com/gist/9fa19d254864f33d4a80
 * @author Hugo Giraudel
 * @param {String | Number} $value - Value to be parsed
 * @return {Number}
 */
/***
 * Remove browser's margins, paddings and list style rules
 */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-product-tile {
  width: 100%;
  height: 100%;
  position: relative;
  border-radius: 7px;
  background-color: #fff;
  border: 1px solid transparent;
  transition: border-color 0.3s;
  aspect-ratio: 300/400; }
  @media (min-width: 48em) {
    .cs-product-tile {
      aspect-ratio: 300/350; } }
  @media (hover: hover) and (pointer: fine) {
    .cs-product-tile:hover {
      border: 1px solid #4d2c91; } }
  .cs-product-tile--clickable:hover {
    cursor: pointer; }
  .cs-product-tile--hidden .cs-product-tile__main {
    visibility: hidden !important; }
  .cs-product-tile__container {
    height: 100%;
    width: 100%;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-around;
    position: relative;
    padding: 1.5rem; }
  .cs-product-tile__link {
    display: block;
    height: 100%; }
  .cs-product-tile__thumbnail {
    padding: 0;
    min-height: 0; }
  .cs-product-tile__thumbnail-link {
    display: block;
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 100%; }
    .cs-product-tile__thumbnail-link:hover, .cs-product-tile__thumbnail-link:visited {
      color: inherit;
      text-decoration: inherit; }
  .cs-product-tile__figure {
    margin: 0;
    padding: 0;
    height: 100%;
    width: 100%;
    text-align: center; }
  .cs-product-tile__image {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto; }
  .cs-product-tile__img {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%; }
    .cs-product-tile__img[src*='placeholder'] {
      min-width: 70%;
      margin-top: 2rem; }
  .cs-product-tile__content {
    width: 100%;
    background-color: rgba(255, 255, 255, 0.8); }
  .cs-product-tile__main {
    height: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 4rem;
    grid-template-areas: 'badges addto' 'swatches swatches' 'brand brand' 'name name' 'description description' 'price price' 'review  addtocart' 'stock addtocart' 'wishlist-icons wishlist-icons'; }
  .cs-product-tile__swatches {
    grid-area: swatches;
    display: flex;
    margin: 2rem 0 1rem;
    min-height: 2.6rem; }
    .cs-product-tile__swatches,
    .cs-product-tile__swatches .swatch-attribute-options {
      justify-content: center; }
  .cs-product-tile__brand {
    grid-area: brand;
    height: 2rem;
    margin-top: 1.5rem;
    text-align: left; }
    .cs-product-tile__brand--empty {
      height: 0; }
  .cs-product-tile__brand-text {
    font-size: 1.2rem;
    color: #888; }
  .cs-product-tile__name {
    grid-area: name;
    line-height: 2rem;
    font-weight: 400;
    font-size: 1.8rem;
    overflow: hidden;
    width: 100%;
    height: 4.2rem;
    margin: 0 0 0.5rem;
    text-align: left; }
  .cs-product-tile__name-link {
    color: #455a64;
    /* disabled because autoprefixer can't build this */
    /* stylelint-disable value-no-vendor-prefix */
    /* stylelint-disable property-no-vendor-prefix */
    /* autoprefixer: ignore next */
    display: -webkit-box;
    /* autoprefixer: ignore next */
    -webkit-box-orient: vertical;
    /* autoprefixer: ignore next */
    -webkit-line-clamp: 2;
    /* autoprefixer: ignore next */
    line-clamp: 2;
    max-width: 100%;
    /* stylelint-enable value-no-vendor-prefix */
    /* stylelint-enable property-no-vendor-prefix */ }
    .cs-product-tile__name-link:visited {
      color: #455a64; }
    .cs-product-tile__name-link:hover {
      color: #455a64;
      text-decoration: none; }
  .cs-product-tile__price {
    grid-area: price;
    line-height: 1.2; }
    .cs-product-tile__price .price-box {
      display: flex;
      margin: 0;
      align-items: center;
      justify-content: flex-start; }
      .cs-product-tile__price .price-box .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #455a64; }
      .cs-product-tile__price .price-box .old-price .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #a8b1b7;
        text-decoration: line-through; }
      .cs-product-tile__price .price-box .special-price .price {
        font-size: 1.8rem;
        font-weight: 700;
        color: #e41f12; }
      .cs-product-tile__price .price-box .minimal-price {
        margin: 0;
        display: flex; }
      .cs-product-tile__price .price-box .old-price {
        order: -1; }
      .cs-product-tile__price .price-box .minimal-price {
        align-items: center; }
      .cs-product-tile__price .price-box .old-price .price {
        margin-right: 1rem; }
    .cs-product-tile__price--dailydeal-countdown .price-box:not(.price-final_price_without_daily_deal) {
      display: none; }
    .cs-product-tile__price--dailydeal-countdown .price-box.price-box--visible {
      display: flex; }
  .cs-product-tile__review {
    grid-area: review;
    margin: 1rem 0 0; }
    .cs-product-tile__review:empty {
      margin: 0 !important; }
  .cs-product-tile__stock {
    grid-area: stock;
    display: inline-block;
    white-space: nowrap;
    font-size: 1.3rem;
    margin: 0;
    padding-bottom: 1.1rem;
    text-align: left; }
    .cs-product-tile__stock--in {
      color: #37b841; }
    .cs-product-tile__stock--out {
      color: #e41f12; }
  .cs-product-tile__addtocart {
    grid-area: addtocart;
    margin: 0 0 0; }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button {
      min-height: 4rem; }
      .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::before, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button::after {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__success-label, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__fail-label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__button-icon, .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart .cs-addtocart__configure-icon {
      right: auto;
      left: 50%;
      transform: translate3d(-50%, -50%, 0); }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__loading {
      transform: scale(1) translate3d(-50%, -50%, 0); }
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__button-icon,
    .cs-product-tile:not(.cs-product-tile--list) .cs-product-tile__addtocart.cs-addtocart--loading .cs-addtocart__configure-icon {
      display: none; }
  .cs-product-tile__addtocart-button {
    width: 4rem; }
  .cs-product-tile__addto {
    grid-area: addto;
    width: auto;
    margin: 1rem 0 0;
    position: absolute;
    top: 1.5rem;
    right: 1.5rem; }
    .cs-product-tile__addto .cs-links-block-addto__link {
      font-size: 1.3rem; }
    .cs-dashboard__bottom-wishlist .cs-product-tile__addto,
    .cs-dashboard__wishlist-products-grid .cs-product-tile__addto {
      display: none; }
    .cs-product-tile__addto:empty {
      margin: 0 !important; }
    .cs-product-tile__addto .cs-links-block-addto__link-label {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-product-tile__badges {
    margin: 0;
    padding: 0;
    list-style: none;
    grid-area: badges;
    display: flex;
    flex-wrap: wrap;
    position: absolute;
    z-index: 2;
    top: 2rem;
    left: 2rem;
    flex-direction: column; }
  .cs-product-tile__badge {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    position: relative;
    background-color: #7e57c2;
    color: #fff;
    border: 0;
    border-radius: 7px;
    padding: 0 0.7rem;
    font-size: 1.1rem;
    font-weight: 700;
    min-height: 2em;
    text-transform: uppercase;
    grid-area: badge; }

@media (min-width: 23.125em) and (max-width: 29.99em) {
  .cs-product-tile__badge {
    font-size: 0.9rem; } }
    .cs-product-tile__badge--discount {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--discount .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--discount .cs-product-tile__badge-text + .cs-product-tile__badge--discount .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--new {
      background-color: #11a099;
      color: #fff; }
      .cs-product-tile__badge--new .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--new .cs-product-tile__badge-text + .cs-product-tile__badge--new .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--free-shipping {
      background-color: #37b841;
      color: #fff; }
      .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text + .cs-product-tile__badge--free-shipping .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
    .cs-product-tile__badge--popular {
      background-color: #37b841;
      color: #fff;
      /**
            * Initially hide popular badge on category products list. 
            * The logic for showing the badge is placed in magesuite-product-positive-indicators/view/frontend/web/js/tile-badge-shower.js
            */ }
      .cs-product-tile__badge--popular .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--popular .cs-product-tile__badge-text + .cs-product-tile__badge--popular .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
      .product-items .cs-product-tile__badge--popular:not(.visible) {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ }
    .cs-product-tile__badge--dailydeal {
      background-color: #e41f12;
      color: #fff; }
      .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
        line-height: normal; }
        .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text + .cs-product-tile__badge--dailydeal .cs-product-tile__badge-text {
          margin-left: 0.5rem; }
  .cs-product-tile__badge-item {
    display: flex; }
    .cs-product-tile--grid .cs-product-tile__badge-item {
      margin: 0 0 0.5rem;
      width: 100%; }
    .cs-product-tile__badge-item:empty {
      display: none; }
  .cs-product-tile__badge-text {
    line-height: normal; }
    .cs-product-tile__badge-text + .cs-product-tile__badge-text {
      margin-left: 0.5rem; }
  .cs-product-tile__dailydeal {
    grid-area: dailydeal;
    margin: 0; }
  .cs-product-tile__qty {
    grid-area: qty;
    margin-bottom: 1rem;
    width: 11rem;
    margin-left: auto; }
  .cs-product-tile__description {
    grid-area: description;
    font-size: 1.3rem;
    font-weight: 400;
    line-height: 1.4;
    color: #696969;
    margin: 0 0 1rem; }
  .cs-product-tile__wishlist-remove-icon {
    position: absolute;
    top: 0;
    right: 0;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 1.5rem; }
    @media (pointer: fine) {
      .cs-product-tile__wishlist-remove-icon {
        display: none; } }
  .cs-product-tile__wishlist-remove-icon-image {
    width: 1.2rem;
    height: 1.2rem;
    fill: #888; }
  .cs-product-tile__wishlist-comment {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-product-tile__wishlist-actions {
    grid-area: wishlist-icons;
    margin: 1rem 0 0;
    display: flex;
    justify-content: space-between; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-products-list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-products-list__item {
    margin: 0; }
  .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item {
    border-bottom: 1px solid #f0f0f0;
    padding: 0; }
    .cs-products-list:not(.cs-products-list--carousel) .cs-products-list__item:last-child {
      border-bottom: 0; }
  @media (min-width: 48em) {
    .cs-products-list--carousel .cs-products-list__item {
      border-bottom: 1px solid #f0f0f0;
      padding: 0; }
      .cs-products-list--carousel .cs-products-list__item:last-child {
        border-bottom: 0; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-qty-increment {
  position: relative;
  display: flex;
  flex-wrap: wrap; }
  .cs-qty-increment--wishlist {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__label {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .cs-qty-increment__input {
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    color: #455a64;
    background: #fff;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    transition: border-color 0.5s;
    margin: 0 0 0.2em;
    width: 100%;
    background-clip: padding-box;
    font-family: inherit;
    border-width: 1px;
    font-size: inherit;
    text-align: center;
    margin: 0;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 0;
    width: 0;
    min-width: 2ch;
    flex: 1 1;
    order: 2; }
    .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none; }
    .cs-qty-increment__input::-moz-placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input::placeholder {
      opacity: 1;
      color: #888; }
    .cs-qty-increment__input[disabled] {
      opacity: 0.65; }
    .cs-qty-increment__input, .cs-qty-increment__input:hover:not([disabled]), .cs-qty-increment__input:focus:not([disabled]) {
      border-left-width: 0;
      border-right-width: 0;
      border-color: #dcdcdc; }
    .cs-qty-increment__input.mage-error {
      border-color: #e41f12 !important; }
      .cs-qty-increment__input.mage-error ~ .cs-qty-increment__button {
        border-color: #e41f12 !important; }
    .cs-qty-increment__input + .mage-error {
      order: 3;
      width: 100%; }
  .cs-qty-increment__button {
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s;
    max-width: 3rem;
    background-color: transparent;
    flex: 1 1 2rem;
    position: relative;
    padding-left: 0.5em;
    padding-right: 0.5em;
    border-radius: 200px; }
    .cs-qty-increment__button, .cs-qty-increment__button:visited, .cs-qty-increment__button:focus {
      background-color: transparent;
      border: 1px solid #dcdcdc; }
      .cs-qty-increment__button *, .cs-qty-increment__button:visited *, .cs-qty-increment__button:focus * {
        fill: #7e57c2; }
    .cs-qty-increment__button:hover, .cs-qty-increment__button:active {
      background-color: #7e57c2;
      border: 1px solid #7e57c2;
      cursor: pointer; }
      .cs-qty-increment__button:hover *, .cs-qty-increment__button:active * {
        fill: #fff; }
    .cs-qty-increment__button--decrement {
      order: 1;
      border-top-right-radius: 0;
      border-bottom-right-radius: 0;
      border-right: 0; }
    .cs-qty-increment__button--increment {
      order: 2;
      border-top-left-radius: 0;
      border-bottom-left-radius: 0;
      border-left: 0; }
    .cs-qty-increment__button--disabled {
      opacity: 1; }
      .cs-qty-increment__button--disabled, .cs-qty-increment__button--disabled:hover, .cs-qty-increment__button--disabled:visited, .cs-qty-increment__button--disabled:focus {
        background-color: transparent;
        border: 1px solid #dcdcdc;
        cursor: not-allowed; }
        .cs-qty-increment__button--disabled *, .cs-qty-increment__button--disabled:hover *, .cs-qty-increment__button--disabled:visited *, .cs-qty-increment__button--disabled:focus * {
          fill: #dcdcdc; }
  .cs-qty-increment__icon {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); }
    .cs-qty-increment__icon--decrement {
      width: 1.2rem;
      height: 0.3rem; }
    .cs-qty-increment__icon--increment {
      width: 1.2rem;
      height: 1.2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
.cs-select {
  display: block;
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  padding-right: 2.3em;
  color: #455a64;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  width: 100%;
  max-width: 100%;
  margin: 0 0 0.2em;
  outline: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
  background-repeat: no-repeat, repeat;
  background-position: right 0.8em top 52%, 0 0;
  background-size: 0.7em auto, 100%;
  transition: border-color 0.5s; }
  .cs-select:-moz-focusring, .cs-select::-moz-focus-inner {
    color: transparent !important;
    text-shadow: 0 0 0 #000 !important; }
  .cs-select:hover:not([disabled]), .cs-select:focus:not([disabled]) {
    border: 2px solid #7e57c2;
    box-shadow: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
  .cs-select[disabled] {
    opacity: 0.65; }
  .cs-select option {
    font-weight: 500;
    padding: 0;
    color: initial; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.ui-slider-horizontal {
  background: #dcdcdc;
  height: 1rem;
  margin-left: 0.5rem;
  margin-right: 0.5rem;
  position: relative;
  border-radius: 1rem; }
  .ui-slider-horizontal .ui-slider-handle {
    width: 1rem;
    height: 1rem;
    background: #7e57c2;
    transition: transform 0.3s, background 0.3s;
    cursor: pointer;
    position: absolute;
    border-radius: 50%;
    margin-left: -0.5rem; }
    .ui-slider-horizontal .ui-slider-handle.ui-state-hover, .ui-slider-horizontal .ui-slider-handle.ui-state-active, .ui-slider-horizontal .ui-slider-handle.ui-state-focus {
      transform: scale(1.5);
      background: #4d2c91; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-social-media-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  padding: 1.5rem 0 1.5rem;
  justify-content: center;
  align-items: center; }
  @media (min-width: 48em) {
    .cs-social-media-list {
      justify-content: flex-start; } }
  @media (min-width: 48em) {
    .cs-social-media-list {
      padding-bottom: 0;
      padding-top: 0; } }
  .cs-social-media-list__item {
    margin: 0 0.4em;
    padding: 0; }
  .cs-social-media-list__link {
    display: flex;
    position: relative;
    height: 3.5em;
    min-width: 4em;
    background: #212121;
    color: inherit;
    border-radius: 7px;
    transition: background-color 0.15s linear; }
    .cs-social-media-list__link:hover {
      background: #4d2c91; }
  .cs-social-media-list__icon {
    position: absolute;
    transform: translate3d(-55%, -55%, 0);
    top: 50%;
    left: 55%; }
    .cs-social-media-list__item--fb .cs-social-media-list__icon {
      width: 0.9em;
      height: 1.8em; }
    .cs-social-media-list__item--tw .cs-social-media-list__icon {
      width: 2.5em;
      height: 2em; }
    .cs-social-media-list__item--yt .cs-social-media-list__icon {
      width: 1.8em;
      height: 2.1em; }
    .cs-social-media-list__item--gp .cs-social-media-list__icon {
      width: 2em;
      height: 2em;
      margin-top: 0.1em; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
.cs-star-rating {
  display: flex;
  align-items: center; }
  .cs-star-rating__stars {
    display: inline-flex;
    padding: 0;
    width: 7.2rem;
    justify-content: space-between; }
    .cs-star-rating--summary .cs-star-rating__stars {
      width: 10rem;
      padding: 0; }
    .cs-star-rating--review .cs-star-rating__stars {
      width: 7.2rem;
      padding: 0; }
  .cs-star-rating__star {
    display: flex;
    width: 1.5rem;
    height: 100%;
    fill: #888; }
    .cs-star-rating__star--active {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-left {
      fill: #fcb739; }
    .cs-star-rating__star--half-active .star-rigth {
      fill: #888; }
    .cs-star-rating--summary .cs-star-rating__star {
      width: 2rem; }
    .cs-star-rating--review .cs-star-rating__star {
      width: 1.5rem; }
    .cs-star-rating__star path {
      fill-opacity: 1;
      fill: inherit; }
  .cs-star-rating img {
    width: 1.5rem;
    height: 100%; }
  .cs-star-rating__form-stars {
    display: inline-flex;
    padding: 0; }
  .cs-star-rating__form-star {
    opacity: 1;
    fill: #888;
    width: 100%; }
    .cs-star-rating__form-star--active {
      fill: #fcb739; }
    .cs-star-rating__form-star path {
      fill-opacity: 1;
      fill: inherit; }
    .cs-star-rating__form-star:nth-last-of-type() {
      padding-right: 0; }
    .cs-star-rating__form-stars:hover .cs-star-rating__form-star {
      fill: #fcb739; }
    .cs-star-rating__form-stars label:hover ~ label .cs-star-rating__form-star {
      fill: #888; }
  .cs-star-rating__text {
    display: inline-block;
    color: #696969;
    padding-left: 0.5em;
    line-height: 1;
    padding-top: calc(1.5rem * 0.1); }
    .cs-star-rating__text--count:before {
      content: '('; }
    .cs-star-rating__text--count:after {
      content: ')'; }
    .cs-star-rating__text--empty {
      padding-left: 0; }
  .cs-star-rating__text-annotation {
    display: inline;
    line-height: 1; }
    .cs-product-tile .cs-star-rating__text-annotation {
      display: none; }
  .cs-star-rating__label {
    color: #455a64;
    font-size: 0.75em;
    font-weight: 700;
    text-transform: uppercase;
    padding-top: calc(1.5rem * 0.2); }

.review-control-vote {
  overflow: hidden; }
  .review-control-vote .rating-1 {
    z-index: 1; }
    .review-control-vote .rating-1:before {
      content: none; }
  .review-control-vote .rating-2 {
    z-index: 2; }
    .review-control-vote .rating-2:before {
      content: none; }
  .review-control-vote .rating-3 {
    z-index: 3; }
    .review-control-vote .rating-3:before {
      content: none; }
  .review-control-vote .rating-4 {
    z-index: 4; }
    .review-control-vote .rating-4:before {
      content: none; }
  .review-control-vote .rating-5 {
    z-index: 5; }
    .review-control-vote .rating-5:before {
      content: none; }
  .review-control-vote:before {
    content: none; }
  .review-control-vote label {
    position: static;
    cursor: pointer;
    display: block;
    width: 3rem;
    padding-right: 1rem;
    line-height: 0; }
    @media (min-width: 48em) {
      .review-control-vote label {
        width: 2.6rem;
        padding-right: 0.6rem; } }
    .review-control-vote label:last-child {
      width: 2rem;
      padding-right: 0; }
    .review-control-vote label span {
      clip: auto;
      height: auto;
      margin: 0;
      overflow: visible;
      padding: 0;
      position: static;
      width: auto;
      white-space: normal; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
.swatch-attribute {
  display: flex;
  width: 100%;
  overflow: hidden;
  align-items: center !important;
  flex-wrap: wrap; }
  .swatch-attribute.swatch-layered {
    font-size: 0.8em; }
  .swatch-attribute + .swatch-attribute {
    margin-top: 0.8em; }
  .swatch-attribute:has(.swatch-option.selected) .mage-error {
    display: none; }

.swatch-attribute-label {
  text-transform: uppercase;
  line-height: calc( 2.8em - 6px + 0.1em);
  font-weight: 700;
  font-size: 1.1em;
  width: 10rem;
  margin-right: 1.5rem; }
  @media (min-width: 64em) {
    .swatch-attribute-label {
      width: 11rem; } }
  .swatch-attribute-label:after {
    content: ': ';
    line-height: calc( 2.8em - 6px + 0.1em); }

.swatch-attribute-selected-option {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */ }

.swatch-attribute-options {
  display: flex;
  flex-wrap: wrap;
  margin-left: -0.2em;
  margin-bottom: -0.4em;
  min-width: 100%;
  justify-content: center; }
  .swatch-attribute-options:focus {
    box-shadow: none; }
  .swatch-opt .swatch-attribute-options {
    min-width: 0;
    justify-content: flex-start;
    max-width: calc( 100% - 1.5rem - 10rem); }
    @media (min-width: 64em) {
      .swatch-opt .swatch-attribute-options {
        max-width: calc( 100% - 1.5rem - 11rem); } }

.swatch-option-link-layered {
  font-size: 1em; }
  .swatch-option-link-layered:hover {
    text-decoration: none; }

.swatch-option {
  font-weight: normal;
  position: relative;
  min-width: 3.2em;
  height: 2.8em;
  padding: 0 0.35em;
  margin: 1px calc( 1px + 0.2em) calc(1px + 0.4em);
  border-radius: 7px;
  background-color: #f0f0f0;
  border: 3px solid #f0f0f0;
  color: #696969;
  cursor: pointer;
  line-height: calc( 2.8em - 6px + 0.1em);
  text-align: center;
  transition: background-color 0.3s, border-color 0.3s, opacity 0.3s, color 0.3s;
  display: block !important; }
  .swatch-option:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border: 1px solid #dcdcdc;
    border-radius: 7px;
    transition: border-color 0.3s; }
  .swatch-option:after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    border-radius: 50%;
    background: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/swatches/disabled.svg) rgba(220, 220, 220, 0.5) center no-repeat;
    transform: translate(-50%, -50%);
    width: calc(2.8em - 1.2em);
    height: calc(2.8em - 1.2em);
    background-size: 0.6em;
    transition: opacity 0.3s;
    opacity: 0; }
  .swatch-option.selected, .swatch-option.bis-selected {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option.selected:before, .swatch-option.bis-selected:before {
      border: 1px solid #4d2c91; }
  .swatch-option.disabled:not(.back-in-stock-alert), .swatch-option[disabled]:not(.back-in-stock-alert) {
    cursor: not-allowed; }
    .swatch-option.disabled:not(.back-in-stock-alert).text, .swatch-option[disabled]:not(.back-in-stock-alert).text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      .swatch-option.disabled:not(.back-in-stock-alert).text:before, .swatch-option[disabled]:not(.back-in-stock-alert).text:before {
        border: 1px solid #dcdcdc; }
    .swatch-option.disabled:not(.back-in-stock-alert).image:after, .swatch-option.disabled:not(.back-in-stock-alert).color:after, .swatch-option[disabled]:not(.back-in-stock-alert).image:after, .swatch-option[disabled]:not(.back-in-stock-alert).color:after {
      opacity: 1; }
  .swatch-option:not(.disabled):not(.selected):not([disabled]):hover, .swatch-option.back-in-stock-alert:hover {
    border: 3px solid #fff;
    background: #fff; }
    .swatch-option:not(.disabled):not(.selected):not([disabled]):hover:before, .swatch-option.back-in-stock-alert:hover:before {
      border: 1px solid #7e57c2; }

.swatch-input {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  white-space: nowrap;
  /* 1 */
  left: -1000px;
  position: absolute;
  visibility: hidden; }

.swatch-more {
  display: none; }

.swatch-option-tooltip,
.swatch-option-tooltip-layered {
  display: none;
  position: absolute;
  margin: 0;
  z-index: 999;
  background: #fff;
  border-radius: 0.5rem;
  color: #888;
  font-size: 1.3rem;
  font-weight: 400;
  padding: 0.5rem;
  text-align: center;
  min-width: 2rem;
  border: 0.1rem solid #dcdcdc; }
  .swatch-option-tooltip .image,
  .swatch-option-tooltip-layered .image {
    display: block;
    margin: 0 auto;
    width: 110px;
    height: 110px; }
  .swatch-option-tooltip .corner:after,
  .swatch-option-tooltip-layered .corner:after {
    content: '';
    position: absolute;
    top: 100%;
    display: block;
    width: 1rem;
    height: 1rem;
    background-color: #fff;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    border-bottom: 0.1rem solid #dcdcdc;
    border-right: 0.1rem solid #dcdcdc;
    margin-top: calc( -0.5rem + 0.1rem); }

.swatch-option-tooltip {
  pointer-events: none; }

.missing-swatches-modal {
  max-width: 40rem;
  margin-left: auto; }
  .missing-swatches-modal .mage-error {
    padding-top: 0.8rem; }
  .missing-swatches-modal .swatch-attribute + .swatch-attribute {
    margin-top: 2rem; }

@media (hover: none) {
  .missing-swatches-modal-visible .swatch-option-tooltip {
    display: none !important; } }

.swatch-opt {
  font-size: 0.9em; }
  .swatch-opt .swatch-option.back-in-stock-alert:after {
    background: rgba(220, 220, 220, 0.55) url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/notification-panel/icon_notification-outline.svg) center/64% no-repeat;
    opacity: 1; }
  .swatch-opt .swatch-option.back-in-stock-alert.text {
    padding-right: 2em; }
    .swatch-opt .swatch-option.back-in-stock-alert.text:after {
      left: auto;
      right: 0.35em;
      background-color: transparent;
      transform: translateY(-50%); }
  .swatch-opt .mage-error {
    font-size: 1em;
    width: 100%;
    margin-left: calc(10rem + 1.5rem); }
    @media (min-width: 64em) {
      .swatch-opt .mage-error {
        margin-left: calc( 11rem + 1.5rem); } }

[class^='swatch-opt-'] {
  font-size: 0.45em;
  min-height: calc( 1 * (2.8em + 8px));
  opacity: 1;
  transition: opacity 0.3s;
  pointer-events: none; }
  @media (min-width: 48.01em) {
    [class^='swatch-opt-'] {
      pointer-events: auto; } }
  [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert {
    cursor: not-allowed; }
    [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.text, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.text {
      opacity: 0.65;
      color: #888;
      background: #fff; }
      [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.text:before, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.text:before {
        border: 1px solid #dcdcdc; }
    [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.image:after, [class^='swatch-opt-'] .swatch-option.disabled.back-in-stock-alert.color:after, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.image:after, [class^='swatch-opt-'] .swatch-option[disabled].back-in-stock-alert.color:after {
      opacity: 1; }
  [class^='swatch-opt-']:empty {
    opacity: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-topbar {
  background: transparent;
  display: none;
  width: 100%;
  font-size: 1.6rem;
  padding-top: 0.5rem; }
  @media (min-width: 64em) {
    .cs-topbar {
      display: flex;
      z-index: 302; } }
  .cs-topbar__wrapper {
    display: flex;
    flex-wrap: wrap;
    flex-grow: 1;
    align-items: center;
    justify-content: space-between;
    height: 2.7rem; }
    @media (min-width: 64em) {
      .cs-topbar__wrapper {
        flex-wrap: nowrap; } }
  .cs-topbar__item {
    color: #212121;
    display: flex;
    flex: 0 0 auto;
    white-space: nowrap;
    height: 100%; }
    .cs-topbar__item--usps {
      margin-right: auto;
      display: none; }
      @media (min-width: 80em) {
        .cs-topbar__item--usps {
          display: flex; } }
    .cs-topbar__item--hotline {
      align-items: center;
      flex: 1 1;
      justify-content: flex-start; }
    .cs-topbar__item--language {
      height: 100%; }
    .cs-topbar__item--links .cs-topbar__links {
      display: flex;
      align-items: center; }
      .cs-topbar__item--links .cs-topbar__links a {
        font-size: 1.6rem;
        font-weight: 700;
        color: #455a64;
        margin: 0.5rem 2rem; }
      .cs-topbar__item--links .cs-topbar__links a:first-child {
        margin: 0.5rem 2rem 0.5rem 0rem; }
      .cs-topbar__item--links .cs-topbar__links a:last-child {
        margin: 0.5rem 0rem 0.5rem 2rem; }
  .cs-topbar__list,
  .cs-topbar__item > ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center; }
  .cs-topbar__list-item {
    margin-bottom: 0;
    height: 2.7rem;
    display: flex;
    align-items: center;
    position: relative; }
    .cs-topbar__list-item:not(:last-child) {
      padding-right: 1.3rem; }
    .cs-topbar__list-item:not(:last-child) {
      margin-right: 1.3rem; }
      .cs-topbar__list-item:not(:last-child):before {
        position: absolute;
        top: 0;
        bottom: 0;
        right: 0;
        content: '';
        border-right: 0.2rem solid #fff; }
  .cs-topbar__text {
    color: #212121; }
  .cs-topbar__link {
    margin-right: 0.9rem; }
    .cs-topbar__link, .cs-topbar__link:visited {
      color: #7e57c2;
      text-decoration: none; }
    .cs-topbar__link:hover, .cs-topbar__link:focus, .cs-topbar__link:active, .cs-topbar__link:visited:hover, .cs-topbar__link:visited:focus {
      color: #4d2c91;
      text-decoration: none; }
  .cs-topbar__hotline {
    display: flex;
    align-items: center; }
  .cs-topbar__phone-number {
    font-weight: 700;
    margin-right: 0.9rem; }
    .cs-topbar__phone-number, .cs-topbar__phone-number:visited {
      color: #000;
      text-decoration: none; }
    .cs-topbar__phone-number:hover, .cs-topbar__phone-number:focus, .cs-topbar__phone-number:active, .cs-topbar__phone-number:visited:hover, .cs-topbar__phone-number:visited:focus {
      color: #000;
      text-decoration: none; }
  .cs-topbar .cs-toolbar__item--limiter > .limiter.cs-limiter .control.cs-limiter__control {
    margin-right: 1rem; }

.cs-container--top-bar {
  background-color: #fff;
  max-width: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
h1 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h2 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 2.6rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h3 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.8rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h4 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.5rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h5 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1.1rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

h6 {
  font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  font-size: 1rem;
  line-height: 1.1;
  color: #455a64;
  font-weight: 700;
  text-transform: none;
  margin: 1rem 0 2rem; }

a, a:visited {
  color: #7e57c2;
  text-decoration: none; }

a:hover, a:focus, a:active, a:visited:hover, a:visited:focus {
  color: #4d2c91;
  text-decoration: none; }

ul,
ol {
  margin: 0 0 2.5rem;
  padding: 0 0 0 4rem; }
  ul > li,
  ol > li {
    margin: 0 0 1rem; }

body {
  color: #455a64; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__picture {
  position: relative; }

.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__content,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__overlay,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__gradient,
.cs-image-teaser__slide--has-video-teaser .cs-image-teaser__optimizer-container {
  z-index: 1; }

.cs-image-teaser [data-video-teaser] {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 1; }
  .cs-image-teaser [data-video-teaser]:empty {
    display: none; }

.cs-image-teaser [id^='video-teaser'] {
  width: 100%;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none; }

@charset "UTF-8";
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.body {
  align-items: center;
  background: #E3E3E3;
  display: flex;
  justify-content: center; }

@keyframes scroll {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(calc(-250px * 7)); } }

.slider {
  background: #eceff1;
  box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.125);
  height: 140px;
  margin: auto;
  overflow: hidden;
  position: relative;
  width: 174rem; }
  .slider::before, .slider::after {
    background: linear-gradient(to right, white 0%, rgba(255, 255, 255, 0) 100%);
    content: "";
    height: 140px;
    position: absolute;
    width: 200px;
    z-index: 2; }
  .slider::after {
    right: 0;
    top: 0;
    transform: rotateZ(180deg); }
  .slider::before {
    left: 0;
    top: 0; }
  .slider .slide-track {
    animation: scroll 40s linear infinite;
    display: flex;
    width: calc(256px * 14); }
  .slider .slide {
    height: 100px;
    width: 250px;
    padding: 10px; }

.cs-products-carousel .cs-products-carousel__slides {
  -ms-overflow-style: none;
  /* for Internet Explorer, Edge */
  scrollbar-width: none;
  /* for Firefox */
  overflow-y: scroll; }
  .cs-products-carousel .cs-products-carousel__slides::-webkit-scrollbar {
    display: none; }

.checkout-cart-index button#update-cart-button,
.checkout-cart-index button#empty_cart_button {
  display: none; }

@media (max-width: 47.99em) {
  .page-with-filter .fast-delivery-box {
    display: none; } }

.cs-limiter__control {
  display: none !important; }

li.cs-links-block-addto__item.cs-links-block-addto__item--compare {
  display: none; }

.cs-checkout .table-checkout-shipping-method .col.col-price::before {
  content: "już od "; }

.cs-products-carousel__slides-wrapper > .cs-products-carousel__slides > .cs-products-carousel__slide > .cs-products-carousel__product-tile > .cs-product-tile {
  min-height: 300px; }

.cs-offcanvas-navigation > .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_0 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_1.cs-offcanvas-navigation__list--active {
  top: 100px !important; }

.cs-offcanvas-navigation > .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_0 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_1 .cs-offcanvas-navigation__list.cs-offcanvas-navigation__list--level_2.cs-offcanvas-navigation__list--active {
  top: 0px !important; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.page-product-grouped .cs-buybox__price {
  display: none; }

.page-product-grouped .table-wrapper.grouped,
.catalog-product-view .table-wrapper.grouped {
  background: #edeff1;
  padding: 2rem 1.5rem; }
  .page-product-grouped .table-wrapper.grouped .available-count-notice,
  .catalog-product-view .table-wrapper.grouped .available-count-notice {
    max-width: 128rem;
    margin: 0 auto; }
    .page-product-grouped .table-wrapper.grouped .available-count-notice h3,
    .catalog-product-view .table-wrapper.grouped .available-count-notice h3 {
      font-size: 2.9rem;
      text-transform: none;
      color: #455a64; }
      .page-product-grouped .table-wrapper.grouped .available-count-notice h3 .counter,
      .catalog-product-view .table-wrapper.grouped .available-count-notice h3 .counter {
        color: #7e57c2;
        text-decoration: underline; }

.page-product-grouped table.grouped,
.catalog-product-view table.grouped {
  max-width: 128rem;
  margin: 0 auto;
  width: 100%;
  table-layout: fixed;
  overflow-wrap: break-word; }
  .page-product-grouped table.grouped thead tr .col.item,
  .catalog-product-view table.grouped thead tr .col.item {
    width: 100%; }
  .page-product-grouped table.grouped .associated-product,
  .catalog-product-view table.grouped .associated-product {
    min-height: 75px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    width: 100%;
    margin-bottom: 1rem;
    background: white !important;
    border-radius: 7px; }
    @media (max-width: 48em) {
      .page-product-grouped table.grouped .associated-product,
      .catalog-product-view table.grouped .associated-product {
        flex-direction: column; } }
    .page-product-grouped table.grouped .associated-product > td,
    .catalog-product-view table.grouped .associated-product > td {
      flex-direction: column;
      display: flex;
      justify-content: space-between;
      border-bottom: unset !important; }
      @media (min-width: 64em) {
        .page-product-grouped table.grouped .associated-product > td,
        .catalog-product-view table.grouped .associated-product > td {
          flex-direction: row; } }
    .page-product-grouped table.grouped .associated-product .row-tier-price,
    .catalog-product-view table.grouped .associated-product .row-tier-price {
      display: flex;
      justify-content: flex-end;
      padding-top: 0px; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .box-tier-price,
      .catalog-product-view table.grouped .associated-product .row-tier-price .box-tier-price {
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .prices-tier.items,
      .catalog-product-view table.grouped .associated-product .row-tier-price .prices-tier.items {
        margin: 0px;
        display: flex;
        flex-direction: column;
        align-items: flex-end; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .prices-tier.items > .item,
      .catalog-product-view table.grouped .associated-product .row-tier-price .prices-tier.items > .item {
        margin: 0px; }
      .page-product-grouped table.grouped .associated-product .row-tier-price .btn-link,
      .catalog-product-view table.grouped .associated-product .row-tier-price .btn-link {
        border: 2px solid #7e57c2;
        border-radius: 200px;
        font-weight: bold;
        padding: 0.5rem 2rem;
        display: inline-block;
        margin-top: 1rem; }
    .page-product-grouped table.grouped .associated-product .col,
    .catalog-product-view table.grouped .associated-product .col {
      padding: 0;
      margin: 0; }
    .page-product-grouped table.grouped .associated-product .col.item,
    .catalog-product-view table.grouped .associated-product .col.item {
      width: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      border: unset; }
      @media (min-width: 48.01em) {
        .page-product-grouped table.grouped .associated-product .col.item,
        .catalog-product-view table.grouped .associated-product .col.item {
          flex-direction: row; } }
      .page-product-grouped table.grouped .associated-product .col.item *,
      .catalog-product-view table.grouped .associated-product .col.item * {
        color: #455a64; }
      .page-product-grouped table.grouped .associated-product .col.item .text-content,
      .catalog-product-view table.grouped .associated-product .col.item .text-content {
        display: flex;
        flex-direction: row;
        align-items: center;
        min-width: 380px;
        max-width: 380px; }
        @media (max-width: 48em) {
          .page-product-grouped table.grouped .associated-product .col.item .text-content,
          .catalog-product-view table.grouped .associated-product .col.item .text-content {
            min-width: 100%; } }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .product-item-name,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .product-item-name {
          font-size: 2rem; }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .text-content__name,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .text-content__name {
          display: flex;
          flex-direction: column; }
        .page-product-grouped table.grouped .associated-product .col.item .text-content .text-content__img,
        .catalog-product-view table.grouped .associated-product .col.item .text-content .text-content__img {
          padding-right: 1rem; }
      .page-product-grouped table.grouped .associated-product .col.item .product-attribute,
      .catalog-product-view table.grouped .associated-product .col.item .product-attribute {
        margin: 0 1rem;
        width: 100%; }
        @media (min-width: 48.01em) {
          .page-product-grouped table.grouped .associated-product .col.item .product-attribute,
          .catalog-product-view table.grouped .associated-product .col.item .product-attribute {
            width: auto; } }
        .page-product-grouped table.grouped .associated-product .col.item .product-attribute .value,
        .catalog-product-view table.grouped .associated-product .col.item .product-attribute .value {
          font-weight: 700;
          background: #edeff1;
          padding: 0.5rem;
          text-align: center;
          border-radius: 7px;
          font-size: 1.7rem; }
      .page-product-grouped table.grouped .associated-product .col.item .product-price-block,
      .catalog-product-view table.grouped .associated-product .col.item .product-price-block {
        margin-left: auto;
        display: flex; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner {
          height: 100%;
          display: flex;
          align-items: flex-end;
          padding: 0;
          flex-direction: column; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper {
            margin-top: 6px; }
            .page-product-grouped table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge,
            .catalog-product-view table.grouped .associated-product .col.item .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
              background: #fe1644;
              color: white;
              padding: 0.8rem 0.2rem;
              letter-spacing: 2px;
              border-radius: 4px;
              font-size: 2rem; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .omnibus-wrapper > span,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .omnibus-wrapper > span {
          color: #a8b1b7; }
        .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box,
        .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box {
          order: 9;
          padding: 2rem 0;
          display: flex;
          flex-direction: column-reverse; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .price-container,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .price-container {
            margin: 0 1rem;
            display: block; }
            .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .price-container .price,
            .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .price-container .price {
              font-weight: 700;
              font-size: 2rem; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .special-price .price,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .special-price .price {
            color: #fe1644; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price {
            font-size: 1.5rem;
            color: #a8b1b7;
            font-weight: 400; }
          .page-product-grouped table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price-wrapper,
          .catalog-product-view table.grouped .associated-product .col.item .product-price-block .price-box .old-price .price-wrapper {
            flex-direction: row-reverse; }
    .page-product-grouped table.grouped .associated-product .box-price-qty,
    .catalog-product-view table.grouped .associated-product .box-price-qty {
      padding-top: 1rem; }
      @media (min-width: 48.01em) {
        .page-product-grouped table.grouped .associated-product .box-price-qty,
        .catalog-product-view table.grouped .associated-product .box-price-qty {
          padding-top: 0; } }
      .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block,
      .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block {
        margin-left: auto;
        display: flex;
        align-items: center;
        justify-content: flex-end;
        padding-bottom: 0.5rem; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner {
          height: 100%;
          display: flex;
          align-items: center;
          padding: 0;
          flex-direction: row; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper {
            margin-top: 2px; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
              background: #fe1644;
              color: white;
              padding: 0.6rem 0.2rem;
              letter-spacing: 2px;
              border-radius: 4px;
              font-size: 2rem;
              margin-left: 1rem; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint {
            position: relative;
            display: inline-block;
            margin-left: 0.25rem;
            cursor: pointer; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon {
              vertical-align: middle; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before {
              content: '?';
              width: 15px;
              height: 15px;
              font-size: 10px;
              font-weight: bold;
              color: #455a64;
              line-height: 1;
              display: flex;
              align-items: center;
              justify-content: center;
              border: solid 1px;
              padding: 0;
              border-radius: 50%; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content {
              position: absolute;
              display: none;
              right: -0.25rem;
              top: calc(100% + 10px);
              font-size: 13px;
              line-height: 1.5em;
              z-index: 5;
              min-width: 258px;
              padding: 1rem;
              text-align: left;
              background-color: #fff;
              box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
              border-radius: 3px;
              color: #455a64; }
              .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after,
              .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after {
                content: '';
                display: block;
                position: absolute;
                top: -14px;
                right: 4px;
                border-width: 7px;
                border-style: solid;
                border-color: transparent transparent #fff transparent; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content {
              display: block; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .omnibus-wrapper > span,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .omnibus-wrapper > span {
          color: #a8b1b7; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box,
        .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box {
          order: 9;
          padding: 0;
          display: flex;
          flex-direction: column-reverse; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container {
            margin: 0 1rem;
            margin-right: 0;
            display: block; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container .price,
            .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .price-container .price {
              font-weight: 700;
              font-size: 2rem;
              color: #455a64;
              line-height: 1; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .special-price .price,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .special-price .price {
            color: #fe1644; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price {
            font-size: 1.5rem;
            color: #a8b1b7;
            font-weight: 400; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper,
          .catalog-product-view table.grouped .associated-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper {
            flex-direction: row-reverse; }
      .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block,
      .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block {
        display: flex;
        align-items: center;
        flex-direction: row;
        margin-bottom: 0;
        margin-left: auto; }
        @media (max-width: 63.99em) {
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block {
            flex-direction: column;
            padding: 1.5rem; } }
        .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .label,
        .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .label {
          font-size: 1.7rem;
          font-weight: 400; }
        .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container,
        .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container {
          margin-left: 1rem;
          display: flex;
          align-items: center;
          flex-direction: row;
          justify-content: flex-end;
          border: 1px solid #edeff1;
          border-radius: 200px; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container:hover button,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container:hover button {
            background: #11a099; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .input-text,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .input-text {
            min-width: 150px;
            font-size: 1.4rem;
            border: unset;
            box-shadow: unset; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button {
            border-radius: 200px;
            background: #17c8c0;
            padding: 1rem;
            font-weight: 700; }
            .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button span,
            .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container button span {
              color: white; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container *,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container * {
            border: none; }
          .page-product-grouped table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar,
          .catalog-product-view table.grouped .associated-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar {
            min-width: unset; }
    .page-product-grouped table.grouped .associated-product .col.qty,
    .catalog-product-view table.grouped .associated-product .col.qty {
      display: flex;
      align-items: center;
      justify-content: flex-end;
      border: unset;
      margin-left: 1rem; }
      .page-product-grouped table.grouped .associated-product .col.qty .control.qty,
      .catalog-product-view table.grouped .associated-product .col.qty .control.qty {
        border: 1px solid #edeff1;
        border-radius: 200px;
        display: flex;
        align-items: center;
        justify-content: center; }
      .page-product-grouped table.grouped .associated-product .col.qty .control.qty > form,
      .catalog-product-view table.grouped .associated-product .col.qty .control.qty > form {
        display: flex;
        flex-direction: row;
        align-items: center; }
      .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment,
      .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment {
        flex-wrap: nowrap; }
        .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment .cs-qty-increment__input,
        .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment .cs-qty-increment__input {
          min-width: 25px;
          max-width: 75px;
          width: auto;
          border: none;
          color: #455a64; }
        .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span,
        .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span {
          border: none; }
          .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span:hover,
          .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span:hover {
            background: white; }
            .page-product-grouped table.grouped .associated-product .col.qty .cs-qty-increment span:hover *,
            .catalog-product-view table.grouped .associated-product .col.qty .cs-qty-increment span:hover * {
              fill: #4d2c91; }
      .page-product-grouped table.grouped .associated-product .col.qty .addtocart,
      .catalog-product-view table.grouped .associated-product .col.qty .addtocart {
        white-space: nowrap;
        background-color: #7e57c2;
        border: none;
        border-radius: 100px;
        width: 40px;
        height: 40px;
        padding: 1rem;
        transition: background-color 0.3s ease; }
        .page-product-grouped table.grouped .associated-product .col.qty .addtocart:hover,
        .catalog-product-view table.grouped .associated-product .col.qty .addtocart:hover {
          background-color: #4d2c91;
          cursor: pointer; }
  .page-product-grouped table.grouped .associated-product.out-of-stock .box-price-qty .product-price-block .price-box,
  .catalog-product-view table.grouped .associated-product.out-of-stock .box-price-qty .product-price-block .price-box {
    display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.catalog-product-view .cs-buybox__section.cs-buybox__section--product-form .available-count-notice h3 {
  font-size: 2.9rem;
  text-transform: none;
  color: #455a64; }
  .catalog-product-view .cs-buybox__section.cs-buybox__section--product-form .available-count-notice h3 .counter {
    color: #7e57c2;
    text-decoration: underline; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content {
  display: flex;
  flex-direction: column;
  min-width: 300px; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content .product-item-name {
    font-size: 2rem; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .text-content .product-sku {
    font-size: 1.4rem; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute {
  margin: 0 1rem;
  width: 100%; }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute {
      width: auto; } }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute .label {
    color: #455a64;
    font-size: 1.4rem; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .product-attribute .value {
    font-weight: 700;
    background: #edeff1;
    padding: 0.5rem;
    text-align: center;
    border-radius: 7px;
    font-size: 1.7rem; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .price > .product-item-price > .price-box .price-container {
  margin: 0 1rem;
  display: block; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .price > .product-item-price > .price-box .price-container .price-wrapper > .price {
    font-weight: 700;
    font-size: 2rem;
    color: #455a64;
    padding: 2rem 0; }

.catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty {
  border: 1px solid #edeff1;
  border-radius: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0;
  margin-left: auto; }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty {
      margin-left: 0; } }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-qty-increment * {
    border: none; }
  .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper {
    border-radius: 100px; }
    .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button {
      height: 40px;
      width: 40px;
      border: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button .cs-addtocart__button-icon {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 2rem;
        height: 2rem; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button::before {
        background: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button::after {
        background: unset; }
      .catalog-product-view .product-add-form.simple-product .cs-buybox__addtocart .control.qty .cs-addtocart .cs-addtocart__wrapper .tocart.primary.cs-addtocart__button.cs-buybox__addtocart-button:hover {
        background-color: #4d2c91 !important; }

.catalog-product-view .product-add-form.simple-product .row-tier-price {
  display: flex;
  justify-content: flex-end;
  padding: 1rem 0;
  font-size: 1.4rem; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .box-tier-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .prices-tier.items {
    margin: 0px;
    display: flex;
    flex-direction: column;
    align-items: flex-end; }
  .catalog-product-view .product-add-form.simple-product .row-tier-price .prices-tier.items > .item {
    margin: 1px 0px; }

.catalog-product-view .product-add-form.simple-product .col.item {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  border: unset; }
  @media (min-width: 48.01em) {
    .catalog-product-view .product-add-form.simple-product .col.item {
      flex-direction: row; } }
  .catalog-product-view .product-add-form.simple-product .col.item * {
    color: #455a64; }
  .catalog-product-view .product-add-form.simple-product .col.item .text-content {
    display: flex;
    flex-direction: row;
    align-items: center;
    min-width: 380px;
    max-width: 380px; }
    @media (max-width: 48em) {
      .catalog-product-view .product-add-form.simple-product .col.item .text-content {
        min-width: 100%; } }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .product-item-name {
      font-size: 2rem; }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .text-content__name {
      display: flex;
      flex-direction: column; }
    .catalog-product-view .product-add-form.simple-product .col.item .text-content .text-content__img {
      padding-right: 1rem; }
  .catalog-product-view .product-add-form.simple-product .col.item .product-attribute {
    margin: 0 1rem;
    width: 100%; }
    @media (min-width: 48.01em) {
      .catalog-product-view .product-add-form.simple-product .col.item .product-attribute {
        width: auto; } }
    .catalog-product-view .product-add-form.simple-product .col.item .product-attribute .value {
      font-weight: 700;
      background: #edeff1;
      padding: 0.5rem;
      text-align: center;
      border-radius: 7px;
      font-size: 1.7rem; }

.catalog-product-view .product-add-form.simple-product .box-price-qty {
  padding-top: 1rem; }
  @media (min-width: 48.01em) {
    .catalog-product-view .product-add-form.simple-product .box-price-qty {
      padding-top: 0; } }
  @media (min-width: 64em) {
    .catalog-product-view .product-add-form.simple-product .box-price-qty {
      min-width: 333px; } }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block {
    margin-left: auto;
    display: flex;
    align-items: center;
    justify-content: flex-end; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner {
      height: 100%;
      display: flex;
      align-items: center;
      padding: 0;
      flex-direction: row; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper {
        margin-top: 6px; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .sale-badge-wrapper .sale-badge {
          background: #fe1644;
          color: white;
          padding: 0.8rem 0.2rem;
          letter-spacing: 2px;
          border-radius: 4px;
          font-size: 2rem;
          margin-left: 1rem; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint {
        position: relative;
        display: inline-block;
        margin-left: 0.25rem;
        cursor: pointer; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .icon {
          vertical-align: middle; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .icon-help::before {
          content: '?';
          width: 15px;
          height: 15px;
          font-size: 10px;
          font-weight: bold;
          color: #455a64;
          line-height: 1;
          display: flex;
          align-items: center;
          justify-content: center;
          border: solid 1px;
          padding: 0;
          border-radius: 50%; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content {
          position: absolute;
          display: none;
          right: -0.25rem;
          top: calc(100% + 10px);
          font-size: 13px;
          line-height: 1.5em;
          z-index: 5;
          min-width: 258px;
          padding: 1rem;
          text-align: left;
          background-color: #fff;
          box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.2);
          border-radius: 3px;
          color: #455a64; }
          .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint .hint__content::after {
            content: '';
            display: block;
            position: absolute;
            top: -14px;
            right: 4px;
            border-width: 7px;
            border-style: solid;
            border-color: transparent transparent #fff transparent; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .product-price-inner .hint:hover .hint__content {
          display: block; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .omnibus-wrapper > span {
      color: #a8b1b7;
      font-size: 1.4rem;
      line-height: 1; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box {
      order: 9;
      padding: 0;
      display: flex;
      flex-direction: column-reverse; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .price-container {
        margin: 0 1rem;
        margin-right: 0;
        display: block; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .price-container .price {
          font-weight: 700;
          font-size: 2rem;
          color: #455a64; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .special-price .price {
        color: #fe1644; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .old-price .price {
        font-size: 1.5rem;
        color: #a8b1b7;
        font-weight: 400; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .product-price-block .price-box .old-price .price-wrapper {
        flex-direction: row-reverse; }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block {
    display: flex;
    align-items: center;
    flex-direction: row;
    margin-bottom: 0;
    margin-left: auto; }
    @media (max-width: 63.99em) {
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block {
        flex-direction: column;
        padding: 1.5rem; } }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .label {
      font-size: 1.7rem;
      font-weight: 400; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container {
      margin-left: 1rem;
      display: flex;
      align-items: center;
      flex-direction: row;
      justify-content: flex-end;
      border: 1px solid #edeff1;
      border-radius: 200px; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container:hover button {
        background: #11a099; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container .input-text {
        min-width: 150px;
        font-size: 1.4rem;
        border: unset;
        box-shadow: unset; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container button {
        border-radius: 200px;
        background: #17c8c0;
        padding: 1rem;
        font-weight: 700; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container button span {
          color: white; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container * {
        border: none; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .amxnotif-block .notification-container .actions-toolbar {
        min-width: unset; }
  .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    border: unset;
    margin-left: 1rem; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .control.qty {
      border: 1px solid #edeff1;
      border-radius: 200px;
      display: flex;
      align-items: center;
      justify-content: center; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .control.qty > form {
      display: flex;
      flex-direction: row;
      align-items: center; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment {
      flex-wrap: nowrap; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment .cs-qty-increment__input {
        min-width: 25px;
        max-width: 75px;
        width: auto;
        border: none;
        color: #455a64; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span {
        border: none; }
        .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span:hover {
          background: white; }
          .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .cs-qty-increment span:hover * {
            fill: #4d2c91; }
    .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .addtocart {
      white-space: nowrap;
      background-color: #7e57c2;
      border: none;
      border-radius: 100px;
      width: 40px;
      height: 40px;
      padding: 1rem;
      transition: background-color 0.3s ease; }
      .catalog-product-view .product-add-form.simple-product .box-price-qty .col.qty .addtocart:hover {
        background-color: #4d2c91;
        cursor: pointer; }

@media (max-width: 63.99em) {
  .catalog-product-view .cs-buybox__addtocart-fieldset {
    align-items: flex-end; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.take-me-top {
  opacity: 0.7;
  background-color: #fa7013;
  width: 50px;
  height: 50px;
  transition: 0.5s;
  position: fixed;
  right: 20px;
  bottom: 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center; }
  .take-me-top:hover {
    opacity: 1; }
  .take-me-top::before {
    content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/arrow_up_white.svg");
    display: block;
    width: 30px;
    height: 18px; }

.take-me-top.hidden {
  opacity: 0;
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.catalog-product-view .columns > .column.main .cs-container--page-pdp-top {
  background-color: #edeff1; }
  .catalog-product-view .columns > .column.main .cs-container--page-pdp-top .cs-page-product__top {
    background-color: #fff; }

.main {
  background: #edeff1; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.catalog-product-view .columns > .column.main {
  padding-top: 0px !important; }

.product.alert.alert.stock.link-stock-alert > .action.alert {
  display: flex;
  align-items: center;
  flex-direction: row; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.buybox__section-sign-in {
  display: flex;
  flex-direction: column;
  align-items: flex-end; }
  .buybox__section-sign-in p {
    padding-top: 3rem;
    padding-right: 1rem;
    border-top: 1px solid #b0b0b0;
    text-align: justify;
    font-size: 1.6rem; }
  .buybox__section-sign-in .btn-outlined {
    border: 2px solid #7e57c2;
    border-radius: 200px;
    font-weight: bold;
    padding: 1rem 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.newsletter-redingo {
  background-color: #455a64;
  color: #fff;
  padding: 4rem 1rem;
  margin: 3rem auto 5rem auto; }
  @media (min-width: 48em) {
    .newsletter-redingo {
      border-radius: 7px; } }
  .newsletter-redingo .newsletter__btn-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px; }
    .newsletter-redingo .newsletter__btn-container .newsletter__btn {
      background-color: #7e57c2 !important;
      border-radius: 50px !important;
      border: solid 2px #7e57c2;
      padding: 1rem 3rem !important;
      color: #fff;
      font-size: 2rem;
      font-weight: bold !important;
      white-space: nowrap;
      letter-spacing: 1px;
      height: 40px !important;
      line-height: 1 !important;
      cursor: pointer; }
      .newsletter-redingo .newsletter__btn-container .newsletter__btn:hover {
        color: #fff;
        background-color: #4d2c91 !important;
        border: solid 2px #4d2c91; }
  .newsletter-redingo .newsletter__title-container {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    min-height: 150px; }
    .newsletter-redingo .newsletter__title-container .newsletter__title {
      display: inline-block;
      font-size: 3rem;
      padding: 5rem 1rem 1rem 1rem;
      position: relative;
      color: #fff;
      text-align: center; }
      .newsletter-redingo .newsletter__title-container .newsletter__title::before {
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        content: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/newsletter-orange.svg); }
  .newsletter-redingo .comment {
    font-size: 1.3rem; }

@media (min-width: 48em) {
  .newsletter-redingo .newsletter__title-container .newsletter__title {
    padding: 1rem 2rem 1rem 5rem;
    text-align: justify; }
    .newsletter-redingo .newsletter__title-container .newsletter__title::before {
      top: 14px;
      left: 0px;
      transform: translateX(0%); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-image-teaser--slider.cs-image-teaser__slides {
  max-height: 414px !important;
  border-radius: 7px; }

.section-wrapper-slider {
  padding-bottom: 3rem; }
  @media (min-width: 64em) {
    .section-wrapper-slider {
      margin-left: -0.5rem;
      margin-right: -1rem;
      width: calc(100% + 1rem) !important; } }
  @media (min-width: 64em) {
    .section-wrapper-slider .home-top-slider {
      padding: 0.5rem; } }
  .section-wrapper-slider .home-top-slider .home-slider-box {
    background: #fff; }
  .section-wrapper-slider .box {
    padding: 0.5rem 0; }
    @media (min-width: 64em) {
      .section-wrapper-slider .box {
        padding: 0.5rem; } }
  .section-wrapper-slider .newsletter-redingo {
    padding: 0.5rem 1.5rem;
    border-radius: 7px;
    margin: 0.5rem 0;
    min-height: 300px; }
    @media (min-width: 64em) {
      .section-wrapper-slider .newsletter-redingo {
        margin: 0.5rem; } }
    .section-wrapper-slider .newsletter-redingo .newsletter__btn-container {
      min-height: 80px; }
      @media (min-width: 64em) {
        .section-wrapper-slider .newsletter-redingo .newsletter__btn-container {
          min-height: 50px; } }
    .section-wrapper-slider .newsletter-redingo .newsletter__title-container {
      min-height: 95px;
      flex-direction: column;
      min-height: 300px; }
      .section-wrapper-slider .newsletter-redingo .newsletter__title-container .newsletter__title {
        font-size: 2rem;
        text-align: left;
        padding-bottom: 0; }
  .section-wrapper-slider .home-slider-slick {
    background: #fff;
    border-radius: 7px; }
    .section-wrapper-slider .home-slider-slick .content {
      background: #fff;
      padding: 2rem 1.5rem;
      min-height: 300px; }
      .section-wrapper-slider .home-slider-slick .content .title {
        font-size: 2.5rem;
        padding-bottom: 1rem; }
        @media (min-width: 90em) {
          .section-wrapper-slider .home-slider-slick .content .title {
            font-size: 3rem; } }
      .section-wrapper-slider .home-slider-slick .content .subtitle {
        padding-bottom: 2rem; }
    .section-wrapper-slider .home-slider-slick .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      margin-top: 2rem; }
      .section-wrapper-slider .home-slider-slick .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
      .section-wrapper-slider .home-slider-slick .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
  .section-wrapper-slider .slick-slide {
    margin-bottom: -1.5rem; }
  .section-wrapper-slider .slick-slider {
    padding: 0; }
  .section-wrapper-slider .slick-dotted.slick-slider {
    margin-bottom: 0; }
  .section-wrapper-slider .slick-slide img {
    max-width: 100%;
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
    @media (min-width: 48em) {
      .section-wrapper-slider .slick-slide img {
        border-top-right-radius: 0;
        border-bottom-left-radius: 7px; } }
    @media (min-width: 64em) {
      .section-wrapper-slider .slick-slide img {
        max-height: 433px;
        aspect-ratio: 460/235;
        min-height: 408px; } }
  .section-wrapper-slider .slick-dots {
    bottom: 20px; }
    @media (min-width: 48em) {
      .section-wrapper-slider .slick-dots {
        text-align: right;
        padding-right: 4rem; } }
    .section-wrapper-slider .slick-dots li button::before {
      content: "\002D";
      font-size: 4rem; }

.fast-delivery-box, .discounts-box {
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-direction: column;
  text-align: center;
  border-radius: 7px;
  padding: 1rem 2rem;
  height: 100%;
  min-height: 200px; }
  .fast-delivery-box a, .fast-delivery-box a:hover, .discounts-box a, .discounts-box a:hover {
    color: #455a64; }
  .fast-delivery-box .title, .discounts-box .title {
    font-size: 2rem;
    padding: 1rem 0;
    margin: 0; }
    @media (min-width: 90em) {
      .fast-delivery-box .title, .discounts-box .title {
        font-size: 2.4rem; } }
  .fast-delivery-box .subtitle, .discounts-box .subtitle {
    font-size: 1.5rem;
    max-width: 210px; }

.fast-delivery-box {
  background: #17c8c0;
  color: #fff;
  margin-bottom: -2rem; }
  @media (min-width: 48em) {
    .fast-delivery-box {
      margin-right: 1rem; } }
  @media (min-width: 64em) {
    .fast-delivery-box {
      margin-right: auto; } }
  .fast-delivery-box .title {
    color: #fff; }

/* .fast-delivery-box::before{
    content: 'paczka';
} */
.discounts-box {
  background: #fff; }

/* .discounts-box::before{
    content: 'koszyk';
} */
.section-wrapper-covid {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding-top: 0;
  padding-bottom: 2rem;
  margin-left: -0.5rem;
  margin-right: -0.5rem; }
  .section-wrapper-covid .item > * {
    min-height: 368px; }
  .section-wrapper-covid .item > *,
  .section-wrapper-covid .item > * > *,
  .section-wrapper-covid .item > * > * > *,
  .section-wrapper-covid .item > * > * > * > * {
    height: 100%; }
  .section-wrapper-covid .p-2 {
    padding: 0.5rem; }
    .section-wrapper-covid .p-2 .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      margin-top: 1rem; }
      .section-wrapper-covid .p-2 .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
  .section-wrapper-covid .free-2-1-box {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: #17c8c0;
    color: #fff;
    border-radius: 7px;
    padding: 1.5rem 3rem;
    text-align: center;
    height: 100%;
    margin-bottom: -20px;
    min-height: 460px; }
    .section-wrapper-covid .free-2-1-box .free-2_title {
      font-size: 5rem;
      font-weight: bold;
      display: flex;
      flex-direction: column;
      line-height: 1;
      padding-bottom: 3rem;
      padding-top: 3rem; }
    .section-wrapper-covid .free-2-1-box .title-big {
      font-size: 13rem; }
    .section-wrapper-covid .free-2-1-box .title {
      font-size: 2.5rem;
      color: #fff; }
    .section-wrapper-covid .free-2-1-box .title-small {
      font-size: 1.6rem; }
  .section-wrapper-covid .new-in-accessories-box {
    background: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 460px; }
    .section-wrapper-covid .new-in-accessories-box .content {
      padding: 1.5rem 3rem; }
    .section-wrapper-covid .new-in-accessories-box .title {
      font-size: 2.5rem; }
    .section-wrapper-covid .new-in-accessories-box .subtitle {
      font-size: 1.6rem;
      color: #455a64; }
    .section-wrapper-covid .new-in-accessories-box img {
      border-top-left-radius: 7px;
      border-top-right-radius: 7px; }
  .section-wrapper-covid .covid-box {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding: 3rem;
    color: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 460px;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://images.unsplash.com/photo-1613119719948-d53865658a88?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80"); }
    .section-wrapper-covid .covid-box .title {
      font-size: 3.2rem;
      color: #fff; }
    .section-wrapper-covid .covid-box .subtitle {
      font-size: 2.5rem;
      max-width: 380px; }
  .section-wrapper-covid .covid-box-cms .cs-image-teaser__picture {
    min-height: 460px; }
  .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure {
    max-height: 400px;
    min-height: 460px;
    border-radius: 7px;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure {
        max-height: 460px; } }
    .section-wrapper-covid .covid-box-cms .cs-image-teaser__figure .cs-image-teaser__description {
      max-width: 100%; }

.section-wrapper-season-is-on {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding-bottom: 3rem; }
  .section-wrapper-season-is-on .season-is-on-box {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    flex-direction: column;
    padding: 3rem 1.5rem;
    color: #fff;
    border-radius: 7px;
    height: 100%;
    min-height: 300px;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("https://images.unsplash.com/photo-1613119719948-d53865658a88?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1771&q=80"); }
    .section-wrapper-season-is-on .season-is-on-box .title {
      font-size: 3.2rem;
      color: #fff;
      max-width: 360px; }
  .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__picture {
    min-height: 400px; }
  .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure {
    height: 100%;
    min-height: 300px;
    max-height: 400px;
    border-radius: 7px;
    margin-right: -1.5rem;
    margin-left: -1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure {
        max-height: 300px; } }
    .section-wrapper-season-is-on .season-is-on-box-cms .cs-image-teaser__figure .cs-image-teaser__slogan {
      font-size: 3.2rem;
      color: #fff;
      max-width: 360px; }
  @media (max-width: 63.99em) {
    .section-wrapper-season-is-on .season-is-on-slider {
      margin-left: -1.5rem;
      margin-right: -1.5rem; } }
  .section-wrapper-season-is-on .season-is-on-slider .cs-slider-pagination {
    display: none; }
  .section-wrapper-season-is-on .season-is-on-slider .cs-products-carousel {
    margin-bottom: 0; }
  .section-wrapper-season-is-on .season-is-on-slider .block-static-block.widget {
    margin-bottom: 0; }
  @media (min-width: 64em) {
    .section-wrapper-season-is-on .season-is-on-slider .cs-container.cs-container--products-carousel {
      padding-right: 0; } }
  .section-wrapper-season-is-on .cs-product-tile__container {
    min-height: 300px; }

.section-job-offers {
  margin-bottom: 5rem; }
  .section-job-offers .box {
    background: #fff;
    border-radius: 7px;
    padding: 2rem;
    margin-bottom: 2rem; }
    .section-job-offers .box .title {
      font-size: 2rem; }
    .section-job-offers .box .subtitle {
      font-size: 2rem; }
  .section-job-offers .box-offer {
    margin-top: -3rem; }
  .section-job-offers .item-city {
    display: flex;
    justify-content: flex-end; }
    .section-job-offers .item-city p {
      position: relative; }
      .section-job-offers .item-city p::before {
        position: absolute;
        content: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/geo-orange.svg);
        left: -20px; }
  .section-job-offers .item-btn,
  .section-job-offers .item-btn-send {
    display: flex;
    justify-content: flex-end;
    align-items: center; }
    .section-job-offers .item-btn .btn,
    .section-job-offers .item-btn-send .btn {
      background-color: #7e57c2;
      border-radius: 50px;
      padding: 1rem 2.5rem;
      color: #fff;
      font-size: 1.8rem;
      font-weight: bold;
      white-space: nowrap;
      letter-spacing: 1px;
      text-align: center;
      width: 100%; }
      .section-job-offers .item-btn .btn:hover,
      .section-job-offers .item-btn-send .btn:hover {
        color: #fff;
        background-color: #4d2c91; }
      @media (min-width: 48em) {
        .section-job-offers .item-btn .btn,
        .section-job-offers .item-btn-send .btn {
          width: auto; } }
  .section-job-offers .item-btn-send {
    justify-content: center;
    padding: 3rem 2rem; }

.cms-home-test .home-top-slider .block-static-block.widget, .cms-home-test .home-top-slider .block-cms-link.widget {
  margin-bottom: 0.5rem; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
  width: 100%; }

.cms-home-test .cs-image-teaser__content-wrapper--over {
  padding-bottom: 4rem; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
  padding: 0;
  -ms-overflow-style: none;
  /* for Internet Explorer, Edge */
  scrollbar-width: none;
  /* for Firefox */
  overflow-y: scroll; }
  .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides::-webkit-scrollbar {
    display: none; }
  @media (min-width: 64em) {
    .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width .cs-image-teaser__slides {
      min-height: 520px; } }

.cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides {
  max-height: 395px;
  padding: 0;
  border-radius: 7px; }
  .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides .cs-image-teaser__picture {
    min-height: 400px; }
    @media (min-width: 64em) {
      .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides .cs-image-teaser__picture {
        min-height: 520px; } }

.cms-home-test .cs-slider-pagination {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%); }

.cms-home-test .cs-container--image-teaser {
  margin: 0; }

.cms-home-test .cs-image-teaser__figure {
  overflow: hidden; }

.cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
  --base-size: 100%; }
  @media (min-width: 64em) {
    .cms-home-test .cs-image-teaser--slider.cs-image-teaser--container-width {
      min-height: 395px; } }

@media (min-width: 64em) {
  .cms-home-test .cs-image-teaser--slider .cs-image-teaser__slides-wrapper {
    min-height: 395px; } }

@media (max-width: 23.125em) {
  .cms-home-test .cs-image-teaser__slogan {
    font-size: 3.5rem; } }

.cms-home-test .cs-image-teaser__description {
  font-size: 2rem;
  max-width: 85%;
  margin: 1rem auto; }
  @media (min-width: 23.125em) {
    .cms-home-test .cs-image-teaser__description {
      font-size: 2.4rem; } }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited {
  background-color: #7e57c2;
  color: #fff; }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span {
  padding-right: 3em; }

.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta-span,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta *,
.cms-home-test .cs-image-teaser__slide--scheme-light .cs-image-teaser__cta:visited * {
  color: #fff;
  fill: #fff; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.blog-page #maincontent .cs-container__inner,
.blog-post-view #maincontent .cs-container__inner {
  max-width: 114rem; }

.blog-page .block-categories .block-title,
.blog-post-view .block-categories .block-title {
  display: none; }

.blog-page .accordion,
.blog-post-view .accordion {
  display: flex;
  margin-top: -5rem; }
  .blog-page .accordion .item,
  .blog-post-view .accordion .item {
    padding: 2rem 0; }
    .blog-page .accordion .item a,
    .blog-post-view .accordion .item a {
      color: #455a64;
      padding-right: 2rem; }
      .blog-page .accordion .item a:hover,
      .blog-post-view .accordion .item a:hover {
        color: #17c8c0; }

.blog-page .post-list-wrapper,
.blog-post-view .post-list-wrapper {
  margin-right: -1.5rem;
  margin-left: -1.5rem; }
  .blog-page .post-list-wrapper .post-list,
  .blog-post-view .post-list-wrapper .post-list {
    display: flex;
    flex-wrap: wrap; }
    .blog-page .post-list-wrapper .post-list .post-list-item,
    .blog-post-view .post-list-wrapper .post-list .post-list-item {
      max-width: 360px;
      margin: 0 auto; }
    .blog-page .post-list-wrapper .post-list .post-description,
    .blog-post-view .post-list-wrapper .post-list .post-description {
      padding: 1rem 2rem 0 2rem; }
    .blog-page .post-list-wrapper .post-list .post-title,
    .blog-post-view .post-list-wrapper .post-list .post-title {
      text-transform: none;
      font-size: 2rem; }
      .blog-page .post-list-wrapper .post-list .post-title a,
      .blog-post-view .post-list-wrapper .post-list .post-title a {
        color: #455a64; }
    .blog-page .post-list-wrapper .post-list .post-holder,
    .blog-post-view .post-list-wrapper .post-list .post-holder {
      border-bottom: none;
      padding: 1.5rem;
      height: 100%;
      margin-bottom: 0;
      max-width: 360px; }
    .blog-page .post-list-wrapper .post-list .post-content,
    .blog-post-view .post-list-wrapper .post-list .post-content {
      background-color: #fff;
      border-radius: 7px;
      height: 100%; }
      .blog-page .post-list-wrapper .post-list .post-content img,
      .blog-post-view .post-list-wrapper .post-list .post-content img {
        border-top-right-radius: 7px;
        border-top-left-radius: 7px; }

.blog-page .post-list-wrapper.blog-widget-recent .post-list-item,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-list-item {
  padding: 1.5rem; }

.blog-page .post-list-wrapper.blog-widget-recent .post-holder,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-holder {
  padding: 0;
  min-height: 300px; }

.blog-page .post-list-wrapper.blog-widget-recent .post-description,
.blog-post-view .post-list-wrapper.blog-widget-recent .post-description {
  margin-bottom: 0; }

.blog-page .post-list-wrapper.blog-widget-recent .item.post-posed-date,
.blog-post-view .post-list-wrapper.blog-widget-recent .item.post-posed-date {
  top: 10px;
  right: 10px; }

.post-bottom .post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {
  min-height: 100%; }

.blog-page .item.post-posed-date {
  position: absolute;
  top: 25px;
  right: 30px;
  background: #fff;
  padding: 0.5rem 1rem;
  border-radius: 200px;
  font-size: 1.2rem; }

.blog-page .pages.cs-pagination .cs-pagination__content {
  display: flex;
  flex-direction: row;
  justify-content: center; }
  .blog-page .pages.cs-pagination .cs-pagination__content svg {
    height: 10px;
    margin: 0px 10px; }
  .blog-page .pages.cs-pagination .cs-pagination__content .pages-items {
    display: flex;
    flex-direction: row; }
  .blog-page .pages.cs-pagination .cs-pagination__content .cs-pagination__number--current > .label {
    display: none !important; }
  .blog-page .pages.cs-pagination .cs-pagination__content .pages-items .cs-pagination__item {
    margin: 0px 10px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.checkout-cart-index #maincontent {
  background: #edeff1; }

.checkout-cart-index .cs-cart-item.item-info {
  background-color: #fff; }

.checkout-cart-index .action.continue {
  border: solid;
  padding: 1rem 2rem;
  border-radius: 200px;
  display: inline-block;
  margin-bottom: 3rem; }

.checkout-cart-index .field .input-text {
  border-radius: 200px; }

.checkout-cart-index .field .label {
  padding: 0 0 1rem 0;
  font-size: 1.6rem; }

.checkout-cart-index .cs-container__cart-coupons {
  padding: 4rem 0; }
  .checkout-cart-index .cs-container__cart-coupons .cs-discount {
    border-top: solid 1px #888; }
  .checkout-cart-index .cs-container__cart-coupons .cs-discount__title-text {
    color: #212121;
    font-size: 1.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.redingo-categories {
  padding-top: 2rem;
  display: flex;
  flex-wrap: wrap; }
  .redingo-categories .category {
    padding: 0 1rem 1rem 1rem; }
    .redingo-categories .category .wrapper {
      background-color: white;
      border-radius: 7px;
      padding: 1rem;
      font-size: 1.5rem;
      min-height: 103px;
      display: flex;
      flex-direction: column;
      justify-content: center; }
      @media (min-width: 48em) {
        .redingo-categories .category .wrapper {
          min-height: 280px; } }
      @media (min-width: 64em) {
        .redingo-categories .category .wrapper {
          padding: 2rem; } }
      @media (max-width: 64em) {
        .redingo-categories .category .wrapper .sub-category-wrapper {
          display: none; } }
    .redingo-categories .category .category-content {
      display: flex;
      flex-direction: column; }
      .redingo-categories .category .category-content img {
        margin: 0 auto; }
        @media (max-width: 48em) {
          .redingo-categories .category .category-content img {
            display: none; } }
      .redingo-categories .category .category-content .category-name {
        font-size: 1.7rem;
        font-weight: 700;
        margin: 0.5rem 1rem;
        color: #455a64; }
        @media (min-width: 64em) {
          .redingo-categories .category .category-content .category-name {
            margin: 0.5rem 2rem; } }
    .redingo-categories .category .sub-category-wrapper ul {
      margin: 0px;
      list-style: none;
      padding: 0px;
      padding: 0.5rem 2rem; }
      .redingo-categories .category .sub-category-wrapper ul li {
        margin: 0px;
        padding: 0.2rem 0; }
        .redingo-categories .category .sub-category-wrapper ul li a {
          color: #455a64; }
    .redingo-categories .category .all-categories {
      display: flex;
      padding: 0.5rem 2rem;
      position: relative;
      font-weight: bold;
      color: #455a64; }
      @media (max-width: 64em) {
        .redingo-categories .category .all-categories {
          display: none; } }
      .redingo-categories .category .all-categories::after {
        content: '\276F';
        padding-left: 7px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.section-wrapper-about-us {
  background: #fff;
  padding-bottom: 4rem;
  margin-bottom: 4rem;
  border-radius: 7px; }
  .section-wrapper-about-us ul {
    list-style: none;
    padding-left: 0; }
    .section-wrapper-about-us ul li {
      position: relative;
      padding-left: 2rem; }
      .section-wrapper-about-us ul li::before {
        content: '';
        width: 8px;
        height: 8px;
        border-radius: 50%;
        background-color: orange;
        display: inline-block;
        position: absolute;
        top: 9px;
        left: 0; }
  .section-wrapper-about-us img {
    border-radius: 7px; }
  .section-wrapper-about-us .page-title {
    font-size: 4rem;
    color: #fff;
    font-weight: normal;
    margin-bottom: 0;
    padding-bottom: 0; }
  .section-wrapper-about-us .page-subtitle {
    font-size: 3rem; }
  .section-wrapper-about-us .btn {
    background-color: #7e57c2;
    border-radius: 50px;
    padding: 1rem 2.5rem;
    color: #fff;
    font-size: 1.8rem;
    font-weight: bold;
    white-space: nowrap;
    letter-spacing: 1px; }
    .section-wrapper-about-us .btn:hover {
      color: #fff;
      background-color: #4d2c91; }
  .section-wrapper-about-us .content {
    padding: 1.5rem; }
    @media (min-width: 64em) {
      .section-wrapper-about-us .content {
        padding: 2rem 6rem; } }
  .section-wrapper-about-us .section-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; }
    .section-wrapper-about-us .section-wrapper .item-col {
      padding: 1.5rem 0;
      display: flex;
      align-items: center;
      justify-content: center; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .section-wrapper .item-col {
          padding: 1.5rem; } }
      @media (min-width: 64em) {
        .section-wrapper-about-us .section-wrapper .item-col {
          justify-content: flex-end; } }
  .section-wrapper-about-us .section-row-offer .item-col {
    justify-content: start; }
  .section-wrapper-about-us .box-with-bg-img {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 2rem;
    margin: 2rem auto;
    color: #fff;
    background: linear-gradient(rgba(126, 87, 194, 0.4), rgba(126, 87, 194, 0.4)), url("../../../../media/wysiwyg/o_nas/o-nas.jpg");
    background-size: cover;
    background-position: center;
    border-radius: 7px; }
    @media (min-width: 48em) {
      .section-wrapper-about-us .box-with-bg-img {
        min-height: 800px; } }
    .section-wrapper-about-us .box-with-bg-img .title {
      font-size: 3rem;
      color: #fff;
      text-align: center;
      margin-bottom: 0; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .box-with-bg-img .title {
          font-size: 7rem; } }
    .section-wrapper-about-us .box-with-bg-img .subtitle {
      font-size: 2rem;
      color: #fff;
      text-align: center;
      font-weight: normal; }
      @media (min-width: 48em) {
        .section-wrapper-about-us .box-with-bg-img .subtitle {
          font-size: 4rem; } }
  .section-wrapper-about-us .box-ecological-packaging {
    background: linear-gradient(rgba(126, 87, 194, 0.4), rgba(126, 87, 194, 0.4)), url("../../../../media/wysiwyg/o_nas/o-nas2.jpg");
    background-size: cover;
    background-position: center; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.b2c-b2b_box {
  display: flex;
  align-items: center;
  justify-content: center;
  border: solid 1px #ddd;
  background: #fff;
  padding: 0.5rem;
  border-radius: 200px;
  line-height: 1;
  min-height: 30px; }
  .b2c-b2b_box .b2c-b2b_item {
    padding: 0.2rem 2rem;
    display: flex;
    border-radius: 200px;
    font-weight: bold; }
  .b2c-b2b_box .b2c_box {
    background: #17c8c0;
    color: #fff; }
  .b2c-b2b_box .b2b_box a {
    color: #455a64; }
    .b2c-b2b_box .b2b_box a:hover {
      color: #17c8c0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.partners-slider-slick .slick-track {
  display: flex; }

.partners-box {
  padding-bottom: 0;
  overflow: hidden; }
  .partners-box h2 {
    padding-top: 2rem; }
  .partners-box img {
    border-radius: 7px;
    padding-right: 0.5rem;
    width: 97%; }
  .partners-box .slick-slider .slick-dots {
    list-style: none;
    display: flex;
    justify-content: center;
    padding: 1rem 0 0 0;
    margin: 0; }
    .partners-box .slick-slider .slick-dots li {
      width: 20px;
      margin-right: 5px; }
      @media (min-width: 30em) {
        .partners-box .slick-slider .slick-dots li {
          width: 40px; } }
      .partners-box .slick-slider .slick-dots li button {
        width: 20px;
        height: 5px;
        border: none;
        border-radius: 200px;
        background: #7e57c2;
        color: transparent;
        cursor: pointer; }
        @media (min-width: 30em) {
          .partners-box .slick-slider .slick-dots li button {
            width: 40px; } }
        .partners-box .slick-slider .slick-dots li button::before {
          content: '';
          background: #7e57c2;
          width: 20px;
          height: 4px;
          border-radius: 200px;
          opacity: 1; }
          @media (min-width: 30em) {
            .partners-box .slick-slider .slick-dots li button::before {
              width: 40px; } }
    .partners-box .slick-slider .slick-dots .slick-active button {
      background: #17c8c0;
      opacity: 1; }
      .partners-box .slick-slider .slick-dots .slick-active button::before {
        content: '';
        background: #17c8c0;
        opacity: 1; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cms-strefa-dla-firm .column:not(.sidebar-main) .form.contact,
.cms-konwersja-b2b .column:not(.sidebar-main) .form.contact {
  float: none;
  width: 100%; }

.cms-strefa-dla-firm .column:not(.sidebar-additional) .form.contact,
.cms-konwersja-b2b .column:not(.sidebar-additional) .form.contact {
  float: none;
  width: 100%;
  clear: both;
  padding: 4rem 2rem;
  border-radius: 7px;
  background: #fff; }
  @media (min-width: 48em) {
    .cms-strefa-dla-firm .column:not(.sidebar-additional) .form.contact,
    .cms-konwersja-b2b .column:not(.sidebar-additional) .form.contact {
      min-width: 60rem; } }

.cms-strefa-dla-firm .cs-dashboard .fieldset,
.cms-konwersja-b2b .cs-dashboard .fieldset {
  max-width: 100% !important; }

.cms-strefa-dla-firm .cs-dashboard .legend,
.cms-konwersja-b2b .cs-dashboard .legend {
  padding: 0;
  margin: 0; }
  .cms-strefa-dla-firm .cs-dashboard .legend h2,
  .cms-konwersja-b2b .cs-dashboard .legend h2 {
    padding: 0;
    margin: 0; }

.cms-strefa-dla-firm #maincontent,
.cms-konwersja-b2b #maincontent {
  background: #edeff1; }

.cms-strefa-dla-firm .section-wrapper,
.cms-konwersja-b2b .section-wrapper {
  padding: 3rem 0;
  margin-left: -1rem;
  margin-right: -1rem; }
  .cms-strefa-dla-firm .section-wrapper .contact-box,
  .cms-konwersja-b2b .section-wrapper .contact-box {
    background: #fff;
    padding: 2rem;
    border-radius: 7px;
    margin: 1rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 250px; }
    @media (min-width: 64em) {
      .cms-strefa-dla-firm .section-wrapper .contact-box,
      .cms-konwersja-b2b .section-wrapper .contact-box {
        min-height: 347px; } }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn {
      border: solid 2px;
      border-radius: 60px;
      padding: 0.5rem 1rem 0.5rem 3.5rem;
      display: inline-block;
      margin: 0.5rem 0.5rem 0.5rem 0;
      min-width: 200px;
      text-align: center;
      position: relative; }
      .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn::before,
      .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/telephone-purple.svg");
        position: absolute;
        left: 1.5rem;
        top: 53%;
        transform: translateY(-50%);
        line-height: 1; }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-btn-mail::before,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-btn-mail::before {
      content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/mail-purple.svg"); }
    .cms-strefa-dla-firm .section-wrapper .contact-box .contact-box-hours,
    .cms-konwersja-b2b .section-wrapper .contact-box .contact-box-hours {
      padding: 1rem;
      display: inline-block;
      padding-left: 2.3rem;
      position: relative; }
      .cms-strefa-dla-firm .section-wrapper .contact-box .contact-box-hours::before,
      .cms-konwersja-b2b .section-wrapper .contact-box .contact-box-hours::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/clock-purple.svg");
        position: absolute;
        left: 0;
        top: 53%;
        line-height: 1;
        transform: translateY(-50%); }
  .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection,
  .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    min-height: auto;
    padding: 3rem 2rem;
    margin-top: 3rem;
    border: solid 2px #fa7013; }
    .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p,
    .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p {
      margin: 0;
      position: relative; }
      @media (min-width: 30em) {
        .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p,
        .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p {
          padding-left: 7rem; }
          .cms-strefa-dla-firm .section-wrapper .contact-box-personal-collection p::before,
          .cms-konwersja-b2b .section-wrapper .contact-box-personal-collection p::before {
            content: url(../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/exclamation-triangle-orange.svg);
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            left: 0; } }

.cms-strefa-dla-firm .contact-row-tab9,
.cms-konwersja-b2b .contact-row-tab9 {
  margin-right: -1rem;
  margin-left: -1rem; }
  .cms-strefa-dla-firm .contact-row-tab9 .section-tab-title,
  .cms-konwersja-b2b .contact-row-tab9 .section-tab-title {
    padding: 0 1rem 1rem 1rem;
    margin-bottom: 0; }
  .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box,
  .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box {
    display: flex;
    padding: 1rem;
    flex-wrap: wrap; }
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title {
      padding: 1rem 0; }
      .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title .switch,
      .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title .switch {
        color: #455a64;
        padding: 1rem 3rem; }
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .item.title.active > .switch,
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:focus,
    .cms-strefa-dla-firm .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:hover,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .item.title.active > .switch,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:focus,
    .cms-konwersja-b2b .contact-row-tab9 .title-tabs-box .product.data.items > .item.title.active > .switch:hover {
      border-bottom: solid;
      padding-bottom: 0.8rem;
      color: #17c8c0; }

.cms-strefa-dla-firm .section-contact-tabs,
.cms-konwersja-b2b .section-contact-tabs {
  margin-bottom: 8rem; }
  .cms-strefa-dla-firm .section-contact-tabs .content-tab-box,
  .cms-konwersja-b2b .section-contact-tabs .content-tab-box {
    display: flex;
    flex-direction: column;
    background: #fff;
    padding: 2rem;
    margin: 1rem;
    border-radius: 7px; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-name,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-name {
      font-weight: bold;
      padding-bottom: 1rem;
      font-size: 2rem; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-link,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-link {
      padding-bottom: 1rem;
      padding-left: 4rem; }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-phone,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-phone {
      position: relative; }
      .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-phone::before,
      .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-phone::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/telephone-gray.svg");
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%); }
    .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-mail,
    .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-mail {
      position: relative; }
      .cms-strefa-dla-firm .section-contact-tabs .content-tab-box .tab-mail::before,
      .cms-konwersja-b2b .section-contact-tabs .content-tab-box .tab-mail::before {
        content: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/mail-gray.svg");
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%); }

.cms-strefa-dla-firm .form.contact .field .control > textarea,
.cms-konwersja-b2b .form.contact .field .control > textarea {
  border-radius: 15px;
  min-height: 354px; }

@media (min-width: 64em) {
  .cms-strefa-dla-firm .form.contact .field.comment.required,
  .cms-konwersja-b2b .form.contact .field.comment.required {
    padding-right: 2rem;
    padding-left: 2rem; } }

@media (min-width: 80em) {
  .cms-strefa-dla-firm .form.contact .box-items-input,
  .cms-konwersja-b2b .form.contact .box-items-input {
    padding-right: 2rem; } }

.cms-strefa-dla-firm .form.contact .field.terms,
.cms-konwersja-b2b .form.contact .field.terms {
  padding: 1rem 0 0 0; }
  .cms-strefa-dla-firm .form.contact .field.terms .label,
  .cms-konwersja-b2b .form.contact .field.terms .label {
    width: calc(100% - 30px);
    padding-bottom: 0; }

.cms-strefa-dla-firm .form.contact .actions-toolbar,
.cms-konwersja-b2b .form.contact .actions-toolbar {
  display: flex;
  justify-content: flex-end; }

.cms-strefa-dla-firm .form.contact .box-item-terms,
.cms-konwersja-b2b .form.contact .box-item-terms {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding-top: 2rem; }
  @media (min-width: 80em) {
    .cms-strefa-dla-firm .form.contact .box-item-terms,
    .cms-konwersja-b2b .form.contact .box-item-terms {
      min-height: 370px; } }

@media (max-width: 23.115em) {
  .cms-strefa-dla-firm .cs-image-teaser__slogan,
  .cms-konwersja-b2b .cs-image-teaser__slogan {
    font-size: 3rem; } }

.cms-strefa-dla-firm .cs-image-teaser__picture,
.cms-konwersja-b2b .cs-image-teaser__picture {
  min-height: 420px; }
  @media (max-width: 23.115em) {
    .cms-strefa-dla-firm .cs-image-teaser__picture,
    .cms-konwersja-b2b .cs-image-teaser__picture {
      aspect-ratio: 1/1 !important; } }
  @media (min-width: 48em) {
    .cms-strefa-dla-firm .cs-image-teaser__picture,
    .cms-konwersja-b2b .cs-image-teaser__picture {
      max-height: 400px; } }

.cms-strefa-dla-firm .cs-image-teaser__description,
.cms-konwersja-b2b .cs-image-teaser__description {
  font-size: 2rem;
  max-width: 900px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link {
  position: relative; }

.user-dropdown-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0px;
  background: white;
  list-style: none;
  padding: 5px;
  width: 100%;
  text-align: center;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.15);
  border-radius: 7px; }
  .user-dropdown-menu li {
    background: white; }
  .user-dropdown-menu a {
    font-size: 1.6rem;
    font-weight: 700;
    color: #455a64;
    margin: 0.5rem 2rem;
    font-weight: normal;
    text-align: left; }

@media (min-width: 64.01em) {
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in:hover .user-dropdown-menu {
    display: block; } }

@media (min-width: 64.01em) {
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link::after {
    content: '\276F';
    rotate: 90deg;
    font-size: 2rem; }
  .cs-header-user-nav__item--account.cs-header-user-nav__item--logged-in .cs-header-user-nav__link:hover::after {
    rotate: 270deg; }
  .cs-header-user-nav__label {
    min-width: 80px; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.custom-modal-open {
  cursor: pointer; }

.custom-modal {
  display: none;
  z-index: -1;
  opacity: 0;
  height: 0px;
  width: 0px; }
  .custom-modal .content {
    z-index: -1;
    position: relative; }
  .custom-modal .custom-modal-close {
    background-color: #7e57c2;
    padding: 1rem 2rem;
    margin: 1rem;
    border: none;
    border-radius: 200px;
    width: -moz-fit-content;
    width: fit-content;
    color: white;
    font-size: 1.7rem;
    font-weight: 700;
    text-transform: uppercase;
    margin: 1rem auto;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 2%; }

.custom-modal.open {
  z-index: 997;
  opacity: 1;
  position: fixed;
  left: 0;
  top: 0;
  width: 100vw;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center; }
  .custom-modal.open .content {
    border-radius: 7px;
    background-color: #fff;
    color: #455a64;
    padding: 2rem;
    z-index: 999;
    max-width: 95vw;
    max-height: 95vh;
    min-width: 300px;
    min-height: 300px;
    overflow: auto;
    margin: 0 auto;
    width: 800px;
    height: -moz-fit-content;
    height: fit-content; }
  .custom-modal.open .overlay {
    z-index: 998;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    bottom: 0;
    background-color: #000000b3; }

.newsletter-popup-content {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  padding: 2rem;
  font-size: 2.8rem; }
  .newsletter-popup-content h3 {
    font-size: 4rem; }
  .newsletter-popup-content h3, .newsletter-popup-content p {
    text-align: center; }
  .newsletter-popup-content p {
    padding-bottom: 2rem; }
  .newsletter-popup-content .popup-box-input {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column; }
    @media (min-width: 48em) {
      .newsletter-popup-content .popup-box-input {
        flex-direction: row; } }
    .newsletter-popup-content .popup-box-input .field {
      margin-bottom: 0 !important; }
  .newsletter-popup-content .popup-comment {
    font-size: 1.6rem; }
  .newsletter-popup-content .newsletter__btn {
    background: #fa7013;
    color: #fff;
    border-radius: 200px;
    cursor: pointer;
    border: solid 2px #fa7013;
    font-size: 2rem;
    width: 100%;
    line-height: 1.275em;
    padding: 1.2rem 3rem; }
    @media (min-width: 48em) {
      .newsletter-popup-content .newsletter__btn {
        width: 40%;
        margin-left: 2rem; } }
  .newsletter-popup-content .amform-form {
    width: 100%;
    max-width: 500px;
    padding: 0; }
  .newsletter-popup-content .amform-form .action.primary, .newsletter-popup-content .amform-parent .action.primary {
    margin-top: 0;
    cursor: pointer; }
  .newsletter-popup-content .cs-newsletter__actions {
    height: 5.4rem;
    width: 70px; }
    .newsletter-popup-content .cs-newsletter__actions .cs-newsletter__button {
      width: 100%; }
      .newsletter-popup-content .cs-newsletter__actions .cs-newsletter__button::before {
        content: ">"; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.rendered-form button,
.rendered-form input,
.rendered-form select,
.rendered-form textarea {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #455a64;
  background: #fff;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0 0 0.2em;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit; }

.rendered-form input.amform-checkbox {
  width: auto; }

.amcform-page-wrap {
  justify-content: flex-end; }

.amform-form {
  margin: 0 auto 10px;
  max-width: 700px;
  background: white;
  border-radius: 7px;
  padding: 3rem 1.5rem; }

.amform-versiontwo-label {
  font-size: 0.85em; }

.rendered-form .checkbox-group {
  border: 2px solid #dcdcdc;
  border-radius: 40px;
  padding: 2rem 4rem; }

.rendered-form .form-control:not([name="document"]), .rendered-form output {
  font-size: 1em;
  line-height: 1.275em;
  padding: 0.75em 1em;
  color: #455a64;
  background: #fff;
  border-radius: 200px;
  border: 2px solid #dcdcdc;
  box-shadow: none;
  transition: border-color 0.5s;
  margin: 0 0 0.2em;
  width: 100%;
  background-clip: padding-box;
  font-family: inherit; }

.rendered-form .fieldset .fields .field.form-group {
  margin-bottom: 3rem; }

.rendered-form .fieldset .fields .field .input-text:hover:not([disabled]), .rendered-form .fieldset .fields .field .input-text:focus:not([disabled]) {
  border: 2px solid #7e57c2 !important;
  box-shadow: none !important; }

.amform-form .action.primary, .amform-parent .action.primary {
  background: #7e57c2;
  border-radius: 50px;
  padding: 1rem 2.5rem;
  margin-top: 4rem;
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  white-space: nowrap;
  letter-spacing: 1px;
  border: none;
  width: 100%; }
  .amform-form .action.primary:hover, .amform-parent .action.primary:hover {
    color: #fff;
    background-color: #4d2c91; }
  @media (min-width: 48em) {
    .amform-form .action.primary, .amform-parent .action.primary {
      width: auto;
      position: relative; } }

.amform-form .amcform-toolbar {
  display: flex;
  justify-content: flex-end; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.redingo-unit-price-wrapper {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 0 0.5rem 0;
  font-size: 1.4rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.wishlist .cs-header-user-nav__qty-counter--wishlist {
  color: #fff;
  background-color: #17c8c0;
  top: -5px;
  right: -8px;
  padding: 0.8rem;
  width: 15px;
  height: 15px;
  position: absolute; }
  .wishlist .cs-header-user-nav__qty-counter--wishlist::before {
    content: none; }
  .wishlist .cs-header-user-nav__qty-counter--wishlist .cs-header-user-nav__qty-counter-span {
    min-width: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem; }

.cs-buybox__section--extras {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
  width: 100%; }
  @media (min-width: 48em) {
    .cs-buybox__section--extras {
      padding-top: 0 !important; } }
  .cs-buybox__section--extras .cs-buybox__addto-list {
    justify-content: flex-start; }
  .cs-buybox__section--extras .cs-buybox__addto-item--wishlist .cs-buybox__addto-icon--wishlist {
    width: 2rem;
    height: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
@media (max-width: 47.99em) {
  .pagebuilder-mobile-only {
    display: inline-block; } }

.pagebuilder-mobile-hidden {
  display: none; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.ui-datepicker {
  display: none;
  z-index: 999999 !important;
  border: none;
  border-radius: 7px;
  padding: 0;
  width: auto;
  min-width: 25rem;
  box-shadow: none;
  background: #f0f0f0; }

.ui-datepicker-header {
  position: relative;
  background: #11a099;
  padding: 1.2rem 2rem;
  border-top-left-radius: 7px;
  border-top-right-radius: 7px; }

.ui-datepicker-prev,
.ui-datepicker-next {
  position: absolute;
  top: 2rem;
  width: 1.8em;
  height: 1.8em;
  cursor: pointer; }
  .ui-datepicker-prev span,
  .ui-datepicker-next span {
    display: block;
    position: absolute;
    left: 50%;
    top: 0.2rem;
    font-size: 0px;
    width: 0;
    height: 0; }

.ui-datepicker-prev {
  left: 1.5rem; }
  .ui-datepicker-prev span {
    border-width: 0;
    position: relative; }
    .ui-datepicker-prev span:before, .ui-datepicker-prev span:after {
      content: '';
      position: absolute;
      top: 50%;
      left: 2rem;
      width: 0;
      height: 0; }
    .ui-datepicker-prev span:before {
      left: -1.2rem;
      border-top: 0.8rem solid transparent;
      border-bottom: 0.8rem solid transparent;
      border-right: 0.8rem solid #7e57c2;
      margin-top: -0.8rem; }
    .ui-datepicker-prev span:after {
      left: -1rem;
      border-top: 0.6rem solid transparent;
      border-bottom: 0.6rem solid transparent;
      border-right: 0.6rem solid #11a099;
      margin-top: -0.6rem; }

.ui-datepicker-next {
  right: 1.5rem; }
  .ui-datepicker-next span {
    border-width: 0;
    position: relative; }
    .ui-datepicker-next span:before, .ui-datepicker-next span:after {
      content: '';
      position: absolute;
      top: 50%;
      right: 0;
      width: 0;
      height: 0; }
    .ui-datepicker-next span:before {
      right: -1.2rem;
      border-top: 0.8rem solid transparent;
      border-bottom: 0.8rem solid transparent;
      border-left: 0.8rem solid #7e57c2;
      margin-top: -0.8rem; }
    .ui-datepicker-next span:after {
      right: -1rem;
      border-top: 0.6rem solid transparent;
      border-bottom: 0.6rem solid transparent;
      border-left: 0.6rem solid #11a099;
      margin-top: -0.6rem; }

.ui-datepicker-title {
  text-align: center;
  margin: 0 1.5rem; }

.ui-datepicker-title select {
  display: inline-block;
  font-size: 1.4rem; }

select.ui-datepicker-month-year {
  width: 100%; }

.ui-datepicker-month {
  width: 47%;
  margin-right: 6%; }

.ui-datepicker-year {
  width: 47%; }

.ui-datepicker-table {
  border: none;
  font-size: 1rem;
  border-collapse: collapse; }

.ui-datepicker-calendar {
  border-collapse: collapse;
  margin: 1rem 1.5rem 1.5rem;
  border-width: 0;
  width: 23rem; }
  .ui-datepicker-calendar td,
  .ui-datepicker-calendar th {
    background: none;
    border-width: 0;
    width: 3rem;
    height: 3rem;
    padding: 0;
    text-align: center; }
  .ui-datepicker-calendar th {
    text-transform: uppercase;
    color: #455a64; }
  .ui-datepicker-calendar .ui-datepicker-week-col {
    text-align: center; }
  .ui-datepicker-calendar td a,
  .ui-datepicker-calendar th span,
  .ui-datepicker-calendar td span {
    background: none;
    border-width: 0;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    text-align: center;
    line-height: 3rem;
    padding: 0;
    font-size: 1.4rem;
    display: block; }
  .ui-datepicker-calendar td a,
  .ui-datepicker-calendar td span {
    color: #696969; }
  .ui-datepicker-calendar .ui-state-hover {
    background: #7e57c2;
    color: #fff; }
  .ui-datepicker-calendar .ui-state-disabled {
    background: transparent; }
    .ui-datepicker-calendar .ui-state-disabled span {
      color: #dcdcdc; }
  .ui-datepicker-calendar .ui-state-active {
    background: #7e57c2;
    color: #fff; }

.ui-datepicker-buttonpane {
  overflow: hidden;
  padding-top: 1rem;
  border-top: #dcdcdc 1px solid; }
  .ui-datepicker-buttonpane button {
    float: right; }
  .ui-datepicker-buttonpane button.ui-datepicker-current {
    float: left; }

.ui-datepicker-rtl {
  direction: rtl; }

.ui-datepicker-rtl .ui-datepicker-prev {
  right: 2px;
  left: auto; }

.ui-datepicker-rtl .ui-datepicker-next {
  left: 2px;
  right: auto; }

.ui-datepicker-rtl .ui-datepicker-prev:hover {
  right: 1px;
  left: auto; }

.ui-datepicker-rtl .ui-datepicker-next:hover {
  left: 1px;
  right: auto; }

.ui-datepicker-rtl .ui-datepicker-buttonpane {
  clear: right; }

.ui-datepicker-rtl .ui-datepicker-buttonpane button {
  float: left; }

.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current {
  float: right; }

.ui-datepicker-rtl .ui-datepicker-group {
  float: right; }

.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header {
  border-right-width: 0;
  border-left-width: 1px; }

.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
  border-right-width: 0;
  border-left-width: 1px; }

.ui-timepicker-div {
  padding: 1rem 0 0.5rem 0; }
  .ui-timepicker-div .ui-widget-header {
    margin-bottom: 0.8rem; }
  .ui-timepicker-div dl {
    text-align: left; }
    .ui-timepicker-div dl dt {
      height: 2.5rem;
      margin-bottom: -2.2rem; }
    .ui-timepicker-div dl .ui_tpicker_time_label {
      margin-bottom: -2.5rem; }
    .ui-timepicker-div dl dd {
      margin: 0 0 1rem 6.5rem; }
  .ui-timepicker-div td {
    font-size: 90%; }

.ui-tpicker-grid-label {
  background: none;
  border: none;
  margin: 0;
  padding: 0; }

.ui-slider {
  position: relative;
  text-align: left; }

.ui-slider-handle {
  height: 1rem;
  width: 1rem;
  border-radius: 1rem;
  background: #7e57c2;
  display: block;
  position: absolute;
  z-index: 2;
  cursor: default; }

.ui-slider-horizontal {
  height: 1rem;
  border-radius: 1rem;
  border: none;
  background: #f0f0f0; }
  .ui-slider-horizontal .ui-slider-handle {
    margin-left: -0.5rem; }

/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
.ui-datepicker-cover {
  position: absolute;
  /*must have*/
  z-index: -1;
  /*must have*/
  filter: mask();
  /*must have*/
  top: -4px;
  /*must have*/
  left: -4px;
  /*must have*/
  width: 200px;
  /*must have*/
  height: 200px;
  /*must have*/ }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
.cs-captcha__image-controls {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-top: 1.5rem; }
  .cs-dashboard .cs-captcha__image-controls {
    flex-direction: column;
    align-items: flex-start; }
    @media (min-width: 30em) {
      .cs-dashboard .cs-captcha__image-controls {
        flex-direction: row;
        align-items: flex-end; } }
  @media (max-width: 48em) {
    .cs-captcha__image-controls {
      flex-wrap: wrap; } }

.cs-captcha__image {
  margin-right: 1rem; }

.cs-captcha__button {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-captcha__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-captcha__button, .cs-captcha__button:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid #7e57c2;
    color: #7e57c2;
    background-color: #fff; }
    .cs-captcha__button *, .cs-captcha__button:visited * {
      color: #7e57c2;
      fill: #7e57c2; }
  .cs-captcha__button:hover:not([disabled]), .cs-captcha__button:focus:not([disabled]), .cs-captcha__button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid #4d2c91;
    color: #fff;
    background-color: #4d2c91; }
    .cs-captcha__button:hover:not([disabled]) *, .cs-captcha__button:focus:not([disabled]) *, .cs-captcha__button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-captcha__button[disabled] {
    opacity: 0.65;
    cursor: auto; }
  .cs-dashboard .cs-captcha__button {
    margin-top: 2rem; }
    @media (min-width: 30em) {
      .cs-dashboard .cs-captcha__button {
        margin-top: 0; } }

.cs-captcha__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal; }

.cs-captcha__note {
  display: block;
  font-size: 0.85em;
  padding: 0.3em 0 0;
  color: #696969; }

.cs-dashboard .cs-captcha__wrapper {
  width: 100%;
  margin-bottom: 2rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-dashboard {
  width: 100%; }
  @media (min-width: 48em) {
    .cs-dashboard__columns {
      display: flex;
      flex-wrap: wrap;
      align-items: stretch; }
      .cs-dashboard__columns:before, .cs-dashboard__columns:after {
        display: none; } }
  .cs-dashboard__messages {
    width: 100%; }
  .cs-dashboard__sidebar {
    order: 1; }
    @media (min-width: 48em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 3);
        padding: 0 1.5rem 0 0; } }
    @media (min-width: 64em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 3);
        padding: 0 1.5rem 0 0; } }
    @media (min-width: 80em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4); } }
    @media (min-width: 90em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4); } }
    @media (min-width: 120em) {
      .cs-dashboard__sidebar {
        width: calc(100% / 4); } }
  .cs-dashboard__main {
    order: 2; }
    @media (min-width: 48em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 3));
        padding: 1.5rem 0 0 1.5rem; } }
    @media (min-width: 64em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 3));
        padding: 1.5rem 0 0 1.5rem; } }
    @media (min-width: 80em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4)); } }
    @media (min-width: 90em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4)); } }
    @media (min-width: 120em) {
      .cs-dashboard__main {
        width: calc(100% - (100% / 4)); } }
  .cs-dashboard .cs-page-category__main--search-no-result {
    width: 100%; }
  .cs-dashboard__columns {
    position: relative;
    margin: 3rem 0; }
    @media (min-width: 48em) {
      .cs-dashboard__columns {
        padding: 0 0 2rem; } }
  @media (min-width: 64em) {
    .cs-dashboard__sidebar {
      padding: 0; } }
  .cs-dashboard__main {
    margin-bottom: 2rem;
    margin-top: 2rem;
    box-sizing: border-box; }
    @media (min-width: 48em) {
      .cs-dashboard__main {
        padding: 0 0 0 3.5rem;
        margin-top: 0; } }
    @media (min-width: 48em) {
      .wishlist-index-index.page-layout-1column .cs-dashboard__main {
        width: 100% !important; } }
  .cs-dashboard__top {
    padding: 0 0 3rem; }
  .cs-dashboard .page-title {
    margin: 0;
    padding: 0 0 1rem 0; }
  .cs-dashboard .columns .column.main {
    padding: 0; }
  .cs-dashboard .message-error,
  .cs-dashboard .message-success,
  .cs-dashboard .message-notice {
    margin-bottom: 1rem; }
  .cs-dashboard .page-title-wrapper {
    background: transparent; }
  .cs-dashboard__bottom {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    padding-top: 2rem;
    border-top: 2px solid #dcdcdc; }
    @media (min-width: 48em) {
      .cs-dashboard__bottom {
        width: 100%;
        padding-top: 3rem; } }
  .cs-dashboard__wishlist-line {
    margin: 0; }
  .cs-dashboard__wishlist-products-grid {
    margin: 0 0 3rem; }
    @media (min-width: 48em) {
      .cs-dashboard__wishlist-products-grid {
        margin: 0 0 4rem; } }
    .cs-dashboard__wishlist-products-grid--skip-spacing {
      margin: 0; }
  .cs-dashboard__wishlist-guest-code {
    overflow-wrap: break-word; }
  .cs-dashboard__bottom-wishlist {
    margin: 0 0 3rem;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    width: 100%; }
    @media (min-width: 48em) {
      .cs-dashboard__bottom-wishlist {
        margin: 0 0 4rem; } }
    .cs-dashboard__bottom-wishlist--skip-spacing {
      margin: 0; }
    .cs-dashboard__bottom-wishlist-item {
      width: 100%; }
      @media (min-width: 30em) {
        .cs-dashboard__bottom-wishlist-item {
          width: 50%; } }
      @media (min-width: 48em) {
        .cs-dashboard__bottom-wishlist-item {
          width: 33.33%; } }
      .cs-dashboard__bottom-wishlist-item:nth-child(n + 4) {
        display: none; }
  .cs-dashboard__login {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between; }
    @media (min-width: 48em) {
      .cs-dashboard__login {
        flex-wrap: nowrap;
        padding: 0; } }
    .cs-dashboard__login-section {
      width: 100%;
      background: transparent;
      box-sizing: border-box;
      margin-bottom: 2rem; }
      @media (min-width: 48em) {
        .cs-dashboard__login-section {
          width: 50%; }
          .cs-dashboard__login-section:nth-child(2n + 1) {
            padding-right: 2rem; }
          .cs-dashboard__login-section:nth-child(2n + 2) {
            padding-left: 2rem; } }
  .cs-dashboard__contact-form {
    box-sizing: border-box;
    width: 100%;
    margin-bottom: 2rem;
    background: transparent; }
  .cs-dashboard .fieldset,
  .cs-dashboard .form {
    width: 100%;
    min-width: 15rem !important; }
  .cs-dashboard .fieldset {
    width: 100%;
    border: 0;
    padding: 0;
    margin: 0; }
    @media (min-width: 48em) {
      .cs-dashboard .fieldset {
        max-width: calc(100% - 3rem); } }
  .cs-dashboard .fieldset.fieldset-fullname {
    max-width: 100%; }
  .cs-dashboard .field {
    margin-bottom: 1rem; }
  .cs-dashboard .limiter {
    margin-bottom: 0;
    display: flex;
    align-items: center; }
  .cs-dashboard select {
    display: block;
    font-size: 1em;
    line-height: 1.275em;
    padding: 0.75em 1em;
    padding-right: 2.3em;
    color: #455a64;
    border-radius: 200px;
    border: 2px solid #dcdcdc;
    box-shadow: none;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.2em;
    outline: 0;
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%23dcdcdc'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%);
    background-repeat: no-repeat, repeat;
    background-position: right 0.8em top 52%, 0 0;
    background-size: 0.7em auto, 100%;
    transition: border-color 0.5s; }
    .cs-dashboard select:-moz-focusring, .cs-dashboard select::-moz-focus-inner {
      color: transparent !important;
      text-shadow: 0 0 0 #000 !important; }
    .cs-dashboard select:hover:not([disabled]), .cs-dashboard select:focus:not([disabled]) {
      border: 2px solid #7e57c2;
      box-shadow: none;
      background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 9' fill='%237e57c2'%3e%3cpath d='M0 1.2C0 .5.6 0 1.2 0c.3 0 .6.1.8.3l6 5.9 6-5.9c.5-.4 1.2-.3 1.7.1.4.4.4 1.1 0 1.5L8.9 8.7c-.5.4-1.2.4-1.7 0L.4 2a.9.9 0 0 1-.4-.8z'/%3e%3c/svg%3e"), linear-gradient(0deg, transparent 0%, transparent 100%); }
    .cs-dashboard select[disabled] {
      opacity: 0.65; }
    .cs-dashboard select option {
      font-weight: 500;
      padding: 0;
      color: initial; }
  .cs-dashboard .choice {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap; }
    .cs-dashboard .choice .label {
      width: auto;
      font-weight: 300;
      font-size: 1.4rem; }
    .cs-dashboard .choice .checkbox {
      margin-top: 0.2rem; }
  .cs-dashboard .field-name-prefix {
    max-width: 12rem; }
  .cs-dashboard .primary > button,
  .cs-dashboard .primary .create {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    min-width: 12rem; }
    .cs-dashboard .primary > button::-moz-focus-inner,
    .cs-dashboard .primary .create::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-dashboard .primary > button, .cs-dashboard .primary > button:visited,
    .cs-dashboard .primary .create,
    .cs-dashboard .primary .create:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-dashboard .primary > button *, .cs-dashboard .primary > button:visited *,
      .cs-dashboard .primary .create *,
      .cs-dashboard .primary .create:visited * {
        color: #fff;
        fill: #fff; }
    .cs-dashboard .primary > button:hover:not([disabled]), .cs-dashboard .primary > button:focus:not([disabled]), .cs-dashboard .primary > button:active:not([disabled]),
    .cs-dashboard .primary .create:hover:not([disabled]),
    .cs-dashboard .primary .create:focus:not([disabled]),
    .cs-dashboard .primary .create:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-dashboard .primary > button:hover:not([disabled]) *, .cs-dashboard .primary > button:focus:not([disabled]) *, .cs-dashboard .primary > button:active:not([disabled]) *,
      .cs-dashboard .primary .create:hover:not([disabled]) *,
      .cs-dashboard .primary .create:focus:not([disabled]) *,
      .cs-dashboard .primary .create:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-dashboard .primary > button[disabled],
    .cs-dashboard .primary .create[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .wishlist-index-index .cs-dashboard .primary > button, .wishlist-index-index
    .cs-dashboard .primary .create {
      z-index: 1; }
    .cs-dashboard .primary > button span,
    .cs-dashboard .primary .create span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .cs-dashboard .primary > button.action.update {
    display: none; }
  .cs-dashboard .remind,
  .cs-dashboard .back {
    font-size: 1.4rem;
    margin-top: 0.7rem;
    display: inline-block; }
  .cs-dashboard .counter {
    font-weight: 300;
    transform: translateX(-1rem);
    display: inline-block; }
    .cs-dashboard .counter:before {
      content: '('; }
    .cs-dashboard .counter:after {
      content: ')'; }
  .cs-dashboard .block {
    width: 100%;
    margin: 1.5rem 0 2.5rem;
    background: #fff;
    padding: 1.5rem;
    box-sizing: border-box;
    border-radius: 7px; }
    @media (min-width: 48em) {
      .cs-dashboard .block {
        margin: 1.5rem 0 4rem; } }
  .cs-dashboard .block-title,
  .cs-dashboard .legend,
  .cs-dashboard .order-title {
    margin-bottom: 1rem;
    padding-bottom: 0.8rem;
    font-weight: 600;
    font-size: 1.8rem;
    width: 100%; }
    .cs-dashboard .block-title strong,
    .cs-dashboard .legend strong,
    .cs-dashboard .order-title strong {
      font-weight: 600;
      margin-right: 1rem; }
  .cs-dashboard .table-wrapper {
    width: 100%; }
  .cs-dashboard .block-title a {
    font-weight: 300;
    font-size: 1.4rem;
    vertical-align: text-bottom;
    white-space: nowrap; }
  .cs-dashboard .box-title {
    font-size: 1.1rem;
    font-weight: 600;
    text-transform: uppercase; }
  .cs-dashboard .block-content {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 2rem 0 0; }
    @media (max-width: 63.99em) {
      .sales-order-history .cs-dashboard .block-content {
        margin-top: 0; } }
    .cs-dashboard .block-content.no-display {
      display: none; }
  .cs-dashboard .block-new-customer .block-content {
    flex-direction: column; }
    .cs-dashboard .block-new-customer .block-content .fieldset {
      margin-bottom: 1rem; }
  @media (max-width: 63.99em) {
    .cs-dashboard .block-reward-history .cs-toolbar__item--amount {
      width: 100%;
      justify-content: center; } }
  .cs-dashboard .block-reward-history .cs-toolbar__item--amount:nth-child(1) {
    display: none; }
  @media (max-width: 63.99em) {
    .cs-dashboard .block-reward-history .pages {
      width: 100%;
      justify-content: center;
      display: flex;
      margin: 0.7rem 0 2rem; } }
  .cs-dashboard .block-reward-history .pages:nth-child(2) {
    display: none; }
  @media (max-width: 63.99em) {
    .cs-dashboard .block-reward-history .cs-toolbar__item--limiter {
      margin: 0 auto; } }
  .cs-dashboard .block-reward-history .cs-toolbar__item--limiter:nth-child(3) {
    display: none; }
  .cs-dashboard .box-actions a + a:before,
  .cs-dashboard .actions a + a:before {
    margin: 0 0.7rem 0 0.5rem;
    content: '';
    display: inline-block;
    width: 1px;
    height: 1.2rem;
    border-right: 2px solid #dcdcdc; }
  .cs-dashboard .box-actions a,
  .cs-dashboard .actions a {
    font-weight: 300; }
  .cs-dashboard .table-wrapper,
  .cs-dashboard .orders-history,
  .cs-dashboard .form-wishlist-items {
    background: transparent; }
    .cs-dashboard .table-wrapper + .toolbar,
    .cs-dashboard .table-wrapper + .actions-toolbar,
    .cs-dashboard .orders-history + .toolbar,
    .cs-dashboard .orders-history + .actions-toolbar,
    .cs-dashboard .form-wishlist-items + .toolbar,
    .cs-dashboard .form-wishlist-items + .actions-toolbar {
      background: transparent;
      padding: 1.5rem; }
    .cs-dashboard .table-wrapper.order-items + .actions-toolbar,
    .cs-dashboard .orders-history.order-items + .actions-toolbar,
    .cs-dashboard .form-wishlist-items.order-items + .actions-toolbar {
      padding: 0; }
    .cs-dashboard .table-wrapper + .toolbar,
    .cs-dashboard .orders-history + .toolbar,
    .cs-dashboard .form-wishlist-items + .toolbar {
      width: 100%; }
    .cs-dashboard .table-wrapper .action,
    .cs-dashboard .orders-history .action,
    .cs-dashboard .form-wishlist-items .action {
      margin-right: 0; }
  .cs-dashboard .form-wishlist-items .actions-toolbar .primary {
    margin-bottom: 2rem; }
    @media (max-width: 64em) {
      .cs-dashboard .form-wishlist-items .actions-toolbar .primary {
        display: flex;
        justify-content: space-between;
        flex-direction: column; }
        .cs-dashboard .form-wishlist-items .actions-toolbar .primary .action:last-child {
          margin-top: 1rem; } }
  .cs-dashboard .form-pwanotifications-manage .fieldset {
    max-width: initial !important; }
  .cs-dashboard .form-pwanotifications-manage .field {
    flex-wrap: nowrap; }
  .cs-dashboard .form-pwanotifications-manage .actions-toolbar {
    margin-top: 2rem; }
  .cs-dashboard .cs-toolbar__item--amount {
    display: flex;
    align-items: center; }
  .cs-dashboard .toolbar {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap; }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar {
        align-items: center; } }
    @media (max-width: 63.99em) {
      .cs-dashboard .toolbar {
        flex-direction: column; } }
    .cs-dashboard .toolbar::after, .cs-dashboard .toolbar::before {
      display: none; }
    @media (max-width: 63.99em) {
      .cs-dashboard .toolbar .cs-toolbar__item {
        display: flex;
        justify-content: center;
        margin: auto; }
        .cs-dashboard .toolbar .cs-toolbar__item p {
          margin-bottom: 1rem; } }
    .cs-dashboard .toolbar .cs-toolbar__item--amount {
      margin-bottom: 1.5rem; }
      @media (min-width: 64em) {
        .cs-dashboard .toolbar .cs-toolbar__item--amount {
          margin-bottom: 0; } }
      @media (max-width: 47.99em) {
        .cs-dashboard .toolbar .cs-toolbar__item--amount {
          padding-bottom: 0; } }
      .cs-dashboard .toolbar .cs-toolbar__item--amount + .cs-toolbar__item--limiter {
        margin-top: 0; }
    @media (max-width: 63.99em) {
      .cs-dashboard .toolbar .cs-toolbar__item--limiter {
        margin-top: 2.5rem; } }
    @media (min-width: 64em) {
      .cs-dashboard .toolbar .cs-toolbar__item--limiter {
        margin-bottom: 0; } }
    .cs-dashboard .toolbar .toolbar-amount {
      padding-top: 0;
      display: none; }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar .pages {
        margin: 0 auto; } }
    @media (min-width: 48em) {
      .cs-dashboard .toolbar .pages {
        position: static;
        display: flex;
        justify-content: center;
        width: auto; } }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar .limiter {
        display: flex;
        justify-content: center; } }
    @media (max-width: 47.99em) {
      .cs-dashboard .toolbar .limiter .label {
        width: auto; } }
    .cs-dashboard .toolbar.wishlist-toolbar br {
      display: none; }
  .cs-dashboard .actions-toolbar > .secondary .action.back,
  .cs-dashboard .secondary .action.edit-email-preferences {
    display: none; }
    .review-customer-view .cs-dashboard .actions-toolbar > .secondary .action.back, .review-customer-view
    .cs-dashboard .secondary .action.edit-email-preferences {
      display: block; }
  .cs-dashboard .box,
  .cs-dashboard .addresses {
    width: 100%;
    box-sizing: border-box; }
    @media (min-width: 30em) {
      .cs-dashboard .box,
      .cs-dashboard .addresses {
        width: 48%; } }
  .cs-dashboard .box-content,
  .cs-dashboard .addresses .item {
    font-weight: 300;
    color: #696969;
    line-height: 2.5rem;
    margin-bottom: 0; }
  .cs-dashboard .tooltip.wrapper {
    font-size: 1.4rem;
    display: inline-block;
    padding-left: 0.5rem; }
  .cs-dashboard .choice.persistent {
    padding-bottom: 1.5rem; }
  @media (max-width: 63.99em) {
    .cs-dashboard .table-order-items .cs-table__col:last-child {
      padding-bottom: 2rem; }
    .cs-dashboard .table-order-items .price-excluding-tax,
    .cs-dashboard .table-order-items .price-including-tax,
    .cs-dashboard .table-order-items .items-qty,
    .cs-dashboard .table-order-items .product-item-name {
      display: inline-block;
      font-weight: 400;
      margin: 0;
      color: #696969; }
    .cs-dashboard .table-order-items .cs-cart-item__options-label {
      text-transform: none;
      width: auto;
      margin-right: 1rem; }
      .cs-dashboard .table-order-items .cs-cart-item__options-label:after {
        content: ':'; }
    .cs-dashboard .table-order-items .cs-table__col.subtotal {
      text-align: left; }
    .cs-dashboard .table-order-items .price-excluding-tax .price {
      font-weight: 400; } }
  .cs-dashboard .table-order-items .items-qty {
    margin: 0;
    padding: 0;
    list-style: none; }
    .cs-dashboard .table-order-items .items-qty .item {
      margin-bottom: 0.5rem; }
      .cs-dashboard .table-order-items .items-qty .item:last-child {
        margin-bottom: 0; }
  .sales-order-view .cs-dashboard .actions,
  .sales-order-invoice .cs-dashboard .actions,
  .sales-order-shipment .cs-dashboard .actions {
    width: 100%;
    margin-top: 2rem;
    display: flex; }
  .sales-order-view .cs-dashboard .actions .order,
  .sales-order-invoice .cs-dashboard .actions .order,
  .sales-order-shipment .cs-dashboard .actions .order {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    font-size: 1.2rem;
    margin-right: 1rem;
    margin-bottom: 0.8rem; }
    .sales-order-view .cs-dashboard .actions .order::-moz-focus-inner,
    .sales-order-invoice .cs-dashboard .actions .order::-moz-focus-inner,
    .sales-order-shipment .cs-dashboard .actions .order::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .sales-order-view .cs-dashboard .actions .order, .sales-order-view .cs-dashboard .actions .order:visited,
    .sales-order-invoice .cs-dashboard .actions .order,
    .sales-order-invoice .cs-dashboard .actions .order:visited,
    .sales-order-shipment .cs-dashboard .actions .order,
    .sales-order-shipment .cs-dashboard .actions .order:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .sales-order-view .cs-dashboard .actions .order *, .sales-order-view .cs-dashboard .actions .order:visited *,
      .sales-order-invoice .cs-dashboard .actions .order *,
      .sales-order-invoice .cs-dashboard .actions .order:visited *,
      .sales-order-shipment .cs-dashboard .actions .order *,
      .sales-order-shipment .cs-dashboard .actions .order:visited * {
        color: #fff;
        fill: #fff; }
    .sales-order-view .cs-dashboard .actions .order:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .order:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .order:active:not([disabled]),
    .sales-order-invoice .cs-dashboard .actions .order:hover:not([disabled]),
    .sales-order-invoice .cs-dashboard .actions .order:focus:not([disabled]),
    .sales-order-invoice .cs-dashboard .actions .order:active:not([disabled]),
    .sales-order-shipment .cs-dashboard .actions .order:hover:not([disabled]),
    .sales-order-shipment .cs-dashboard .actions .order:focus:not([disabled]),
    .sales-order-shipment .cs-dashboard .actions .order:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .sales-order-view .cs-dashboard .actions .order:hover:not([disabled]) *, .sales-order-view .cs-dashboard .actions .order:focus:not([disabled]) *, .sales-order-view .cs-dashboard .actions .order:active:not([disabled]) *,
      .sales-order-invoice .cs-dashboard .actions .order:hover:not([disabled]) *,
      .sales-order-invoice .cs-dashboard .actions .order:focus:not([disabled]) *,
      .sales-order-invoice .cs-dashboard .actions .order:active:not([disabled]) *,
      .sales-order-shipment .cs-dashboard .actions .order:hover:not([disabled]) *,
      .sales-order-shipment .cs-dashboard .actions .order:focus:not([disabled]) *,
      .sales-order-shipment .cs-dashboard .actions .order:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .sales-order-view .cs-dashboard .actions .order[disabled],
    .sales-order-invoice .cs-dashboard .actions .order[disabled],
    .sales-order-shipment .cs-dashboard .actions .order[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .sales-order-view .cs-dashboard .actions .order::before,
    .sales-order-invoice .cs-dashboard .actions .order::before,
    .sales-order-shipment .cs-dashboard .actions .order::before {
      display: none; }
    .sales-order-view .cs-dashboard .actions .order span,
    .sales-order-invoice .cs-dashboard .actions .order span,
    .sales-order-shipment .cs-dashboard .actions .order span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .sales-order-view .cs-dashboard .actions .print,
  .sales-order-invoice .cs-dashboard .actions .print,
  .sales-order-shipment .cs-dashboard .actions .print {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    font-size: 1.2rem;
    margin-right: 1rem;
    margin-bottom: 0.8rem; }
    .sales-order-view .cs-dashboard .actions .print::-moz-focus-inner,
    .sales-order-invoice .cs-dashboard .actions .print::-moz-focus-inner,
    .sales-order-shipment .cs-dashboard .actions .print::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .sales-order-view .cs-dashboard .actions .print, .sales-order-view .cs-dashboard .actions .print:visited,
    .sales-order-invoice .cs-dashboard .actions .print,
    .sales-order-invoice .cs-dashboard .actions .print:visited,
    .sales-order-shipment .cs-dashboard .actions .print,
    .sales-order-shipment .cs-dashboard .actions .print:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .sales-order-view .cs-dashboard .actions .print *, .sales-order-view .cs-dashboard .actions .print:visited *,
      .sales-order-invoice .cs-dashboard .actions .print *,
      .sales-order-invoice .cs-dashboard .actions .print:visited *,
      .sales-order-shipment .cs-dashboard .actions .print *,
      .sales-order-shipment .cs-dashboard .actions .print:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .sales-order-view .cs-dashboard .actions .print:hover:not([disabled]), .sales-order-view .cs-dashboard .actions .print:focus:not([disabled]), .sales-order-view .cs-dashboard .actions .print:active:not([disabled]),
    .sales-order-invoice .cs-dashboard .actions .print:hover:not([disabled]),
    .sales-order-invoice .cs-dashboard .actions .print:focus:not([disabled]),
    .sales-order-invoice .cs-dashboard .actions .print:active:not([disabled]),
    .sales-order-shipment .cs-dashboard .actions .print:hover:not([disabled]),
    .sales-order-shipment .cs-dashboard .actions .print:focus:not([disabled]),
    .sales-order-shipment .cs-dashboard .actions .print:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .sales-order-view .cs-dashboard .actions .print:hover:not([disabled]) *, .sales-order-view .cs-dashboard .actions .print:focus:not([disabled]) *, .sales-order-view .cs-dashboard .actions .print:active:not([disabled]) *,
      .sales-order-invoice .cs-dashboard .actions .print:hover:not([disabled]) *,
      .sales-order-invoice .cs-dashboard .actions .print:focus:not([disabled]) *,
      .sales-order-invoice .cs-dashboard .actions .print:active:not([disabled]) *,
      .sales-order-shipment .cs-dashboard .actions .print:hover:not([disabled]) *,
      .sales-order-shipment .cs-dashboard .actions .print:focus:not([disabled]) *,
      .sales-order-shipment .cs-dashboard .actions .print:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .sales-order-view .cs-dashboard .actions .print[disabled],
    .sales-order-invoice .cs-dashboard .actions .print[disabled],
    .sales-order-shipment .cs-dashboard .actions .print[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .sales-order-view .cs-dashboard .actions .print::before,
    .sales-order-invoice .cs-dashboard .actions .print::before,
    .sales-order-shipment .cs-dashboard .actions .print::before {
      display: none; }
    .sales-order-view .cs-dashboard .actions .print span,
    .sales-order-invoice .cs-dashboard .actions .print span,
    .sales-order-shipment .cs-dashboard .actions .print span {
      margin-top: 0;
      z-index: 1;
      font-weight: 700;
      vertical-align: baseline;
      display: inline-block;
      line-height: 1.275em;
      letter-spacing: normal; }
  .cs-dashboard .block-reviews-dashboard .product-name {
    font-weight: 300; }
  .cs-dashboard .rating-result {
    margin-left: 0;
    width: auto; }
    .cs-dashboard .rating-result::before {
      display: none; }
  .cs-dashboard .rating-summary.item {
    display: flex;
    overflow: visible; }
  .cs-dashboard .customer-review .product-name {
    font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.5rem;
    line-height: 1.1;
    color: #455a64;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem; }
  .cs-dashboard .customer-review .review-title {
    font-family: "Dosis", system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Oxygen, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    font-size: 1.5rem;
    line-height: 1.1;
    color: #455a64;
    font-weight: 700;
    text-transform: none;
    margin: 1rem 0 2rem;
    text-transform: none; }
  .cs-dashboard .customer-review.view {
    margin-bottom: 2rem; }
    .cs-dashboard .customer-review.view .review.title,
    .cs-dashboard .customer-review.view .ratings-summary,
    .cs-dashboard .customer-review.view .product-details {
      margin-bottom: 2rem; }
  .cs-dashboard .customer-review .product-details {
    margin-bottom: 4rem; }
  .cs-dashboard .customer-review .product-media {
    float: left;
    margin-right: 3%;
    max-width: 28.5rem;
    width: 30%; }
  .cs-dashboard .customer-review .review-details .customer-review-rating {
    margin-bottom: 2rem; }
    .cs-dashboard .customer-review .review-details .customer-review-rating .item {
      margin-bottom: 1rem; }
      .cs-dashboard .customer-review .review-details .customer-review-rating .item:last-child {
        margin-bottom: 0; }
  .cs-dashboard .customer-review .review-details .review-title {
    line-height: 1.1;
    font-size: 1.8rem;
    margin-top: 1.5rem;
    font-weight: 600;
    margin-bottom: 2rem; }
  .cs-dashboard .customer-review .review-details .review-content {
    margin-bottom: 2rem; }
  .cs-dashboard .customer-review .product-reviews-summary .rating-summary,
  .cs-dashboard .customer-review .product-reviews-summary .reviews-actions {
    display: block; }
  .cs-dashboard .create-account__box-b2c-b2b {
    display: flex;
    align-items: flex-start;
    flex-direction: column;
    padding-bottom: 2rem; }
    @media (min-width: 48em) {
      .cs-dashboard .create-account__box-b2c-b2b {
        flex-direction: row;
        align-items: center; } }
    .cs-dashboard .create-account__box-b2c-b2b .b2c-b2b_box {
      margin-top: 0.5rem; }
      @media (min-width: 48em) {
        .cs-dashboard .create-account__box-b2c-b2b .b2c-b2b_box {
          margin: 1rem; } }
  .cs-dashboard .form.create.account,
  .cs-dashboard .form-address-edit,
  .cs-dashboard .form-edit-account,
  .cs-dashboard .form.password.reset,
  .cs-dashboard .form.send.confirmation,
  .cs-dashboard .form.password.forget,
  .cs-dashboard #aw_giftcard__check_code_form {
    background: transparent;
    padding: 1.5rem;
    background-color: #fff;
    border-radius: 7px; }
    @media (min-width: 48em) {
      .cs-dashboard .form.create.account,
      .cs-dashboard .form-address-edit,
      .cs-dashboard .form-edit-account,
      .cs-dashboard .form.password.reset,
      .cs-dashboard .form.send.confirmation,
      .cs-dashboard .form.password.forget,
      .cs-dashboard #aw_giftcard__check_code_form {
        width: 100%; } }
    .cs-dashboard .form.create.account br,
    .cs-dashboard .form-address-edit br,
    .cs-dashboard .form-edit-account br,
    .cs-dashboard .form.password.reset br,
    .cs-dashboard .form.send.confirmation br,
    .cs-dashboard .form.password.forget br,
    .cs-dashboard #aw_giftcard__check_code_form br {
      display: none; }
    .cs-dashboard .form.create.account .fullname .label,
    .cs-dashboard .form-address-edit .fullname .label,
    .cs-dashboard .form-edit-account .fullname .label,
    .cs-dashboard .form.password.reset .fullname .label,
    .cs-dashboard .form.send.confirmation .fullname .label,
    .cs-dashboard .form.password.forget .fullname .label,
    .cs-dashboard #aw_giftcard__check_code_form .fullname .label {
      text-align: left;
      width: 100%; }
    .cs-dashboard .form.create.account .fullname > .label,
    .cs-dashboard .form-address-edit .fullname > .label,
    .cs-dashboard .form-edit-account .fullname > .label,
    .cs-dashboard .form.password.reset .fullname > .label,
    .cs-dashboard .form.send.confirmation .fullname > .label,
    .cs-dashboard .form.password.forget .fullname > .label,
    .cs-dashboard #aw_giftcard__check_code_form .fullname > .label {
      width: 1px; }
    .cs-dashboard .form.create.account .fullname .control,
    .cs-dashboard .form-address-edit .fullname .control,
    .cs-dashboard .form-edit-account .fullname .control,
    .cs-dashboard .form.password.reset .fullname .control,
    .cs-dashboard .form.send.confirmation .fullname .control,
    .cs-dashboard .form.password.forget .fullname .control,
    .cs-dashboard #aw_giftcard__check_code_form .fullname .control {
      width: 100%; }
    .cs-dashboard .form.create.account .action.primary,
    .cs-dashboard .form-address-edit .action.primary,
    .cs-dashboard .form-edit-account .action.primary,
    .cs-dashboard .form.password.reset .action.primary,
    .cs-dashboard .form.send.confirmation .action.primary,
    .cs-dashboard .form.password.forget .action.primary,
    .cs-dashboard #aw_giftcard__check_code_form .action.primary {
      font-size: 1.4rem; }
    .cs-dashboard .form.create.account .back,
    .cs-dashboard .form-address-edit .back,
    .cs-dashboard .form-edit-account .back,
    .cs-dashboard .form.password.reset .back,
    .cs-dashboard .form.send.confirmation .back,
    .cs-dashboard .form.password.forget .back,
    .cs-dashboard #aw_giftcard__check_code_form .back {
      display: none; }
    .cs-dashboard .form.create.account .fieldset,
    .cs-dashboard .form-address-edit .fieldset,
    .cs-dashboard .form-edit-account .fieldset,
    .cs-dashboard .form.password.reset .fieldset,
    .cs-dashboard .form.send.confirmation .fieldset,
    .cs-dashboard .form.password.forget .fieldset,
    .cs-dashboard #aw_giftcard__check_code_form .fieldset {
      margin-bottom: 2rem; }
    .cs-dashboard .form.create.account .fieldset-fullname,
    .cs-dashboard .form-address-edit .fieldset-fullname,
    .cs-dashboard .form-edit-account .fieldset-fullname,
    .cs-dashboard .form.password.reset .fieldset-fullname,
    .cs-dashboard .form.send.confirmation .fieldset-fullname,
    .cs-dashboard .form.password.forget .fieldset-fullname,
    .cs-dashboard #aw_giftcard__check_code_form .fieldset-fullname {
      margin-bottom: 0; }
  .cs-dashboard .form.create.account {
    background: #fff;
    border-radius: 7px; }
    @media (min-width: 48em) {
      .cs-dashboard .form.create.account {
        padding-left: 4.5rem;
        padding-top: 4.5rem;
        padding-bottom: 4.5rem; } }
  .cs-dashboard .addresses {
    width: 100%; }
  .cs-dashboard .block-addresses-list + .actions-toolbar {
    background: transparent; }
  @media (max-width: 47.99em) {
    .cs-dashboard .box-billing-address {
      margin-bottom: 2rem; } }
  .cs-dashboard .table-additional-addresses-items .col.state {
    display: none; }
  @media (min-width: 48.01em) {
    .cs-dashboard .table-additional-addresses-items th:first-child,
    .cs-dashboard .table-additional-addresses-items td:first-child {
      padding-left: 0 !important; } }
  @media (min-width: 48.01em) {
    .cs-dashboard .table-additional-addresses-items th:last-child,
    .cs-dashboard .table-additional-addresses-items td:last-child {
      padding-right: 0 !important; } }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.delete {
    width: 100%; }
    .cs-dashboard .table-additional-addresses-items .action.delete:before {
      display: none !important; } }

@media (min-width: 64em) and (max-width: 79.99em) {
  .cs-dashboard .table-additional-addresses-items .action.edit {
    margin-right: 0;
    width: 100%; } }
  .cs-dashboard .form-newsletter-manage {
    background: transparent; }
    .cs-dashboard .form-newsletter-manage .fieldset {
      margin-bottom: 1rem; }
  .cs-dashboard__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-dashboard__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-dashboard__button, .cs-dashboard__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-dashboard__button *, .cs-dashboard__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-dashboard__button:hover:not([disabled]), .cs-dashboard__button:focus:not([disabled]), .cs-dashboard__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-dashboard__button:hover:not([disabled]) *, .cs-dashboard__button:focus:not([disabled]) *, .cs-dashboard__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-dashboard__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
  .cs-dashboard__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal; }
  .cs-dashboard__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    display: none; }
  .cs-dashboard__wishlist-guest {
    padding-top: 2rem; }
  .cs-dashboard__wishlist-guest-copy {
    padding-left: 1rem;
    position: relative; }
  .cs-dashboard__wishlist-guest-copy-icon {
    width: 2rem;
    height: 2rem;
    fill: #696969;
    position: absolute; }

.cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
  padding-top: 2rem;
  padding-bottom: 2rem; }
  @media (min-width: 64em) {
    .cs-container--create-account-page, .cs-container--login-page, .cs-container--success-page, .cs-container--logout-page, .cs-container--contact-page {
      padding-top: 3rem;
      padding-bottom: 5rem; } }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-container--my-account-page {
    padding-left: 1.5rem;
    padding-right: 1.5rem; } }

.account .table-wrapper:last-child {
  margin-bottom: 0; }

.account .table-wrapper .action {
  margin-right: 1.5rem; }

.account .table-wrapper .action:last-child {
  margin-right: 0; }

.block p:last-child {
  margin: 0; }

.block .box-actions {
  margin-top: 0.5rem; }

.account.page-print .items-qty {
  margin: 0;
  padding: 0;
  list-style: none; }

.cs-dashboard .form-address-edit {
  background-color: #fff;
  border-radius: 7px; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-form, .cs-form__fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.cs-form__field + .cs-form__field {
  margin-top: 1em; }

.cs-form--disabled {
  opacity: 0.6; }

.cs-form__button {
  display: inline-block;
  font-size: 1.8rem;
  font-weight: 700;
  text-align: center;
  position: relative;
  line-height: 1.275em;
  margin: 0;
  text-transform: none;
  padding: 0.75em 1em;
  box-sizing: border-box;
  transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
  vertical-align: middle;
  z-index: 5; }
  .cs-form__button:hover, .cs-form__button:focus, .cs-form__button:active {
    background-color: #7e57c2 !important; }
  .cs-form__button:before, .cs-form__button:after {
    content: '';
    position: absolute;
    top: -1px;
    bottom: -1px;
    right: -1px; }
  .cs-form__button:before {
    width: 3.4em;
    border-radius: 0 200px 200px 0;
    z-index: -1;
    background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
  .cs-form__button:after {
    width: 3em;
    min-width: auto;
    background-color: #4d2c91;
    transition: width 0.25s linear;
    z-index: -2;
    border-radius: 200px; }
  .cs-form__button:hover:after {
    width: calc(100% + 2px); }
  .cs-form__button::-moz-focus-inner {
    border: 0;
    padding: 0;
    margin: 0; }
  .cs-form__button, .cs-form__button:visited {
    cursor: pointer;
    border-radius: 200px;
    outline-offset: 1px;
    text-decoration: none;
    box-shadow: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #7e57c2; }
    .cs-form__button *, .cs-form__button:visited * {
      color: #fff;
      fill: #fff; }
  .cs-form__button:hover:not([disabled]), .cs-form__button:focus:not([disabled]), .cs-form__button:active:not([disabled]) {
    box-shadow: none;
    outline: none;
    text-decoration: none;
    border: 1px solid transparent;
    color: #fff;
    background-color: #4d2c91; }
    .cs-form__button:hover:not([disabled]) *, .cs-form__button:focus:not([disabled]) *, .cs-form__button:active:not([disabled]) * {
      color: #fff;
      fill: #fff; }
  .cs-form__button[disabled] {
    opacity: 0.65;
    cursor: auto; }

.cs-form__button-span {
  margin-top: 0;
  z-index: 1;
  font-weight: 700;
  vertical-align: baseline;
  display: inline-block;
  line-height: 1.275em;
  letter-spacing: normal;
  padding-left: 0;
  padding-right: 4em; }

.cs-form__button-icon {
  max-width: 1em;
  max-height: 1.8rem;
  z-index: 2;
  height: auto;
  width: 100%;
  position: absolute;
  top: 50%;
  transform: translate3d(0, -50%, 0);
  margin-right: 0;
  right: 1em; }

.form,
.form .fieldset {
  border: 0;
  padding: 0;
  margin: 0; }

.form .field + .field {
  margin-top: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.password-strength-meter {
  font-size: 1.2rem;
  background-color: initial;
  border: none;
  border-top-width: 0;
  height: 3.2rem;
  line-height: 3.2rem;
  padding: 0 1rem;
  position: relative;
  z-index: 1;
  background-size: 2rem 0.7rem;
  background-repeat: no-repeat;
  background-position-y: 50%;
  background-position-x: calc(100% - 1rem), calc(100% - (2.5rem + 1rem)), calc(100% - (2.5rem * 2 + 1rem)), calc(100% - (2.5rem * 3 + 1rem)), calc(100% - (2.5rem * 4 + 1rem)), calc(100% - (2.5rem * 5 + 1rem));
  background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"); }
  @media (max-width: 29.99em) {
    .password-strength-meter {
      font-size: 1rem;
      padding: 0 0.5rem; } }
  .password-strength-meter:before {
    display: none; }
  .password-weak .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-weak.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-weak.svg"); }
  .password-medium .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-medium.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-medium.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-medium.svg"); }
  .password-strong .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-strong.svg"); }
  .password-very-strong .password-strength-meter {
    background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"), url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/icons/forms/icon-password-strength-meter-very-strong.svg"); }
  @media (max-width: 29.99em) {
    .password-strength-meter {
      background-size: 1.5rem 0.5rem;
      background-position-x: calc(100% - 1rem), calc( 100% - ( 1.7rem + 1rem )), calc( 100% - ( 1.7rem * 2 + 1rem )), calc( 100% - ( 1.7rem * 3 + 1rem )), calc( 100% - ( 1.7rem * 4 + 1rem )), calc( 100% - ( 1.7rem * 5 + 1rem )); } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-review {
  font-size: 1.4rem; }
  .cs-review__title {
    font-weight: 700;
    margin: 0 0 0.7rem;
    color: #455a64; }
  .cs-review__rating, .cs-review__ratings {
    margin: 0 0 2rem;
    padding: 0; }
  .cs-review__compound-rating {
    list-style-type: none;
    display: flex;
    justify-content: space-between;
    max-width: 20rem;
    margin-bottom: 0.3em; }
    .cs-review__compound-rating:last-child {
      margin-bottom: 0; }
  .cs-review__meta {
    margin: 0 0 2rem;
    font-size: 0.9em; }
    .cs-review__meta--variant-support {
      display: flex;
      align-items: center; }
  .cs-review__meta-item {
    vertical-align: middle;
    padding: 0 1rem;
    line-height: 1em;
    border-right: 1px solid #dcdcdc; }
    .cs-review__meta-item:first-child {
      padding-left: 0; }
    .cs-review__meta-item:last-child {
      border-right: none; }
  .cs-review__author {
    color: #455a64; }
  .cs-review__date {
    margin-left: -4px;
    color: #888; }
  .cs-review__variant {
    flex-grow: 1;
    padding: 0 1rem; }
    .cs-review__variant .swatch-attribute-options {
      margin-bottom: 0; }
    .cs-review__variant .swatch-option {
      cursor: default; }
  .cs-review__content {
    margin: 0;
    color: #888; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-reviews-summary {
  line-height: 1;
  display: flex;
  margin-bottom: 3rem;
  flex-wrap: wrap;
  flex: 1 0 100%;
  border-bottom: 1px solid #dcdcdc; }
  @media (min-width: 64em) {
    .cs-reviews-summary {
      flex: 0 0 35rem;
      margin-bottom: 0;
      margin-right: 2.5rem;
      padding-right: 2.5rem;
      border-right: 1px solid #dcdcdc;
      border-bottom: 0;
      align-content: flex-start; } }
  .cs-reviews-summary__note {
    font-size: 4rem;
    line-height: 100%;
    color: #455a64;
    font-weight: 300;
    margin-bottom: 0.5rem; }
  .cs-reviews-summary__note-right {
    color: #696969; }
  .cs-reviews-summary__all-count {
    width: 100%;
    margin: 1rem 0 2rem; }
  .cs-reviews-summary__button-wrapper {
    width: 100%;
    margin-top: 2.5rem;
    padding: 2.5rem 0;
    border-top: 1px solid #dcdcdc; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-reviews-summary__button-wrapper {
    margin-top: 0;
    border-top: 0; } }
  .cs-reviews-summary__button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5;
    font-size: 1.4rem; }
    .cs-reviews-summary__button:hover, .cs-reviews-summary__button:focus, .cs-reviews-summary__button:active {
      background-color: #7e57c2 !important; }
    .cs-reviews-summary__button:before, .cs-reviews-summary__button:after {
      content: '';
      position: absolute;
      top: -1px;
      bottom: -1px;
      right: -1px; }
    .cs-reviews-summary__button:before {
      width: 3.4em;
      border-radius: 0 200px 200px 0;
      z-index: -1;
      background: linear-gradient(0deg, transparent 0%, transparent 0%, #4d2c91 0%, #4d2c91 100%); }
    .cs-reviews-summary__button:after {
      width: 3em;
      min-width: auto;
      background-color: #4d2c91;
      transition: width 0.25s linear;
      z-index: -2;
      border-radius: 200px; }
    .cs-reviews-summary__button:hover:after {
      width: calc(100% + 2px); }
    .cs-reviews-summary__button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-reviews-summary__button, .cs-reviews-summary__button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-reviews-summary__button *, .cs-reviews-summary__button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-reviews-summary__button:hover:not([disabled]), .cs-reviews-summary__button:focus:not([disabled]), .cs-reviews-summary__button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-reviews-summary__button:hover:not([disabled]) *, .cs-reviews-summary__button:focus:not([disabled]) *, .cs-reviews-summary__button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-reviews-summary__button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 29.99em) {
      .cs-reviews-summary__button {
        width: 100%; } }
  .cs-reviews-summary__button-span {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-left: 0;
    padding-right: 4em; }
  .cs-reviews-summary__button-icon {
    max-width: 1em;
    max-height: 1.8rem;
    z-index: 2;
    height: auto;
    width: 100%;
    position: absolute;
    top: 50%;
    transform: translate3d(0, -50%, 0);
    margin-right: 0;
    right: 1em; }
  .cs-reviews-summary__stars {
    margin-right: 1rem;
    flex: 1 0 auto; }
    @media (min-width: 23.125em) {
      .cs-reviews-summary__stars {
        flex: 0 1 auto;
        margin-right: 4rem; } }
    @media (min-width: 48em) {
      .cs-reviews-summary__stars {
        flex: 0 1 100%; } }
  .cs-reviews-summary__bars {
    font-size: 1.4rem;
    list-style: none inside none;
    padding: 0;
    margin: 2.5rem 0 0;
    flex-grow: 1;
    color: #696969;
    max-width: 40rem;
    width: 100%; }
    @media (min-width: 23.125em) {
      .cs-reviews-summary__bars {
        margin-top: 0;
        width: auto; } }
    @media (min-width: 48em) {
      .cs-reviews-summary__bars {
        margin-top: 2.5rem; } }
  .cs-reviews-summary__bar {
    position: relative;
    vertical-align: bottom;
    display: flex;
    align-items: center;
    margin: 0 0 1rem 0; }
    .cs-reviews-summary__bar:last-child {
      margin-bottom: 0; }
    .cs-reviews-summary__bar-label {
      flex: 0 1 3.5em; }
    .cs-reviews-summary__bar-count {
      width: 1.5em;
      text-align: right; }
    .cs-reviews-summary__bar-progress {
      flex: 1 0 auto;
      position: relative;
      display: inline-block;
      min-width: 9rem;
      height: 0.9em;
      margin: 0 0.8rem 0 0.7rem;
      background: #f0f0f0; }
      .cs-reviews-summary__bar-progress-inner {
        position: absolute;
        left: 0;
        top: 0;
        height: inherit;
        background: #fedfa4; }
  .cs-reviews-summary__ratings-averages {
    list-style-type: none;
    width: 100%;
    margin: 2.5rem 0 0;
    padding: 2.5rem 0 0;
    border-top: 1px solid #dcdcdc;
    line-height: 1.43; }
    .cs-reviews-summary__ratings-averages-item {
      width: 100%;
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      margin-bottom: 0.3em; }
      @media (min-width: 23.125em) {
        .cs-reviews-summary__ratings-averages-item {
          max-width: 25rem; } }
      @media (min-width: 48em) {
        .cs-reviews-summary__ratings-averages-item {
          max-width: 40rem; } }
      .cs-reviews-summary__ratings-averages-item:last-child {
        margin-bottom: 0; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-reviews {
  flex: 1 1; }
  @media (max-width: 63.99em) {
    .cs-reviews {
      border-bottom: 1px solid #dcdcdc; } }
  .cs-reviews__title {
    background: #f0f0f0; }
    @media (min-width: 48em) {
      .cs-reviews__title {
        background: none;
        padding: 0; } }
  .cs-reviews__list {
    list-style: none;
    margin: 0;
    padding: 0; }
  .cs-reviews__label {
    float: left;
    line-height: 4rem; }
  .cs-reviews__item {
    padding: 0 0 2.5rem;
    margin: 0 0 2.5rem;
    border-bottom: 1px solid #dcdcdc;
    list-style: none; }
    .cs-reviews__item:last-of-type {
      border-bottom: 0;
      margin-bottom: 0; }
  .cs-reviews__form {
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    margin: 2.5rem 0; }
    @media (min-width: 64em) {
      .cs-reviews__form {
        background: #f0f0f0;
        padding: 3rem; } }
    .cs-reviews__form .swatch-opt {
      margin-bottom: 1.5em;
      font-size: 1.8rem;
      width: 100%; }
      .cs-reviews__form .swatch-opt .swatch-attribute {
        flex-direction: column;
        align-items: flex-start !important; }
      .cs-reviews__form .swatch-opt .swatch-attribute-label {
        font-weight: 700;
        font-size: 0.85em;
        width: 100%;
        text-transform: none;
        color: inherit;
        padding-bottom: 0.5rem; }
        .cs-reviews__form .swatch-opt .swatch-attribute-label:after {
          content: ' *'; }
      .cs-reviews__form .swatch-opt .swatch-attribute-options {
        margin-bottom: 0; }
  .cs-reviews__headline {
    width: 100%;
    margin: 0 0 1.4em;
    text-align: left;
    font-size: 1.8rem; }
  .cs-reviews__product-name {
    font-weight: 200; }
  .cs-reviews__rating-item:not(:first-of-type) {
    margin-top: 1em; }
  .cs-reviews__options {
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 1.5em;
    font-size: 1.8rem; }
    @media (min-width: 64em) {
      .cs-reviews__options {
        width: 50%;
        padding-right: 3rem;
        border-right: 1px solid #dcdcdc; } }
  .cs-reviews__ratings {
    width: 100%; }
    .cs-reviews__ratings:has(.cs-star-rating__form-star--active) .mage-error {
      display: none; }
  .cs-reviews__fieldset {
    width: 100%;
    margin-bottom: 1.5em;
    text-align: left;
    box-sizing: border-box; }
    @media (min-width: 64em) {
      .cs-reviews__fieldset {
        width: 50%;
        padding-left: 3rem; } }
  .cs-reviews__submit {
    width: 100%;
    display: flex;
    justify-content: flex-start; }
    @media (min-width: 64em) {
      .cs-reviews__submit {
        justify-content: center; } }
  .cs-reviews__submit-button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-reviews__submit-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-reviews__submit-button, .cs-reviews__submit-button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #7e57c2; }
      .cs-reviews__submit-button *, .cs-reviews__submit-button:visited * {
        color: #fff;
        fill: #fff; }
    .cs-reviews__submit-button:hover:not([disabled]), .cs-reviews__submit-button:focus:not([disabled]), .cs-reviews__submit-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid transparent;
      color: #fff;
      background-color: #4d2c91; }
      .cs-reviews__submit-button:hover:not([disabled]) *, .cs-reviews__submit-button:focus:not([disabled]) *, .cs-reviews__submit-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-reviews__submit-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    @media (max-width: 30em) {
      .cs-reviews__submit-button {
        width: 100%; } }
  .cs-reviews__rating-control {
    box-sizing: content-box;
    border: 2px solid #dcdcdc;
    border-radius: 7px;
    padding: 0.75em 1em;
    height: 1.275em;
    background: transparent;
    margin: 0 0 0.2em;
    display: flex;
    align-items: center; }
    .cs-reviews__rating-control input[type='radio'],
    .cs-reviews__rating-control .cs-reviews__rate-stars span {
      border: 0;
      clip: rect(0 0 0 0);
      height: 1px;
      margin: -1px;
      overflow: hidden;
      padding: 0;
      position: absolute;
      width: 1px;
      white-space: nowrap;
      /* 1 */ }
  .cs-reviews__rate-stars {
    box-sizing: border-box;
    order: 0; }
  .cs-reviews__rate-feedback {
    order: 1;
    font-size: 0.85em;
    line-height: 0.9em;
    color: #888;
    font-weight: 700;
    margin-left: 1.5rem;
    display: flex;
    align-items: center; }
  .cs-reviews__review-field {
    min-height: 10rem;
    resize: vertical; }
  .cs-reviews .cs-pagination__content {
    justify-content: center;
    margin: 2.5rem 0; }
  .cs-reviews--load-more {
    padding-bottom: 3rem; }
    @media (min-width: 48em) {
      .cs-reviews--load-more .cs-reviews__content {
        position: relative; } }
    .cs-reviews--load-more .cs-reviews__button {
      display: inline-block;
      font-size: 1.8rem;
      font-weight: 700;
      text-align: center;
      position: relative;
      line-height: 1.275em;
      margin: 0;
      text-transform: none;
      padding: 0.75em 1em;
      box-sizing: border-box;
      transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
      vertical-align: middle;
      z-index: 5;
      position: relative;
      margin: 2rem 0 0.5rem;
      padding-right: 4rem;
      position: relative; }
      .cs-reviews--load-more .cs-reviews__button::-moz-focus-inner {
        border: 0;
        padding: 0;
        margin: 0; }
      .cs-reviews--load-more .cs-reviews__button, .cs-reviews--load-more .cs-reviews__button:visited {
        cursor: pointer;
        border-radius: 200px;
        outline-offset: 1px;
        text-decoration: none;
        box-shadow: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #7e57c2; }
        .cs-reviews--load-more .cs-reviews__button *, .cs-reviews--load-more .cs-reviews__button:visited * {
          color: #fff;
          fill: #fff; }
      .cs-reviews--load-more .cs-reviews__button:hover:not([disabled]), .cs-reviews--load-more .cs-reviews__button:focus:not([disabled]), .cs-reviews--load-more .cs-reviews__button:active:not([disabled]) {
        box-shadow: none;
        outline: none;
        text-decoration: none;
        border: 1px solid transparent;
        color: #fff;
        background-color: #4d2c91; }
        .cs-reviews--load-more .cs-reviews__button:hover:not([disabled]) *, .cs-reviews--load-more .cs-reviews__button:focus:not([disabled]) *, .cs-reviews--load-more .cs-reviews__button:active:not([disabled]) * {
          color: #fff;
          fill: #fff; }
      .cs-reviews--load-more .cs-reviews__button[disabled] {
        opacity: 0.65;
        cursor: auto; }
      .cs-reviews--load-more .cs-reviews__button:before, .cs-reviews--load-more .cs-reviews__button:after {
        content: '';
        position: absolute;
        top: 50%;
        width: 1rem;
        height: 1px;
        left: auto;
        background-color: #fff;
        transition: background-color 0.15s linear;
        backface-visibility: hidden; }
      .cs-reviews--load-more .cs-reviews__button:hover:before, .cs-reviews--load-more .cs-reviews__button:hover:after {
        background-color: #888; }
      .cs-reviews--load-more .cs-reviews__button[aria-expanded="true"]:before, .cs-reviews--load-more .cs-reviews__button[aria-expanded="true"]:after {
        background-color: #888; }
      .cs-reviews--load-more .cs-reviews__button:before {
        transform: rotate(45deg) translate3d(0, 0, 0);
        right: calc( 1.5rem + 1.2rem - 0.4rem); }
      .cs-reviews--load-more .cs-reviews__button:after {
        transform: rotate(-45deg) translate3d(0, 0, 0);
        right: 1.6rem; }
      .cs-reviews--load-more .cs-reviews__button:hover:after, .cs-reviews--load-more .cs-reviews__button:hover:before {
        color: #fff; }
      .cs-reviews--load-more .cs-reviews__button span {
        margin-top: 0;
        z-index: 1;
        font-weight: 700;
        vertical-align: baseline;
        display: inline-block;
        line-height: 1.275em;
        letter-spacing: normal; }
      .cs-reviews--load-more .cs-reviews__button .count {
        display: inline-flex;
        padding-left: 0.5rem; }
        .cs-reviews--load-more .cs-reviews__button .count:before {
          content: '('; }
        .cs-reviews--load-more .cs-reviews__button .count:after {
          content: ')'; }
      .cs-reviews--load-more .cs-reviews__button .loading-mask {
        position: absolute;
        width: 100%;
        height: 100%;
        background-image: url("../../frontend/Creativestyle/theme-papilart/pl_PL/images/spinner.svg");
        background-repeat: no-repeat;
        background-position: center;
        background-size: 2.5rem 2.5rem; }
        .cs-reviews--load-more .cs-reviews__button .loading-mask img {
          display: none; }
    .cs-reviews--load-more .cs-reviews__count {
      color: #696969; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
.cs-stack-nav__trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 1.5rem;
  background-color: #f0f0f0;
  cursor: pointer;
  font-size: 1.6rem;
  font-weight: 700; }
  @media (min-width: 48em) {
    .cs-stack-nav__trigger {
      display: none; } }
  .cs-stack-nav__trigger-icon {
    margin-left: 1.5rem;
    width: 6px;
    height: 10px;
    fill: #888;
    transform: rotate(90deg);
    transition: transform 0.3s; }
  .cs-stack-nav__trigger[aria-expanded='true'] .cs-stack-nav__trigger-icon {
    transform: rotate(-90deg); }

@media (max-width: 47.99em) {
  .cs-stack-nav__content {
    background-color: #f0f0f0; } }

@media (min-width: 48em) {
  .cs-stack-nav__content {
    border-radius: 7px;
    background-color: #fff;
    box-shadow: none;
    padding: 2rem 0; } }

.cs-stack-nav__list {
  margin: 0;
  padding: 0;
  list-style: none; }
  .cs-stack-nav__list > svg,
  .cs-stack-nav__list > img {
    display: none; }

.cs-stack-nav__nav .cs-stack-nav__list li {
  margin: 0;
  overflow: hidden;
  white-space: nowrap; }

.cs-stack-nav__nav .cs-stack-nav__list li a,
.cs-stack-nav__nav .cs-stack-nav__list li strong {
  font-size: 1.4rem;
  font-weight: 300;
  color: #696969;
  border-left: none;
  padding: 0.75rem 1.5rem;
  display: block;
  margin-bottom: 0.1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }
  @media (min-width: 48em) {
    .cs-stack-nav__nav .cs-stack-nav__list li a,
    .cs-stack-nav__nav .cs-stack-nav__list li strong {
      padding: 0.5rem 1.8rem 0.5rem 2.5rem; } }
  .cs-stack-nav__nav .cs-stack-nav__list li a svg,
  .cs-stack-nav__nav .cs-stack-nav__list li a img,
  .cs-stack-nav__nav .cs-stack-nav__list li strong svg,
  .cs-stack-nav__nav .cs-stack-nav__list li strong img {
    width: 2rem;
    height: 1.4rem;
    margin-left: 0.3rem;
    transform: translateY(0.1rem); }

.cs-stack-nav__nav .cs-stack-nav__list li a:hover {
  background-color: #dcdcdc;
  color: #455a64; }
  @media (min-width: 48em) {
    .cs-stack-nav__nav .cs-stack-nav__list li a:hover {
      background-color: #f0f0f0; } }

.cs-stack-nav__nav .cs-stack-nav__list li.current strong {
  position: relative;
  border-left: none;
  border-color: transparent;
  font-weight: 700;
  color: #455a64; }
  .cs-stack-nav__nav .cs-stack-nav__list li.current strong:hover {
    color: #455a64; }
  .cs-stack-nav__nav .cs-stack-nav__list li.current strong:before {
    position: absolute;
    left: 0;
    top: 0;
    content: '';
    display: block;
    width: 0.5rem;
    height: 100%;
    background: #11a099; }

.cs-stack-nav__nav .item .delimiter {
  border-top: 1px solid #dcdcdc;
  display: block;
  margin: 1rem 1.8rem; }

.cs-stack-nav__nav .cs-stack-nav__list li.current a {
  padding: 0;
  margin-bottom: 0; }

@media (min-width: 48em) {
  .cs-stack-nav__nav {
    display: block;
    position: relative; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-sticky-block {
  box-sizing: border-box; }
  @media (min-width: 64em) {
    .cs-sticky-block {
      position: sticky;
      z-index: 10;
      top: 1em; } }
  @media (min-width: 48em) {
    .cs-sticky-block--pdp {
      position: relative;
      z-index: 3;
      margin-right: calc(15px - 0.5rem); }
      .page-product-bundle .cs-sticky-block--pdp {
        margin-right: 0; } }
  @media (min-width: 64em) {
    .cs-sticky-block--pdp {
      top: 3rem;
      margin-right: 15px; }
      .page-product-bundle .cs-sticky-block--pdp {
        margin-right: 0; } }
  @media screen and (min-width: 1230px) {
    .cs-sticky-block--pdp {
      margin-right: 0; } }
  @media (min-width: 48em) {
    .cs-sticky-block--no-mobile {
      position: sticky;
      top: 8.5rem; } }
  @media (min-width: 64em) {
    .cs-sticky-block--no-mobile {
      top: 1.5rem; } }

/** Styles form _tables.less of theme blank are moved here.
   * For some tables there is mobile layout applied also for tablet resolutions
   * Variables for typograpy, colors, border etc. are added
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Hide only visually, but have it available for screen readers:
 * https://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 *
 * 1. For long content, line feeds are not interpreted as spaces and small width
 *    causes content to wrap 1 word per line:
 *    https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe
 *
 * @see https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css#L130
 */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable no-descending-specificity */
.table-wrapper {
  margin-bottom: 2rem; }
  @media (max-width: 47.99em) {
    .table-wrapper {
      border: none;
      display: block; } }
  @media (min-width: 48em) {
    .table-wrapper.cart .table-wrapper.cart {
      border-top: none; } }
  .table-wrapper.grouped tbody:last-child td {
    border-bottom: none; }

.table {
  border-bottom: 1px solid #dcdcdc;
  max-width: 100%;
  width: 100%;
  background: transparent; }
  .table > caption {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    white-space: nowrap;
    /* 1 */ }
  .table:not(.totals):not(.table-totals) {
    border: none; }
    .table:not(.totals):not(.table-totals) td {
      border: none;
      padding: 0.8rem 1rem; }
    .table:not(.totals):not(.table-totals) thead {
      border-bottom: 2px solid #dcdcdc; }
      .table:not(.totals):not(.table-totals) thead th {
        font-size: 1.4rem;
        text-transform: none;
        color: #455a64;
        font-weight: normal; }
    .table:not(.totals):not(.table-totals) tbody td {
      font-size: 1.4rem;
      color: #455a64;
      font-weight: 300;
      border-bottom: none;
      border-left: none; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: none; } }
      .table:not(.totals):not(.table-totals) tbody td.actions a + a:before {
        margin: 0 0.7rem 0 0.5rem;
        content: '';
        display: inline-block;
        width: 1px;
        height: 1.4rem;
        border-right: 2px solid #dcdcdc;
        vertical-align: middle; }
      .table:not(.totals):not(.table-totals) tbody td:first-child {
        border-left: none;
        border-top-left-radius: 7px;
        border-bottom-left-radius: 7px; }
      .table:not(.totals):not(.table-totals) tbody td:last-child {
        border-top-right-radius: 7px;
        border-bottom-right-radius: 7px; }
    @media (max-width: 63.99em) {
      .account .table:not(.totals):not(.table-totals) tbody tr:first-child td {
        padding-top: 0; } }
    .table:not(.totals):not(.table-totals) tbody tr:nth-child(even) {
      background: transparent; }
    .table:not(.totals):not(.table-totals) tfoot {
      font-size: 1.4rem; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot {
          background: #f0f0f0; } }
      .table:not(.totals):not(.table-totals) tfoot .mark {
        text-align: right; }
      @media (max-width: 47.99em) {
        .table:not(.totals):not(.table-totals) tfoot .amount {
          text-align: right; } }
  .table .price-excluding-tax,
  .table .price-including-tax,
  .table .items-qty,
  .table .product-item-name {
    font-size: 1.4rem;
    line-height: inherit; }

@media (max-width: 47.99em) {
  .table-wrapper {
    overflow-x: auto;
    overflow-y: hidden;
    width: 100%;
    position: relative; }
    .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) {
      border: none;
      font-size: 1.4rem;
      padding: 0; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals):last-child {
        padding-bottom: 1.2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) thead {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td {
        border: none;
        display: block;
        font-size: 1.4rem;
        padding: 0.2rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:first-child {
          padding-top: 0rem; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td:last-child {
          padding-bottom: 1rem; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions {
          border-bottom: 1px solid #dcdcdc; } }
      @media (max-width: 47.99em) and (max-width: 63.99em) {
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tbody td.actions:before {
          border: 0;
          clip: rect(0 0 0 0);
          height: 1px;
          margin: -1px;
          overflow: hidden;
          padding: 0;
          position: absolute;
          width: 1px;
          white-space: nowrap;
          /* 1 */ } }

@media (max-width: 47.99em) {
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot {
        display: block; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot th {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: left;
          width: 70%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot td {
          box-sizing: border-box;
          float: left;
          padding-left: 0;
          padding-right: 0;
          text-align: right;
          width: 30%; }
        .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr {
          display: block; }
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child th,
          .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals) tfoot tr:first-child td {
            padding-top: 2rem; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody th {
        display: none; }
      .table-wrapper .table:not(.comparison):not(.totals):not(.table-totals).additional-attributes tbody td:last-child {
        border: none;
        padding: 0 0 0.5rem; }
  .data-table-definition-list thead {
    display: none; }
  .data-table-definition-list tbody th {
    padding-bottom: 0; }
  .data-table-definition-list tbody th,
  .data-table-definition-list tbody td {
    display: block;
    padding-left: 0;
    padding-right: 0; } }

.table-wrapper.cart,
.account .table-wrapper {
  overflow-x: auto;
  overflow-y: hidden;
  width: 100%;
  position: relative; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .table-wrapper.cart .table,
  .account .table-wrapper .table {
    border: none;
    font-size: 1.4rem;
    padding: 0; }
    .table-wrapper.cart .table:last-child,
    .account .table-wrapper .table:last-child {
      padding-bottom: 1.2rem; }
    .table-wrapper.cart .table thead,
    .account .table-wrapper .table thead {
      display: none; }
    .table-wrapper.cart .table tbody td,
    .account .table-wrapper .table tbody td {
      border: none;
      display: block;
      font-size: 1.4rem;
      padding: 0.2rem; }
      .table-wrapper.cart .table tbody td:first-child,
      .account .table-wrapper .table tbody td:first-child {
        padding-top: 0rem; }
      .table-wrapper.cart .table tbody td:last-child,
      .account .table-wrapper .table tbody td:last-child {
        padding-bottom: 1rem; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions,
      .account .table-wrapper .table tbody td.actions {
        border-bottom: 1px solid #dcdcdc; } }
    @media (min-width: 48em) and (max-width: 63.99em) and (max-width: 63.99em) {
      .table-wrapper.cart .table tbody td.actions:before,
      .account .table-wrapper .table tbody td.actions:before {
        border: 0;
        clip: rect(0 0 0 0);
        height: 1px;
        margin: -1px;
        overflow: hidden;
        padding: 0;
        position: absolute;
        width: 1px;
        white-space: nowrap;
        /* 1 */ } }

@media (min-width: 48em) and (max-width: 63.99em) {
    .table-wrapper.cart .table tfoot,
    .account .table-wrapper .table tfoot {
      display: block; }
      .table-wrapper.cart .table tfoot th,
      .account .table-wrapper .table tfoot th {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: left;
        width: 70%; }
      .table-wrapper.cart .table tfoot td,
      .account .table-wrapper .table tfoot td {
        box-sizing: border-box;
        float: left;
        padding-left: 0;
        padding-right: 0;
        text-align: right;
        width: 30%; }
      .table-wrapper.cart .table tfoot tr,
      .account .table-wrapper .table tfoot tr {
        display: block; }
        .table-wrapper.cart .table tfoot tr:first-child th,
        .table-wrapper.cart .table tfoot tr:first-child td,
        .account .table-wrapper .table tfoot tr:first-child th,
        .account .table-wrapper .table tfoot tr:first-child td {
          padding-top: 2rem; } }

/* stylelint-enable */

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-toolbar {
  font-size: 1.2rem;
  font-weight: inherit;
  text-transform: uppercase; }
  @media (min-width: 48em) {
    .cs-toolbar {
      display: flex;
      align-items: center;
      justify-content: flex-start;
      flex-wrap: wrap !important; } }
  .cs-toolbar__item {
    margin: 0 0 1.5rem; }
    @media (min-width: 48em) {
      .cs-toolbar__item {
        margin: 0 0 1.5rem;
        padding: 0; }
        .cs-toolbar__item:first-child {
          padding-left: 0; }
        .cs-toolbar__item:last-child {
          padding-right: 0; } }
    @media (min-width: 64em) {
      .cs-toolbar__item--pagination {
        margin-left: auto; } }
    .cs-toolbar__item--limiter {
      display: flex;
      align-items: center; }
    .cs-toolbar__item--offcanvas {
      margin-right: 3rem;
      z-index: 1; }
  .cs-toolbar .field .label {
    font-weight: inherit;
    width: auto; }
  .cs-toolbar__filters-button {
    display: inline-block;
    font-size: 1.8rem;
    font-weight: 700;
    text-align: center;
    position: relative;
    line-height: 1.275em;
    margin: 0;
    text-transform: none;
    padding: 0.75em 1em;
    box-sizing: border-box;
    transition: background-color 0.5s, border-color 0.5s, fill 0.5s, color 0.5s;
    vertical-align: middle;
    z-index: 5; }
    .cs-toolbar__filters-button::before, .cs-toolbar__filters-button::after {
      content: none; }
    .cs-toolbar__filters-button::-moz-focus-inner {
      border: 0;
      padding: 0;
      margin: 0; }
    .cs-toolbar__filters-button, .cs-toolbar__filters-button:visited {
      cursor: pointer;
      border-radius: 200px;
      outline-offset: 1px;
      text-decoration: none;
      box-shadow: none;
      border: 1px solid #7e57c2;
      color: #7e57c2;
      background-color: #fff; }
      .cs-toolbar__filters-button *, .cs-toolbar__filters-button:visited * {
        color: #7e57c2;
        fill: #7e57c2; }
    .cs-toolbar__filters-button:hover:not([disabled]), .cs-toolbar__filters-button:focus:not([disabled]), .cs-toolbar__filters-button:active:not([disabled]) {
      box-shadow: none;
      outline: none;
      text-decoration: none;
      border: 1px solid #4d2c91;
      color: #fff;
      background-color: #4d2c91; }
      .cs-toolbar__filters-button:hover:not([disabled]) *, .cs-toolbar__filters-button:focus:not([disabled]) *, .cs-toolbar__filters-button:active:not([disabled]) * {
        color: #fff;
        fill: #fff; }
    .cs-toolbar__filters-button[disabled] {
      opacity: 0.65;
      cursor: auto; }
    .cs-toolbar__filters-button-icon {
      max-width: 1em;
      max-height: 1.8rem;
      z-index: 2;
      height: auto;
      width: 100%;
      position: absolute;
      top: 50%;
      transform: translate3d(0, -50%, 0);
      margin-left: 0;
      left: 1em;
      max-width: 2.3rem;
      max-height: 2.3rem; }
  .cs-toolbar__filters-button-label {
    margin-top: 0;
    z-index: 1;
    font-weight: 700;
    vertical-align: baseline;
    display: inline-block;
    line-height: 1.275em;
    letter-spacing: normal;
    padding-right: 0;
    padding-left: 4em; }

.toolbar-amount {
  margin: 0;
  white-space: nowrap; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
.cs-sorter {
  display: flex;
  align-items: center; }
  .cs-sorter__label {
    padding: 0 1rem 0 0;
    white-space: nowrap; }
  @media (min-width: 64em) {
    .cs-sorter__select {
      max-width: 18rem; } }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-limiter {
  display: flex;
  position: relative;
  margin: 0 1rem 0 0;
  align-items: center;
  flex-wrap: nowrap; }
  .cs-limiter__label,
  .field .cs-limiter__label {
    white-space: nowrap; }
    .cs-limiter__label--prefix,
    .field .cs-limiter__label--prefix {
      padding: 0 1rem 0 1rem; }
    .cs-limiter__label--suffix,
    .field .cs-limiter__label--suffix {
      padding: 0 0 0 1rem; }
  .cs-limiter__pagination {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-limiter__pagination-item {
    margin: 0;
    margin-top: -4px;
    padding: 0;
    border: 2px solid #dcdcdc;
    text-align: center;
    margin-left: -2px;
    overflow: hidden; }
    .cs-limiter__pagination-item:first-child {
      border-top-left-radius: 200px;
      border-bottom-left-radius: 200px;
      border-right-width: 1px; }
    .cs-limiter__pagination-item:last-child {
      border-top-right-radius: 200px;
      border-bottom-right-radius: 200px;
      border-left-width: 1px; }
  .cs-limiter__pagination-number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-limiter__pagination-number, .cs-limiter__pagination-number:visited {
      color: #696969;
      text-decoration: none; }
    .cs-limiter__pagination-number:hover, .cs-limiter__pagination-number:focus, .cs-limiter__pagination-number:active {
      border: 0;
      color: #455a64;
      background: inherit;
      text-decoration: inherit; }
    .cs-limiter__pagination-item--current .cs-limiter__pagination-number, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:hover, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:focus, .cs-limiter__pagination-item--current .cs-limiter__pagination-number:active {
      color: #7e57c2;
      background: #f0f0f0;
      cursor: default; }
  .cs-limiter select {
    min-width: 3rem;
    min-height: 3.5rem; }

.cs-dashboard .limiter-label,
.cs-dashboard .limiter-text {
  font-weight: 400;
  font-size: 1.4rem;
  margin-right: 0.5rem; }

.cs-dashboard .limiter-text {
  white-space: nowrap; }

.cs-dashboard .limiter-options {
  margin-right: 0.5rem; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/*
 * Function to get value from a list of values, based on side
 * @param {string} $variable: variable with a list of values (like paddings, margins etc.);
 * @param {string} $side: side (up / right / down / left) for which we want to get value
 * Example:
 * $component_padding: 1rem 2rem 3rem;
 * get-value-from-list($component_padding, 'right') // 2rem
 * get-value-from-list($component_padding, 'bottom') // 3rem
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
/* Radio and checkbox styling */
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-pagination {
  /**
     * Input mode
     */
  /**
     * Bullet points mode
     */ }
  .cs-pagination__content {
    display: flex;
    align-items: center; }
  .cs-pagination__prefix-label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-pagination__page-provider {
    display: flex;
    flex-wrap: nowrap;
    white-space: nowrap;
    align-items: center;
    width: auto; }
  .cs-pagination__page-provider-input.input-text {
    margin: 0;
    max-height: 3.5rem;
    width: 4.5em;
    text-align: center;
    font-size: 0.85em; }
  .cs-pagination__page-provider-label {
    padding-left: 1rem;
    width: auto !important; }
  .cs-pagination__items {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }
  .cs-pagination__item {
    margin: 0;
    margin-top: -4px;
    padding: 0;
    border: 2px solid #dcdcdc;
    text-align: center;
    margin-left: -2px;
    overflow: hidden; }
    .cs-pagination__item:first-child {
      border-top-left-radius: 200px;
      border-bottom-left-radius: 200px;
      border-right-width: 1px; }
    .cs-pagination__item:last-child {
      border-top-right-radius: 200px;
      border-bottom-right-radius: 200px;
      border-left-width: 1px; }
  .cs-pagination__number {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear; }
    .cs-pagination__number, .cs-pagination__number:visited {
      color: #696969;
      text-decoration: none; }
    .cs-pagination__number:hover, .cs-pagination__number:focus, .cs-pagination__number:active {
      border: 0;
      color: #455a64;
      background: inherit;
      text-decoration: inherit; }
    .cs-pagination__item--current .cs-pagination__number, .cs-pagination__item--current .cs-pagination__number:hover, .cs-pagination__item--current .cs-pagination__number:focus, .cs-pagination__item--current .cs-pagination__number:active {
      color: #7e57c2;
      background: #f0f0f0;
      cursor: default; }
  .cs-pagination__prev {
    margin-right: 1.5rem; }
  .cs-pagination__next {
    margin-left: 1.5rem; }
  .cs-pagination__action {
    display: flex;
    min-width: 3.5rem;
    min-height: 3.5rem;
    align-items: center;
    justify-content: center; }
  .cs-pagination__action-icon {
    width: 1.3rem;
    height: 2.4rem;
    fill: #7e57c2;
    transition: fill 0.15s linear; }
    .cs-pagination__action--disabled .cs-pagination__action-icon {
      fill: #dcdcdc; }
    .cs-pagination__action:not(.cs-pagination__action--disabled):hover .cs-pagination__action-icon,
    .cs-pagination__action:not(.cs-pagination__action--disabled):focus .cs-pagination__action-icon,
    .cs-pagination__action:not(.cs-pagination__action--disabled):active .cs-pagination__action-icon {
      fill: #142b9e; }

/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
@use 'sass:map';
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
/**
* Default project breakpoints - [em]
*/
/***
 * Remove browser's margins, paddings and list style rules
 */
/* stylelint-disable block-no-empty */
/* stylelint-enable */
.cs-viewmode-switcher {
  display: flex;
  align-items: center; }
  .cs-viewmode-switcher__label {
    margin: 0;
    padding: 0 1rem 0 0; }
  .cs-viewmode-switcher__modes {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: stretch; }

@media (min-width: 48em) and (max-width: 63.99em) {
  .cs-viewmode-switcher__modes {
    padding-left: 1rem; } }
  .cs-viewmode-switcher__mode {
    margin: 0;
    margin-top: -4px;
    padding: 0;
    border: 2px solid #dcdcdc;
    text-align: center;
    margin-left: -2px;
    overflow: hidden; }
    .cs-viewmode-switcher__mode:first-child {
      border-top-left-radius: 200px;
      border-bottom-left-radius: 200px;
      border-right-width: 1px; }
    .cs-viewmode-switcher__mode:last-child {
      border-top-right-radius: 200px;
      border-bottom-right-radius: 200px;
      border-left-width: 1px; }
  .cs-viewmode-switcher__mode-action {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 3.5rem;
    min-height: 3.5rem;
    border: 0;
    margin: 0;
    padding: 0.3em;
    background: #fff;
    cursor: pointer;
    line-height: 1;
    font-size: 1.2rem;
    font-weight: 400;
    transition: color 0.15s linear;
    height: 100%;
    padding-left: 0.7em;
    padding-right: 0.7em; }
    .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode-action:visited {
      color: #696969;
      text-decoration: none; }
    .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode-action:active {
      border: 0;
      color: #455a64;
      background: inherit;
      text-decoration: inherit; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:hover, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:focus, .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-action:active {
      color: #7e57c2;
      background: #f0f0f0;
      cursor: default; }
  .cs-viewmode-switcher__mode-icon {
    fill: currentColor; }
    .cs-viewmode-switcher__mode-icon--grid {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode-icon--list {
      width: 1.5rem;
      height: 1.1rem; }
    .cs-viewmode-switcher__mode--current .cs-viewmode-switcher__mode-icon {
      fill: #7e57c2; }
    .cs-viewmode-switcher__mode-icon + .cs-viewmode-switcher__mode-label {
      padding-left: 0.7rem; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL2N1c3RvbWVyLmNzcyIsInNvdXJjZXMiOlsid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb25maWcvYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYmFzZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbmZpZy9iYXNlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZm9udC1mYW1pbHkuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vX2xheW91dC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29udGFpbmVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9jb250YWluZXIvY29udGFpbmVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vbm9kZV9tb2R1bGVzL2luY2x1ZGUtbWVkaWEvZGlzdC9faW5jbHVkZS1tZWRpYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL01hZ2VudG9fVGhlbWUvd2ViL2Nzcy9zb3VyY2UvX2xheW91dC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbW9kdWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvdmlzdWFsbHktaGlkZGVuLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvTWFnZW50b19DdXN0b21lci93ZWIvY3NzL3NvdXJjZS9tb2R1bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL25hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL19zbGlkZXIvbmF2aWdhdGlvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL19zbGlkZXIvcGFnaW5hdGlvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9hZGR0b2NhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy91dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9idXR0b24vaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2FkZHRvY2FydC9hZGR0b2NhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9idXR0b24vbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2J1dHRvbi9hbmltYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYXV0aG9yaXphdGlvbi1saW5rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9hdXRob3JpemF0aW9uLWxpbmsvYXV0aG9yaXphdGlvbi1saW5rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2F1dG9jb21wbGV0ZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYmFkZ2UvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L3ZhcmlhYmxlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2JhZGdlL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvcmVzZXQtbGlzdC1zdHlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2JyZWFkY3J1bWJzL2JyZWFkY3J1bWJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2J1dHRvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NvbnRhaW5lci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jb29raWUtbWVzc2FnZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY29va2llLW1lc3NhZ2UvY29va2llLW1lc3NhZ2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vZGFpbHlkZWFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9kYWlseWRlYWwvZGFpbHlkZWFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Rpc3BsYXktY29udHJvbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZGlzcGxheS1jb250cm9sbGVyL2Rpc3BsYXktY29udHJvbGxlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9kcm9wZG93bi1zd2l0Y2hlci9kcm9wZG93bi1zd2l0Y2hlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9maWVsZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvZmllbGQvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2ZpZWxkL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZmllbGQvZmllbGQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Zvb3Rlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb290ZXItbGlua3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLWxpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2dvb2dsZS1yZWNhcHRjaGEuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL2dvb2dsZS1yZWNhcHRjaGEvZ29vZ2xlLXJlY2FwdGNoYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2dyaWQtbGF5b3V0L2dyaWQtbGF5b3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2dyaWQtbGF5b3V0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvcG9seS1mbHVpZC1zaXppbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vaGVhZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvaGVhZGVyL2hlYWRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zZWFyY2guc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9oZWFkZXIvc2VhcmNoL3NlYXJjaC5zY3NzIiwid2VicGFjazovL1tuYW1lXS91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRlci91c2VyLW5hdi91c2VyLW5hdi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3F0eS1jb3VudGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2hlYWRsaW5lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9ob29rLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9oZWFkbGluZS9oZWFkbGluZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2hlYWRsaW5lL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9sYXp5bG9hZC9sYXp5bG9hZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9saW5rcy1ibG9jay1hZGR0by5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbGlua3MtYmxvY2stYWRkdG8vbGlua3MtYmxvY2stYWRkdG8uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbG9nby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbG9nby9sb2dvLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21lc3NhZ2VzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvbWVzc2FnZXMvbWVzc2FnZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vbWluaWNhcnQtcHJvZHVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvbWluaWNhcnQtcHJvZHVjdC9taW5pY2FydC1wcm9kdWN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvaGlkZS1zY3JvbGxiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL21pbmljYXJ0L21pbmljYXJ0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9fc2xpZGVyL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL21vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL2FzcGVjdC1yYXRpby5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9uZXdzbGV0dGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9uZXdzbGV0dGVyL25ld3NsZXR0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLW5hdmlnYXRpb24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtbmF2aWdhdGlvbi9vZmZjYW52YXMtbmF2aWdhdGlvbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9vZmZjYW52YXMtdG9nZ2xlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMtdG9nZ2xlL29mZmNhbnZhcy10b2dnbGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9vZmZjYW52YXMvb2ZmY2FudmFzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhZ2UtYm90dG9tLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLWJvdHRvbS9wYWdlLWJvdHRvbS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlLXRpdGxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYWdlLXRpdGxlL3BhZ2UtdGl0bGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJpY2UtYm94LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L3ByaWNlLWJveC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvcHJpY2UtYm94L21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3QtdGlsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL3V0aWxzL3N0cmluZy10by1udW1iZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wcm9kdWN0LXRpbGUvcHJvZHVjdC10aWxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Byb2R1Y3RzLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Byb2R1Y3RzLWxpc3QvcHJvZHVjdHMtbGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvcXR5LWluY3JlbWVudC9xdHktaW5jcmVtZW50LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3NlbGVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3NsaWRlci9zbGlkZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc29jaWFsLW1lZGlhLWxpc3Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3NvY2lhbC1tZWRpYS1saXN0L3NvY2lhbC1tZWRpYS1saXN0LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3N0YXItcmF0aW5nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zd2F0Y2hlcy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvc3dhdGNoZXMvc3dhdGNoZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vdG9wYmFyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdG9wYmFyL3RvcGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdHlwb2dyYXBoeS90eXBvZ3JhcGh5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3ZpZGVvLXRlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdmlkZW8tdGVhc2VyL3ZpZGVvLXRlYXNlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS92aXN1YWxseS1oaWRkZW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vdmlzdWFsbHktaGlkZGVuLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2dyb3VwZWQtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vZ3JvdXBlZC10YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zaW1wbGUtdGFibGUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vc2ltcGxlLXRhYmxlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2dvLXRvcC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9nby10b3Auc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYmFja2dyb3VuZHMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYmFja2dyb3VuZHMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcHJvZHVjdC1tb2Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vcHJvZHVjdC1tb2Quc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYnV5Ym94LXNpZ24taW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYnV5Ym94LXNpZ24taW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vbmV3c2xldHRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9ob21lLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2hvbWUuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYmxvZy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9ibG9nLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2NoZWNrb3V0LWNhcnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vY2hlY2tvdXQtY2FydC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdWJjYXRlZ29yaWVzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3N1YmNhdGVnb3JpZXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYWJvdXQtdXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vYWJvdXQtdXMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vYjJjLWIyYi5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9iMmMtYjJiLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3BhcnRuZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL3BhcnRuZXJzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2IyYi1wYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2IyYi1wYWdlLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2hlYWRlci11c2VyLWFjY291bnQtZHJvcGRvd24uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vaGVhZGVyLXVzZXItYWNjb3VudC1kcm9wZG93bi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jdXN0b20tbW9kYWwuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vY3VzdG9tLW1vZGFsLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Zvcm0tcmVuZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvdmlzdWFsbHktaGlkZGVuL2Zvcm0tcmVuZGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3VuaXQtcHJpY2Uuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy92aXN1YWxseS1oaWRkZW4vdW5pdC1wcmljZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS93aXNobGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi93aXNobGlzdC5zY3NzIiwid2VicGFjazovL1tuYW1lXS9wYWdlYnVpbGRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3Zpc3VhbGx5LWhpZGRlbi9wYWdlYnVpbGRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9jYWxlbmRhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY2FsZW5kYXIvY2FsZW5kYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vY2FwdGNoYS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvY2FwdGNoYS9jYXB0Y2hhLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL2Rhc2hib2FyZC5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL2Rhc2hib2FyZC9kYXNoYm9hcmQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9wYWdlcy9sYXlvdXQvMmNvbHVtbnMtbGVmdC9taXhpbi5zY3NzIiwid2VicGFjazovL1tuYW1lXS9mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4vc3JjL2NvbXBvbmVudHMvZm9ybS9mb3JtLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9wYXNzd29yZC1zdHJlbmd0aC1tZXRlci9wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zY3NzIiwid2VicGFjazovL1tuYW1lXS9yZXZpZXcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Jldmlldy9yZXZpZXcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcmV2aWV3cy1zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9yZXZpZXdzLXN1bW1hcnkvcmV2aWV3cy1zdW1tYXJ5LnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Jldmlld3Muc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Jldmlld3MvcmV2aWV3cy5zY3NzIiwid2VicGFjazovL1tuYW1lXS9zdGFjay1uYXYuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3N0YWNrLW5hdi9zdGFjay1uYXYuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vc3RpY2t5LWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zdGlja3ktYmxvY2svc3RpY2t5LWJsb2NrLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy9zdGlja3ktYmxvY2svbWl4aW4uc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS90YWJsZS5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdGFibGUvaG9vay5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uL3NyYy9jb21wb25lbnRzL3RhYmxlL21peGluLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdL3Rvb2xiYXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvdG9vbGJhci5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdG9vbGJhci9hbW91bnQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb21wb25lbnRzL3Rvb2xiYXIvc29ydGVyLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90b29sYmFyL2hvb2tzLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90b29sYmFyL2xpbWl0ZXIuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy90b29sYmFyL21peGlucy5zY3NzIiwid2VicGFjazovL1tuYW1lXS8uLi90aGVtZS1jcmVhdGl2ZXNob3Avc3JjL2NvbXBvbmVudHMvdG9vbGJhci9wYWdpbmF0aW9uLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvY29tcG9uZW50cy90b29sYmFyL3ZpZXdtb2RlLXN3aXRjaGVyLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbi8vIEJyZWFrcG9pbnRzIGltcG9ydCBmcm9tIHZpZXcueG1sIFtweF1cbiRicmVha3BvaW50c19weDogZGVlcC1nZXQoJHZpZXcteG1sLCB2YXJzLCBNYWdlbnRvX1RoZW1lLCBicmVha3BvaW50cyk7XG4kYnJlYWtwb2ludHNfZW06ICgpO1xuXG5AZnVuY3Rpb24gY2FsY3VsYXRlLWJyZWFrcG9pbnRzKCRicmVha3BvaW50c19lbSwgJGJyZWFrcG9pbnRzX3B4KSB7XG4gICAgJHJlc3VsdDogJGJyZWFrcG9pbnRzX2VtO1xuICAgIEBlYWNoICRrZXksICR2YWx1ZSBpbiAkYnJlYWtwb2ludHNfcHgge1xuICAgICAgICAkcmVzdWx0OiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAkcmVzdWx0LFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIHVucXVvdGUoJGtleSk6ICR2YWx1ZSAvIDE2ICogMWVtLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5cbiRicmVha3BvaW50czogY2FsY3VsYXRlLWJyZWFrcG9pbnRzKCRicmVha3BvaW50c19lbSwgJGJyZWFrcG9pbnRzX3B4KSAhZGVmYXVsdDtcblxuLy8gcGhvbmU6IDIzLjEyNWVtIC0gMzcwcHhcbi8vIHBob25lTGc6IDMwZW0gLSA0ODBweCxcbi8vIHRhYmxldDogNDhlbSAtIDc2OHB4LFxuLy8gbGFwdG9wOiA2NGVtIC0gMTAyNHB4LFxuLy8gbGFwdG9wTGc6IDgwZW0gLSAxMjgwcHgsXG4vLyBkZXNrdG9wOiA5MGVtIC0gMTQ0MHB4LFxuLy8gdHY6IDEyMGVtIC0gMTkyMHB4LFxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuaHRtbCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZvbnQtc2l6ZTogNjIuNSU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgaGVpZ2h0OiAtd2Via2l0LWZpbGwtYXZhaWxhYmxlOyB9XG5cbiosXG4qOmJlZm9yZSxcbio6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBpbmhlcml0OyB9XG5cbmJvZHkge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICBtYXJnaW46IDA7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBtaW4taGVpZ2h0OiAxMDB2aDtcbiAgbWluLWhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTsgfVxuXG5idXR0b24sXG5pbnB1dCxcbnRleHRhcmVhLFxuc2VsZWN0IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLyogSGlkZSBIVE1MNSBVcCBhbmQgRG93biBhcnJvd3MuICovXG5pbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gIGFwcGVhcmFuY2U6IHRleHRmaWVsZDsgfVxuICBpbnB1dFt0eXBlPSdudW1iZXInXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXRbdHlwZT0nbnVtYmVyJ106Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICBtYXJnaW46IDA7IH1cblxuLyogSGlkZSBIVE1MNSAnWCcgaW4gc2VhcmNoIGlucHV0ICovXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIC8qIENsZWFycyB0aGUgJ1gnIGZyb20gSW50ZXJuZXQgRXhwbG9yZXIgKi9cbiAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBDaHJvbWUgKi8gfVxuICBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LW1zLWNsZWFyLCBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LW1zLXJldmVhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDA7IH1cbiAgaW5wdXRbdHlwZT0nc2VhcmNoJ106Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24sIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1jYW5jZWwtYnV0dG9uLCBpbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sIGlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1yZXN1bHRzLWRlY29yYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmxvYWRpbmctbWFza1tkYXRhLXJvbGU9J21haW4tY3NzLWxvYWRlciddIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4iLCIvKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AZnVuY3Rpb24gZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQHJldHVybiAkbWFwO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9mb250LWZhbWlseSc7XG5cbiRpbnB1dF9yZW1vdmUtbnVtYmVyLWFwcGVhcmFuY2U6IHRydWUgIWRlZmF1bHQ7XG4kaW5wdXRfcmVtb3ZlLXNlYXJjaC1hcHBlYXJhbmNlOiB0cnVlICFkZWZhdWx0O1xuXG5odG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogNjIuNSU7XG4gICAgYmFja2dyb3VuZDogJHBhZ2VfYmFja2dyb3VuZDtcbiAgICAvLyBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuOyAvLyBoaWRlcyBob3Jpem9udGFsIHNjcm9sbGJhciBvbiBFZGdlIGFuZCBJRVxuICAgIGhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbn1cblxuKixcbio6YmVmb3JlLFxuKjphZnRlciB7XG4gICAgYm94LXNpemluZzogaW5oZXJpdDtcbn1cblxuYm9keSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYW1pbHkoJGZvbnRfZmFtaWx5LXByaW1hcnkpO1xuICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgbWluLWhlaWdodDogMTAwdmg7XG4gICAgbWluLWhlaWdodDogLXdlYmtpdC1maWxsLWF2YWlsYWJsZTtcbn1cblxuYnV0dG9uLFxuaW5wdXQsXG50ZXh0YXJlYSxcbnNlbGVjdCB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbi8qIEhpZGUgSFRNTDUgVXAgYW5kIERvd24gYXJyb3dzLiAqL1xuQGlmICRpbnB1dF9yZW1vdmUtbnVtYmVyLWFwcGVhcmFuY2Uge1xuICAgIGlucHV0W3R5cGU9J251bWJlciddIHtcbiAgICAgICAgYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuXG4gICAgICAgICY6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24ge1xuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBIaWRlIEhUTUw1ICdYJyBpbiBzZWFyY2ggaW5wdXQgKi9cbkBpZiAkaW5wdXRfcmVtb3ZlLXNlYXJjaC1hcHBlYXJhbmNlIHtcbiAgICBpbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG5cbiAgICAgICAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBJbnRlcm5ldCBFeHBsb3JlciAqL1xuICAgICAgICAmOjotbXMtY2xlYXIsXG4gICAgICAgICY6Oi1tcy1yZXZlYWwge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogQ2xlYXJzIHRoZSAnWCcgZnJvbSBDaHJvbWUgKi9cbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbixcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbiAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtcmVzdWx0cy1idXR0b24sXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLXJlc3VsdHMtZGVjb3JhdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubG9hZGluZy1tYXNrIHtcbiAgICAmW2RhdGEtcm9sZT0nbWFpbi1jc3MtbG9hZGVyJ10ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiBmb250LWZhbWlseSgkZm9udHMuLi4pIHtcbiAgICBAaWYgJGZvbnRzIHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRmb250cywgJGZvbnQtZmFtaWx5LWZhbGxiYWNrO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWZhbGxiYWNrO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi5jcy1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jb250YWluZXJfX2lubmVyOmJlZm9yZSwgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMCU7IH0gfVxuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjUlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjclOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tbm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWNvbnRhaW5lci0tb250b3Age1xuICAgIHotaW5kZXg6IDMwMTsgfVxuICAuY3MtY29udGFpbmVyLS12aWV3cG9ydC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5jcy1jb250YWluZXItLW5vLXBhZGRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5jcy1jb250YWluZXItLXVzZS13aG9sZS1zY3JlZW4gLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuYm9keSxcbmh0bWwge1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwdnc7IH1cblxuLm5vLXNjcm9sbCB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMHZ3O1xuICBoZWlnaHQ6IDEwMHZoOyB9XG5cbi5uby1zY3JvbGwtY2hpbGQge1xuICBvdmVyZmxvdy15OiBoaWRkZW4gIWltcG9ydGFudDsgfVxuXG4jbWFpbmNvbnRlbnQge1xuICBmbGV4OiAxIDAgYXV0bztcbiAgYmFja2dyb3VuZDogI2VkZWZmMTtcbiAgbWluLXdpZHRoOiAxMDAlOyB9XG5cbi5wYWdlLXdyYXBwZXIge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2Utd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBmbGV4ICFpbXBvcnRhbnQ7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFpbXBvcnRhbnQ7IH0gfVxuXG4uY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICB3aWR0aDogYXV0bztcbiAgcGFkZGluZzogNHJlbSAwIDA7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWluLWhlaWdodDogMTByZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgICAgcGFkZGluZzogNHJlbSAwIDA7IH0gfVxuXG4uY21zLWhvbWUgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgcGFkZGluZzogMDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jbXMtaG9tZSAuY29sdW1ucyAuY29sdW1uLm1haW4ge1xuICAgICAgcGFkZGluZzogMDsgfSB9XG5cbi5wYWdlLWxheW91dC0xY29sdW1uIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgd2lkdGg6IDQwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnBhZ2UtbGF5b3V0LTFjb2x1bW4gLnByb2R1Y3QtaW5mby13cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAzMCU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1tYWluLFxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1hZGRpdGlvbmFsIHtcbiAgICB3aWR0aDogMjIuNSU7XG4gICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZjBmMGYwOyB9XG4gIC5wYWdlLWxheW91dC0yY29sdW1ucy1sZWZ0IC5jb2x1bW5zIHtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuY29sdW1uLm1haW4ge1xuICAgIGZsb2F0OiByaWdodDsgfVxuICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCAuc2lkZWJhci1tYWluIHtcbiAgICBmbG9hdDogbGVmdDsgfSB9XG5cbmEsIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjN2U1N2MyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxuYTpob3ZlciwgYTpmb2N1cywgYTphY3RpdmUsIGE6dmlzaXRlZDpob3ZlciwgYTp2aXNpdGVkOmZvY3VzIHtcbiAgY29sb3I6ICM0ZDJjOTE7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuXG4uZ2lmdC1vcHRpb25zLWNhcnQtaXRlbSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLnBheXBhbC1leHByZXNzLXJldmlldyAucGFnZS10aXRsZS13cmFwcGVyIHtcbiAgICBwYWRkaW5nOiAwIDEuNXJlbTsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcgLmNzLWNhcnQtaXRlbV9fcHJpY2Uge1xuICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyB9XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcgLmNzLWNhcnQtaXRlbV9fc3VidG90YWwge1xuICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gIC5wYXlwYWwtcmV2aWV3LnZpZXcge1xuICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cblxuLnBheXBhbC1leHByZXNzLWluLWNvbnRleHQtbWluaS1jYXJ0LWNvbnRhaW5lciB7XG4gIG1hcmdpbi10b3A6IDFyZW07IH1cblxuLnBheXBhbC1yZXZpZXctZGlzY291bnQge1xuICBib3JkZXItYm90dG9tOiBub25lOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLyoqXG4gKiBNaXhpbnMgZm9yIGZsZXhpYmxlIGNvbnRhaW5lcnMgZGVjbGFyYXRpb24uXG4gKi9cblxuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuQG1peGluIGNvbnRhaW5lcigkaG9yaXpvbnRhbC1wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlcikge1xuICAgIHBhZGRpbmctbGVmdDogJGhvcml6b250YWwtcGFkZGluZztcbiAgICBwYWRkaW5nLXJpZ2h0OiAkaG9yaXpvbnRhbC1wYWRkaW5nO1xufVxuXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbkBtaXhpbiBjb250YWluZXItbmVnYXRlZCgkaG9yaXpvbnRhbC1wYWRkaW5nOiAkcGFnZV9lZGdlLWd1dHRlcikge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkaG9yaXpvbnRhbC1wYWRkaW5nKTtcbiAgICBtYXJnaW4tbGVmdDogLSRob3Jpem9udGFsLXBhZGRpbmc7XG4gICAgbWFyZ2luLXJpZ2h0OiAtJGhvcml6b250YWwtcGFkZGluZztcbn1cblxuLyoqXG4gKiBEZWZpbmVzIGNvbnRhaW5lciB3cmFwcGVyIHRoYXQgbWFrZXMgc3VyZSBjb250bmV0IGRvZXNuJ3QgZXh0ZW5kIGFib3ZlIGNlcnRhaW4gd2lkdGggYW5kIGlzIGFsd2F5cyBjZW50ZXJlZC5cbiAqL1xuQG1peGluIGNvbnRhaW5lci13cmFwcGVyKCRtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aCkge1xuICAgIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcblxuLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSBjb250YWluZXIoKTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYXNpZGUge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICB3aWR0aDogNDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDMyJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNTYlO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IDY1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogNjclO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zcGFjZS10b3Age1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAzcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY29udHJhc3Qge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZ2FsbGVyeTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9iYWNrZ3JvdW5kLnBuZycpO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zcGFjaW91cyB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbm9zY3JvbGwge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cblxuICAgICYtLW9udG9wIHtcbiAgICAgICAgei1pbmRleDogMzAxO1xuICAgIH1cblxuICAgICYtLXZpZXdwb3J0LXdpZHRoIHtcbiAgICAgICAgbWF4LXdpZHRoOiBub25lO1xuICAgIH1cblxuICAgICYtLW5vLXBhZGRpbmcge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgfVxuXG4gICAgJi0tdXNlLXdob2xlLXNjcmVlbiB7XG4gICAgICAgICN7JHJvb3R9X19pbm5lciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vICAgICBfICAgICAgICAgICAgXyAgICAgICAgICAgXyAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gX1xuLy8gICAgKF8pICAgICAgICAgIHwgfCAgICAgICAgIHwgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IChfKVxuLy8gICAgIF8gXyBfXyAgIF9fX3wgfF8gICBfICBfX3wgfCBfX18gICBfIF9fIF9fXyAgIF9fXyAgX198IHxfICBfXyBfXG4vLyAgICB8IHwgJ18gXFwgLyBfX3wgfCB8IHwgfC8gX2AgfC8gXyBcXCB8ICdfIGAgXyBcXCAvIF8gXFwvIF9gIHwgfC8gX2AgfFxuLy8gICAgfCB8IHwgfCB8IChfX3wgfCB8X3wgfCAoX3wgfCAgX18vIHwgfCB8IHwgfCB8ICBfXy8gKF98IHwgfCAoX3wgfFxuLy8gICAgfF98X3wgfF98XFxfX198X3xcXF9fLF98XFxfXyxffFxcX19ffCB8X3wgfF98IHxffFxcX19ffFxcX18sX3xffFxcX18sX3xcbi8vXG4vLyAgICAgIFNpbXBsZSwgZWxlZ2FudCBhbmQgbWFpbnRhaW5hYmxlIG1lZGlhIHF1ZXJpZXMgaW4gU2Fzc1xuLy8gICAgICAgICAgICAgICAgICAgICAgICB2MS40Ljlcbi8vXG4vLyAgICAgICAgaHR0cHM6Ly9lZHVhcmRvYm91Y2FzLmdpdGh1Yi5pby9pbmNsdWRlLW1lZGlhXG4vL1xuLy8gICAgICAgICBBdXRob3JzOiBFZHVhcmRvIEJvdWNhcyAoQGVkdWFyZG9ib3VjYXMpXG4vLyAgICAgICAgICAgICAgICAgIEtpdHR5IEdpcmF1ZGVsIChAa2l0dHlnaXJhdWRlbClcbi8vXG4vLyAgICAgIFRoaXMgcHJvamVjdCBpcyBsaWNlbnNlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1JVCBsaWNlbnNlXG4vLy8vXG4vLy8gaW5jbHVkZS1tZWRpYSBsaWJyYXJ5IHB1YmxpYyBjb25maWd1cmF0aW9uXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2YgZ2xvYmFsIGJyZWFrcG9pbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBicmVha3BvaW50IHdpdGggdGhlIGxhYmVsIGBwaG9uZWBcbi8vLyAgJGJyZWFrcG9pbnRzOiAoJ3Bob25lJzogMzIwcHgpO1xuLy8vXG4kYnJlYWtwb2ludHM6IChcbiAgJ3Bob25lJzogMzIwcHgsXG4gICd0YWJsZXQnOiA3NjhweCxcbiAgJ2Rlc2t0b3AnOiAxMDI0cHhcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gQ3JlYXRlcyBhIGxpc3Qgb2Ygc3RhdGljIGV4cHJlc3Npb25zIG9yIG1lZGlhIHR5cGVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHNpbmdsZSBtZWRpYSB0eXBlIChzY3JlZW4pXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nOiAnc2NyZWVuJyk7XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gQ3JlYXRlcyBhIHN0YXRpYyBleHByZXNzaW9uIHdpdGggbG9naWNhbCBkaXNqdW5jdGlvbiAoT1Igb3BlcmF0b3IpXG4vLy8gICRtZWRpYS1leHByZXNzaW9uczogKFxuLy8vICAgICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpJ1xuLy8vICApO1xuLy8vXG4kbWVkaWEtZXhwcmVzc2lvbnM6IChcbiAgJ3NjcmVlbic6ICdzY3JlZW4nLFxuICAncHJpbnQnOiAncHJpbnQnLFxuICAnaGFuZGhlbGQnOiAnaGFuZGhlbGQnLFxuICAnbGFuZHNjYXBlJzogJyhvcmllbnRhdGlvbjogbGFuZHNjYXBlKScsXG4gICdwb3J0cmFpdCc6ICcob3JpZW50YXRpb246IHBvcnRyYWl0KScsXG4gICdyZXRpbmEyeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyKSwgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAobWluLXJlc29sdXRpb246IDJkcHB4KScsXG4gICdyZXRpbmEzeCc6ICcoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAzKSwgKG1pbi1yZXNvbHV0aW9uOiAzNTBkcGkpLCAobWluLXJlc29sdXRpb246IDNkcHB4KSdcbikgIWRlZmF1bHQ7XG5cblxuLy8vXG4vLy8gRGVmaW5lcyBhIG51bWJlciB0byBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkIGZyb20gZWFjaCB1bml0IHdoZW4gZGVjbGFyaW5nIGJyZWFrcG9pbnRzIHdpdGggZXhjbHVzaXZlIGludGVydmFsc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBwaXhlbHMgaXMgZGVmaW5lZCBhcyBgMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjEyOHB4Jykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAxMjlweCkge31cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBJbnRlcnZhbCBmb3IgZW1zIGlzIGRlZmluZWQgYXMgYDAuMDFgIGJ5IGRlZmF1bHRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yMGVtJykge31cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIEBtZWRpYSAobWluLXdpZHRoOiAyMC4wMWVtKSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciByZW1zIGlzIGRlZmluZWQgYXMgYDAuMWAgYnkgZGVmYXVsdCwgdG8gYmUgdXNlZCB3aXRoIGBmb250LXNpemU6IDYyLjUlO2Bcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz4yLjByZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIuMXJlbSkge31cbi8vL1xuJHVuaXQtaW50ZXJ2YWxzOiAoXG4gICdweCc6IDEsXG4gICdlbSc6IDAuMDEsXG4gICdyZW0nOiAwLjEsXG4gICcnOiAwXG4pICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBEZWZpbmVzIHdoZXRoZXIgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBhdmFpbGFibGUsIHVzZWZ1bCBmb3IgY3JlYXRpbmcgc2VwYXJhdGUgc3R5bGVzaGVldHNcbi8vLyBmb3IgYnJvd3NlcnMgdGhhdCBkb24ndCBzdXBwb3J0IG1lZGlhIHF1ZXJpZXMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRGlzYWJsZXMgc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbiRpbS1tZWRpYS1zdXBwb3J0OiB0cnVlICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIGJyZWFrcG9pbnQgdG8gZW11bGF0ZSB3aGVuIHN1cHBvcnQgZm9yIG1lZGlhIHF1ZXJpZXMgaXMgZGlzYWJsZWQuIE1lZGlhIHF1ZXJpZXMgdGhhdCBzdGFydCBhdCBvclxuLy8vIGludGVyY2VwdCB0aGUgYnJlYWtwb2ludCB3aWxsIGJlIGRpc3BsYXllZCwgYW55IG90aGVycyB3aWxsIGJlIGlnbm9yZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAuZm9vIHtcbi8vLyAgICBjb2xvcjogdG9tYXRvO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgZG9lcyBub3QgaW50ZXJjZXB0IHRoZSBkZXNrdG9wIGJyZWFrcG9pbnRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ3RhYmxldCc7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PWRlc2t0b3AnKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIC8qIE5vIG91dHB1dCAqL1xuLy8vXG4kaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnICFkZWZhdWx0O1xuXG4vLy9cbi8vLyBTZWxlY3RzIHdoaWNoIG1lZGlhIGV4cHJlc3Npb25zIGFyZSBhbGxvd2VkIGluIGFuIGV4cHJlc3Npb24gZm9yIGl0IHRvIGJlIHVzZWQgd2hlbiBtZWRpYSBxdWVyaWVzXG4vLy8gYXJlIG5vdCBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIHNob3cgYmVjYXVzZSBpdCBpbnRlcmNlcHRzIHRoZSBzdGF0aWMgYnJlYWtwb2ludCBhbmQgY29udGFpbnMgb25seSBhY2NlcHRlZCBtZWRpYSBleHByZXNzaW9uc1xuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3NjcmVlbicpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgIC5mb28ge1xuLy8vICAgICBjb2xvcjogdG9tYXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFRoaXMgbWVkaWEgcXVlcnkgd2lsbCBOT1Qgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGJ1dCBjb250YWlucyBhIG1lZGlhIGV4cHJlc3Npb24gdGhhdCBpcyBub3QgYWNjZXB0ZWRcbi8vLyAgJGltLW1lZGlhLXN1cHBvcnQ6IGZhbHNlO1xuLy8vICAkaW0tbm8tbWVkaWEtYnJlYWtwb2ludDogJ2Rlc2t0b3AnO1xuLy8vICAkaW0tbm8tbWVkaWEtZXhwcmVzc2lvbnM6ICgnc2NyZWVuJyk7XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICdyZXRpbmEyeCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nLCAncG9ydHJhaXQnLCAnbGFuZHNjYXBlJykgIWRlZmF1bHQ7XG5cbi8vLy9cbi8vLyBDcm9zcy1lbmdpbmUgbG9nZ2luZyBlbmdpbmVcbi8vLyBAYXV0aG9yIEtpdHR5IEdpcmF1ZGVsXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy8vXG5cblxuLy8vXG4vLy8gTG9nIGEgbWVzc2FnZSBlaXRoZXIgd2l0aCBgQGVycm9yYCBpZiBzdXBwb3J0ZWRcbi8vLyBlbHNlIHdpdGggYEB3YXJuYCwgdXNpbmcgYGZlYXR1cmUtZXhpc3RzKCdhdC1lcnJvcicpYFxuLy8vIHRvIGRldGVjdCBzdXBwb3J0LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQGZ1bmN0aW9uIGltLWxvZygkbWVzc2FnZSkge1xuICBAaWYgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJykge1xuICAgIEBlcnJvciAkbWVzc2FnZTtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gJG1lc3NhZ2U7XG4gICAgJF86IG5vb3AoKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1lc3NhZ2U7XG59XG5cblxuLy8vXG4vLy8gV3JhcHBlciBtaXhpbiBmb3IgdGhlIGxvZyBmdW5jdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCB3aXRoIGEgbW9yZSBmcmllbmRseVxuLy8vIEFQSSB0aGFuIGBAaWYgaW0tbG9nKCcuLicpIHt9YCBvciBgJF86IGltLWxvZygnLi4nKWAuIEJhc2ljYWxseSwgdXNlIHRoZSBmdW5jdGlvblxuLy8vIHdpdGhpbiBmdW5jdGlvbnMgYmVjYXVzZSBpdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluIGEgZnVuY3Rpb25cbi8vLyBhbmQgdXNlIHRoZSBtaXhpbiBldmVyeXdoZXJlIGVsc2UgYmVjYXVzZSBpdCdzIG11Y2ggbW9yZSBlbGVnYW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRtZXNzYWdlIC0gTWVzc2FnZSB0byBsb2dcbi8vL1xuQG1peGluIGxvZygkbWVzc2FnZSkge1xuICBAaWYgaW0tbG9nKCRtZXNzYWdlKSB7fVxufVxuXG5cbi8vL1xuLy8vIEZ1bmN0aW9uIHdpdGggbm8gYEByZXR1cm5gIGNhbGxlZCBuZXh0IHRvIGBAd2FybmAgaW4gU2FzcyAzLjNcbi8vLyB0byB0cmlnZ2VyIGEgY29tcGlsaW5nIGVycm9yIGFuZCBzdG9wIHRoZSBwcm9jZXNzLlxuLy8vXG5AZnVuY3Rpb24gbm9vcCgpIHt9XG5cbi8vL1xuLy8vIERldGVybWluZXMgd2hldGhlciBhIGxpc3Qgb2YgY29uZGl0aW9ucyBpcyBpbnRlcmNlcHRlZCBieSB0aGUgc3RhdGljIGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQHJldHVybiB7Qm9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNvbmRpdGlvbnMgYXJlIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludFxuLy8vXG5AZnVuY3Rpb24gaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikge1xuICAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZTogbWFwLWdldCgkYnJlYWtwb2ludHMsICRpbS1uby1tZWRpYS1icmVha3BvaW50KTtcblxuICBAaWYgbm90ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlIHtcbiAgICBAaWYgaW0tbG9nKCdgI3skaW0tbm8tbWVkaWEtYnJlYWtwb2ludH1gIGlzIG5vdCBhIHZhbGlkIGJyZWFrcG9pbnQuJykge31cbiAgfVxuXG4gIEBlYWNoICRjb25kaXRpb24gaW4gJGNvbmRpdGlvbnMge1xuICAgIEBpZiBub3QgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRjb25kaXRpb24pO1xuICAgICAgJHByZWZpeDogZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcik7XG4gICAgICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRjb25kaXRpb24sICRvcGVyYXRvcik7XG5cbiAgICAgIEBpZiAoJHByZWZpeCA9PSAnbWF4JyBhbmQgJHZhbHVlIDw9ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSBvclxuICAgICAgICAgICgkcHJlZml4ID09ICdtaW4nIGFuZCAkdmFsdWUgPiAkbm8tbWVkaWEtYnJlYWtwb2ludC12YWx1ZSkge1xuICAgICAgICBAcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgaWYgbm90IGluZGV4KCRpbS1uby1tZWRpYS1leHByZXNzaW9ucywgJGNvbmRpdGlvbikge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG5cbi8vLy9cbi8vLyBQYXJzaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBHZXQgb3BlcmF0b3Igb2YgYW4gZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IG9wZXJhdG9yIGZyb21cbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBBbnkgb2YgYD49YCwgYD5gLCBgPD1gLCBgPGAsIGDiiaVgLCBg4omkYFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pIHtcbiAgQGVhY2ggJG9wZXJhdG9yIGluICgnPj0nLCAnPicsICc8PScsICc8JywgJ+KJpScsICfiiaQnKSB7XG4gICAgQGlmIHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICAgICBAcmV0dXJuICRvcGVyYXRvcjtcbiAgICB9XG4gIH1cblxuICAvLyBJdCBpcyBub3QgcG9zc2libGUgdG8gaW5jbHVkZSBhIG1peGluIGluc2lkZSBhIGZ1bmN0aW9uLCBzbyB3ZSBoYXZlIHRvXG4gIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAvLyBhIGR1bW15IHZhcmlhYmxlLCBzdWNoIGFzIGAkX2AuIElmIGFueWJvZHkgZXZlciByYWlzZSBhIHNjb3BpbmcgaXNzdWUgd2l0aFxuICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICRfOiBpbS1sb2coJ05vIG9wZXJhdG9yIGZvdW5kIGluIGAjeyRleHByZXNzaW9ufWAuJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IGRpbWVuc2lvbiBvZiBhbiBleHByZXNzaW9uLCBiYXNlZCBvbiBhIGZvdW5kIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3QgZGltZW5zaW9uIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYHdpZHRoYCBvciBgaGVpZ2h0YCAob3IgcG90ZW50aWFsbHkgYW55dGhpbmcgZWxzZSlcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLWRpbWVuc2lvbigkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcGFyc2VkLWRpbWVuc2lvbjogc3RyLXNsaWNlKCRleHByZXNzaW9uLCAwLCAkb3BlcmF0b3ItaW5kZXggLSAxKTtcbiAgJGRpbWVuc2lvbjogJ3dpZHRoJztcblxuICBAaWYgc3RyLWxlbmd0aCgkcGFyc2VkLWRpbWVuc2lvbikgPiAwIHtcbiAgICAkZGltZW5zaW9uOiAkcGFyc2VkLWRpbWVuc2lvbjtcbiAgfVxuXG4gIEByZXR1cm4gJGRpbWVuc2lvbjtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIHByZWZpeCBiYXNlZCBvbiBhbiBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gYG1pbmAgb3IgYG1heGBcbi8vL1xuQGZ1bmN0aW9uIGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpIHtcbiAgQHJldHVybiBpZihpbmRleCgoJzwnLCAnPD0nLCAn4omkJyksICRvcGVyYXRvciksICdtYXgnLCAnbWluJyk7XG59XG5cblxuLy8vXG4vLy8gR2V0IHZhbHVlIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCB2YWx1ZSBmcm9tXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRvcGVyYXRvciAtIE9wZXJhdG9yIGZyb20gYCRleHByZXNzaW9uYFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIEEgbnVtZXJpYyB2YWx1ZVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGV4cHJlc3Npb24sICRvcGVyYXRvcikge1xuICAkb3BlcmF0b3ItaW5kZXg6IHN0ci1pbmRleCgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sICRvcGVyYXRvci1pbmRleCArIHN0ci1sZW5ndGgoJG9wZXJhdG9yKSk7XG5cbiAgQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgJHZhbHVlKSB7XG4gICAgJHZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJHZhbHVlKTtcbiAgfSBAZWxzZSB7XG4gICAgJHZhbHVlOiB0by1udW1iZXIoJHZhbHVlKTtcbiAgfVxuXG4gICRpbnRlcnZhbDogbWFwLWdldCgkdW5pdC1pbnRlcnZhbHMsIHVuaXQoJHZhbHVlKSk7XG5cbiAgQGlmIG5vdCAkaW50ZXJ2YWwge1xuICAgIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgICAvLyByZWx5IG9uIHRoZSBgaW0tbG9nKC4uKWAgZnVuY3Rpb24gcmF0aGVyIHRoYW4gdGhlIGBsb2coLi4pYCBtaXhpbi4gQmVjYXVzZVxuICAgIC8vIGZ1bmN0aW9ucyBjYW5ub3QgYmUgY2FsbGVkIGFueXdoZXJlIGluIFNhc3MsIHdlIG5lZWQgdG8gaGFjayB0aGUgY2FsbCBpblxuICAgIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gICAgLy8gU2FzcyAzLjMsIGNoYW5nZSB0aGlzIGxpbmUgaW4gYEBpZiBpbS1sb2coLi4pIHt9YCBpbnN0ZWFkLlxuICAgICRfOiBpbS1sb2coJ1Vua25vd24gdW5pdCBgI3t1bml0KCR2YWx1ZSl9YC4nKTtcbiAgfVxuXG4gIEBpZiAkb3BlcmF0b3IgPT0gJz4nIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSArICRpbnRlcnZhbDtcbiAgfSBAZWxzZSBpZiAkb3BlcmF0b3IgPT0gJzwnIHtcbiAgICAkdmFsdWU6ICR2YWx1ZSAtICRpbnRlcnZhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuXG5cbi8vL1xuLy8vIFBhcnNlIGFuIGV4cHJlc3Npb24gdG8gcmV0dXJuIGEgdmFsaWQgbWVkaWEtcXVlcnkgZXhwcmVzc2lvblxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBwYXJzZVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIFZhbGlkIG1lZGlhIHF1ZXJ5XG4vLy9cbkBmdW5jdGlvbiBwYXJzZS1leHByZXNzaW9uKCRleHByZXNzaW9uKSB7XG4gIC8vIElmIGl0IGlzIHBhcnQgb2YgJG1lZGlhLWV4cHJlc3Npb25zLCBpdCBoYXMgbm8gb3BlcmF0b3JcbiAgLy8gdGhlbiB0aGVyZSBpcyBubyBuZWVkIHRvIGdvIGFueSBmdXJ0aGVyLCBqdXN0IHJldHVybiB0aGUgdmFsdWVcbiAgQGlmIG1hcC1oYXMta2V5KCRtZWRpYS1leHByZXNzaW9ucywgJGV4cHJlc3Npb24pIHtcbiAgICBAcmV0dXJuIG1hcC1nZXQoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbik7XG4gIH1cblxuICAkb3BlcmF0b3I6IGdldC1leHByZXNzaW9uLW9wZXJhdG9yKCRleHByZXNzaW9uKTtcbiAgJGRpbWVuc2lvbjogZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgJHZhbHVlOiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKTtcblxuICBAcmV0dXJuICcoI3skcHJlZml4fS0jeyRkaW1lbnNpb259OiAjeyR2YWx1ZX0pJztcbn1cblxuLy8vXG4vLy8gU2xpY2UgYCRsaXN0YCBiZXR3ZWVuIGAkc3RhcnRgIGFuZCBgJGVuZGAgaW5kZXhlc1xuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0IC0gTGlzdCB0byBzbGljZVxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkc3RhcnQgWzFdIC0gU3RhcnQgaW5kZXhcbi8vLyBAcGFyYW0ge051bWJlcn0gJGVuZCBbbGVuZ3RoKCRsaXN0KV0gLSBFbmQgaW5kZXhcbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IFNsaWNlZCBsaXN0XG4vLy9cbkBmdW5jdGlvbiBzbGljZSgkbGlzdCwgJHN0YXJ0OiAxLCAkZW5kOiBsZW5ndGgoJGxpc3QpKSB7XG4gIEBpZiBsZW5ndGgoJGxpc3QpIDwgMSBvciAkc3RhcnQgPiAkZW5kIHtcbiAgICBAcmV0dXJuICgpO1xuICB9XG5cbiAgJHJlc3VsdDogKCk7XG5cbiAgQGZvciAkaSBmcm9tICRzdGFydCB0aHJvdWdoICRlbmQge1xuICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJGxpc3QsICRpKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vLy9cbi8vLyBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBDYXN0cyBhIHN0cmluZyBpbnRvIGEgbnVtYmVyXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZyB8IE51bWJlcn0gJHZhbHVlIC0gVmFsdWUgdG8gYmUgcGFyc2VkXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9XG4vLy9cbkBmdW5jdGlvbiB0by1udW1iZXIoJHZhbHVlKSB7XG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgJF86IGltLWxvZygnVmFsdWUgZm9yIGB0by1udW1iZXJgIHNob3VsZCBiZSBhIG51bWJlciBvciBhIHN0cmluZy4nKTtcbiAgfVxuXG4gICRmaXJzdC1jaGFyYWN0ZXI6IHN0ci1zbGljZSgkdmFsdWUsIDEsIDEpO1xuICAkcmVzdWx0OiAwO1xuICAkZGlnaXRzOiAwO1xuICAkbWludXM6ICgkZmlyc3QtY2hhcmFjdGVyID09ICctJyk7XG4gICRudW1iZXJzOiAoJzAnOiAwLCAnMSc6IDEsICcyJzogMiwgJzMnOiAzLCAnNCc6IDQsICc1JzogNSwgJzYnOiA2LCAnNyc6IDcsICc4JzogOCwgJzknOiA5KTtcblxuICAvLyBSZW1vdmUgKy8tIHNpZ24gaWYgcHJlc2VudCBhdCBmaXJzdCBjaGFyYWN0ZXJcbiAgQGlmICgkZmlyc3QtY2hhcmFjdGVyID09ICcrJyBvciAkZmlyc3QtY2hhcmFjdGVyID09ICctJykge1xuICAgICR2YWx1ZTogc3RyLXNsaWNlKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHZhbHVlKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgJGksICRpKTtcblxuICAgIEBpZiBub3QgKGluZGV4KG1hcC1rZXlzKCRudW1iZXJzKSwgJGNoYXJhY3Rlcikgb3IgJGNoYXJhY3RlciA9PSAnLicpIHtcbiAgICAgIEByZXR1cm4gdG8tbGVuZ3RoKGlmKCRtaW51cywgLSRyZXN1bHQsICRyZXN1bHQpLCBzdHItc2xpY2UoJHZhbHVlLCAkaSkpXG4gICAgfVxuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gJy4nIHtcbiAgICAgICRkaWdpdHM6IDE7XG4gICAgfSBAZWxzZSBpZiAkZGlnaXRzID09IDAge1xuICAgICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3Rlcik7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCk7XG59XG5cblxuLy8vXG4vLy8gQWRkIGAkdW5pdGAgdG8gYCR2YWx1ZWBcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBhZGQgdW5pdCB0b1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdW5pdCAtIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgdW5pdFxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSAtIGAkdmFsdWVgIGV4cHJlc3NlZCBpbiBgJHVuaXRgXG4vLy9cbkBmdW5jdGlvbiB0by1sZW5ndGgoJHZhbHVlLCAkdW5pdCkge1xuICAkdW5pdHM6ICgncHgnOiAxcHgsICdjbSc6IDFjbSwgJ21tJzogMW1tLCAnJSc6IDElLCAnY2gnOiAxY2gsICdwYyc6IDFwYywgJ2luJzogMWluLCAnZW0nOiAxZW0sICdyZW0nOiAxcmVtLCAncHQnOiAxcHQsICdleCc6IDFleCwgJ3Z3JzogMXZ3LCAndmgnOiAxdmgsICd2bWluJzogMXZtaW4sICd2bWF4JzogMXZtYXgpO1xuXG4gIEBpZiBub3QgaW5kZXgobWFwLWtleXMoJHVuaXRzKSwgJHVuaXQpIHtcbiAgICAkXzogaW0tbG9nKCdJbnZhbGlkIHVuaXQgYCN7JHVuaXR9YC4nKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlICogbWFwLWdldCgkdW5pdHMsICR1bml0KTtcbn1cblxuLy8vXG4vLy8gVGhpcyBtaXhpbiBhaW1zIGF0IHJlZGVmaW5pbmcgdGhlIGNvbmZpZ3VyYXRpb24ganVzdCBmb3IgdGhlIHNjb3BlIG9mXG4vLy8gdGhlIGNhbGwuIEl0IGlzIGhlbHBmdWwgd2hlbiBoYXZpbmcgYSBjb21wb25lbnQgbmVlZGluZyBhbiBleHRlbmRlZFxuLy8vIGNvbmZpZ3VyYXRpb24gc3VjaCBhcyBjdXN0b20gYnJlYWtwb2ludHMgKHJlZmVycmVkIHRvIGFzIHR3ZWFrcG9pbnRzKVxuLy8vIGZvciBpbnN0YW5jZS5cbi8vL1xuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWtwb2ludHMgWygpXSAtIE1hcCBvZiB0d2Vha3BvaW50cyB0byBiZSBtZXJnZWQgd2l0aCBgJGJyZWFrcG9pbnRzYFxuLy8vIEBwYXJhbSB7TWFwfSAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMgWygpXSAtIE1hcCBvZiB0d2Vha2VkIG1lZGlhIGV4cHJlc3Npb25zIHRvIGJlIG1lcmdlZCB3aXRoIGAkbWVkaWEtZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgdGhlIGdsb2JhbCBicmVha3BvaW50cyB3aXRoIGEgdHdlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYS1jb250ZXh0KCgnY3VzdG9tJzogNjc4cHgpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIG1lZGlhIGV4cHJlc3Npb25zIHdpdGggYSBjdXN0b20gb25lXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoJ2FsbCc6ICdhbGwnKSkge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgQGluY2x1ZGUgbWVkaWEoJ2FsbCcsICc+cGhvbmUnKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIGJvdGggY29uZmlndXJhdGlvbiBtYXBzXG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCksICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScsICc8PWN1c3RvbScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuQG1peGluIG1lZGlhLWNvbnRleHQoJHR3ZWFrcG9pbnRzOiAoKSwgJHR3ZWFrLW1lZGlhLWV4cHJlc3Npb25zOiAoKSkge1xuICAvLyBTYXZlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRnbG9iYWwtYnJlYWtwb2ludHM6ICRicmVha3BvaW50cztcbiAgJGdsb2JhbC1tZWRpYS1leHByZXNzaW9uczogJG1lZGlhLWV4cHJlc3Npb25zO1xuXG4gIC8vIFVwZGF0ZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6IG1hcC1tZXJnZSgkYnJlYWtwb2ludHMsICR0d2Vha3BvaW50cykgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiBtYXAtbWVyZ2UoJG1lZGlhLWV4cHJlc3Npb25zLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnMpICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgLy8gUmVzdG9yZSBnbG9iYWwgY29uZmlndXJhdGlvblxuICAkYnJlYWtwb2ludHM6ICRnbG9iYWwtYnJlYWtwb2ludHMgIWdsb2JhbDtcbiAgJG1lZGlhLWV4cHJlc3Npb25zOiAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zICFnbG9iYWw7XG59XG5cbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIHB1YmxpYyBleHBvc2VkIEFQSVxuLy8vIEBhdXRob3IgRWR1YXJkbyBCb3VjYXNcbi8vLyBAYWNjZXNzIHB1YmxpY1xuLy8vL1xuXG5cbi8vL1xuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IGJhc2VkIG9uIGEgbGlzdCBvZiBjb25kaXRpb25zXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICAgJGNvbmRpdGlvbnMgIC0gTWVkaWEgcXVlcnkgY29uZGl0aW9uc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzaW5nbGUgc2V0IGJyZWFrcG9pbnRcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz5waG9uZScpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggdHdvIHNldCBicmVha3BvaW50c1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJywgJzw9dGFibGV0JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+PTM1OHB4JywgJzw4NTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggc2V0IGJyZWFrcG9pbnRzIHdpdGggY3VzdG9tIHZhbHVlc1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPmRlc2t0b3AnLCAnPD0xMzUwcHgnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGEgc3RhdGljIGV4cHJlc3Npb25cbi8vLyAgQGluY2x1ZGUgbWVkaWEoJ3JldGluYTJ4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gTWl4aW5nIGV2ZXJ5dGhpbmdcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzUwcHgnLCAnPHRhYmxldCcsICdyZXRpbmEzeCcpIHsgfVxuLy8vXG5AbWl4aW4gbWVkaWEoJGNvbmRpdGlvbnMuLi4pIHtcbiAgQGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA9PSAwKSBvclxuICAgICAgKG5vdCAkaW0tbWVkaWEtc3VwcG9ydCBhbmQgaW0taW50ZXJjZXB0cy1zdGF0aWMtYnJlYWtwb2ludCgkY29uZGl0aW9ucy4uLikpIHtcbiAgICBAY29udGVudDtcbiAgfSBAZWxzZSBpZiAoJGltLW1lZGlhLXN1cHBvcnQgYW5kIGxlbmd0aCgkY29uZGl0aW9ucykgPiAwKSB7XG4gICAgQG1lZGlhICN7dW5xdW90ZShwYXJzZS1leHByZXNzaW9uKG50aCgkY29uZGl0aW9ucywgMSkpKX0ge1xuICAgICAgLy8gUmVjdXJzaXZlIGNhbGxcbiAgICAgIEBpbmNsdWRlIG1lZGlhKHNsaWNlKCRjb25kaXRpb25zLCAyKS4uLikge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gaGVhZGxpbmVfaG9vaygkbGV2ZWwpIHtcbn1cblxuQG1peGluIGxpbmtfaG9vaygpIHtcbn1cblxuQG1peGluIGxpc3RfaG9vaygpIHtcbn1cblxuQG1peGluIGxpc3QtaXRlbV9ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29tcG9uZW50cy9jb250YWluZXIvY29udGFpbmVyJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJG5zOiAnY3MtJztcblxuYm9keSxcbmh0bWwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMHZ3O1xufVxuXG4ubm8tc2Nyb2xsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG59XG5cbi5uby1zY3JvbGwtY2hpbGQge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbiAhaW1wb3J0YW50OyAvLyBPdmVyZmxvdyBoYXMgYmVlbiBtb3ZlZCB0byBjaGlsZCBlbGVtZW50IGluIG9yZGVyIHRvIG1haW50YWluIHZpc2liaWxpdHkgb2YgaXRlbXMgaW4gdGhlIGJhY2tncm91bmRcbn1cblxuI21haW5jb250ZW50IHtcbiAgICBmbGV4OiAxIDAgYXV0bztcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xufVxuXG4ucGFnZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXggIWltcG9ydGFudDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgcGFkZGluZzogJG1haW4tY29sdW1uX3BhZGRpbmctbW9iaWxlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMHJlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogJG1haW4tY29sdW1uX3BhZGRpbmc7XG4gICAgfVxufVxuXG4uY21zLWhvbWUgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICBwYWRkaW5nOiAkaG9tZXBhZ2UtbWFpbi1jb2x1bW5fcGFkZGluZy1tb2JpbGU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6ICRob21lcGFnZS1tYWluLWNvbHVtbl9wYWRkaW5nO1xuICAgIH1cbn1cblxuLnBhZ2UtbGF5b3V0LTFjb2x1bW4ge1xuICAgIC5wcm9kdWN0LWluZm8td3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAucGFnZS1sYXlvdXQtMmNvbHVtbnMtbGVmdCB7XG4gICAgICAgIC5zaWRlYmFyLW1haW4sXG4gICAgICAgIC5zaWRlYmFyLWFkZGl0aW9uYWwge1xuICAgICAgICAgICAgd2lkdGg6IDIyLjUlO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNDBweDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvcl9nYWxsZXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbHVtbnMge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICAuY29sdW1uLm1haW4ge1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgLnNpZGViYXItbWFpbiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuYSB7XG4gICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgJGNvbG9yOiAkbGluay1jb2xvcl9iYXNlLFxuICAgICAgICAkY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXJcbiAgICApO1xufVxuXG4uZ2lmdC1vcHRpb25zLWNhcnQtaXRlbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLy9QYXlwYWwgbW9kdWxlXG4ucGF5cGFsLWV4cHJlc3MtcmV2aWV3IC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgfVxufVxuXG4ucGF5cGFsLXJldmlldy52aWV3IHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgLiN7JG5zfWNhcnQtaXRlbV9fcHJpY2Uge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9Y2FydC1pdGVtX19zdWJ0b3RhbCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgIH1cbn1cblxuLnBheXBhbC1leHByZXNzLWluLWNvbnRleHQtbWluaS1jYXJ0LWNvbnRhaW5lciB7XG4gICAgbWFyZ2luLXRvcDogMXJlbTtcbn1cblxuLnBheXBhbC1yZXZpZXctZGlzY291bnQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9ob29rJztcbkBpbXBvcnQgJ3V0aWxzL2ZvbnQtZmFtaWx5JztcblxuJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC1mYW1pbHk6ICRmb250X2ZhbWlseS1wcmltYXJ5ICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2hlYWRsaW5lLW1hcmdpbnM6IDFyZW0gMCAycmVtICFkZWZhdWx0O1xuXG4kdHlwb2dyYXBoeV9saW5rLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfbGluay0taG92ZXItY29sb3I6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogJHR5cG9ncmFwaHlfbGluay10ZXh0LWRlY29yYXRpb24gIWRlZmF1bHQ7XG5cbiR0eXBvZ3JhcGh5X2xpc3QtbWFyZ2luOiAwIDAgMi41cmVtICFkZWZhdWx0O1xuJHR5cG9ncmFwaHlfbGlzdC1wYWRkaW5nOiAwIDAgMCA0cmVtICFkZWZhdWx0O1xuXG4kdHlwb2dyYXBoeV9saXN0LWl0ZW0tbWFyZ2luOiAwIDAgMXJlbSAhZGVmYXVsdDtcblxuQG1peGluIGhlYWRsaW5lKCRsZXZlbDogJGZvbnQtc2l6ZV9oZWFkbGluZS0yKSB7XG4gICAgQGluY2x1ZGUgZm9udC1mYW1pbHkoJHR5cG9ncmFwaHlfaGVhZGxpbmUtZm9udC1mYW1pbHkpO1xuXG4gICAgZm9udC1zaXplOiAkbGV2ZWw7XG4gICAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgICBjb2xvcjogJHR5cG9ncmFwaHlfaGVhZGxpbmUtY29sb3I7XG4gICAgZm9udC13ZWlnaHQ6ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiAkdHlwb2dyYXBoeV9oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2hlYWRsaW5lLW1hcmdpbnM7XG5cbiAgICBAaW5jbHVkZSBoZWFkbGluZV9ob29rKCRsZXZlbCk7XG59XG5cbkBtaXhpbiBsaW5rKCRjb2xvcjogJHR5cG9ncmFwaHlfbGluay1jb2xvcixcbiAgICAkY29sb3ItaG92ZXI6ICR0eXBvZ3JhcGh5X2xpbmstLWhvdmVyLWNvbG9yLFxuICAgICRkZWNvcmF0aW9uOiAkdHlwb2dyYXBoeV9saW5rLXRleHQtZGVjb3JhdGlvbixcbiAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJHR5cG9ncmFwaHlfbGluay0taG92ZXItdGV4dC1kZWNvcmF0aW9uKSB7XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJGRlY29yYXRpb247XG4gICAgfVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlLFxuICAgICY6dmlzaXRlZDpob3ZlcixcbiAgICAmOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRkZWNvcmF0aW9uLWhvdmVyO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmtfaG9vaygpO1xufVxuXG5AbWl4aW4gbGlzdCgpIHtcbiAgICBtYXJnaW46ICR0eXBvZ3JhcGh5X2xpc3QtbWFyZ2luO1xuICAgIHBhZGRpbmc6ICR0eXBvZ3JhcGh5X2xpc3QtcGFkZGluZztcblxuICAgIEBpbmNsdWRlIGxpc3RfaG9vaygpO1xufVxuXG5AbWl4aW4gbGlzdC1pdGVtKCkge1xuICAgIG1hcmdpbjogJHR5cG9ncmFwaHlfbGlzdC1pdGVtLW1hcmdpbjtcblxuICAgIEBpbmNsdWRlIGxpc3QtaXRlbV9ob29rKCk7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLmxvZ2luLWNvbnRhaW5lciAuYmxvY2stbmV3LWN1c3RvbWVyIC5hY3Rpb25zLXRvb2xiYXIge1xuICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cblxuLmxvZ2luLWNvbnRhaW5lciAuYmxvY2sgLmJsb2NrLXRpdGxlIHtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZThlOGU4O1xuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjJyZW07IH1cblxuLmxvZ2luLWNvbnRhaW5lciAuZmllbGRzZXQ6YWZ0ZXIge1xuICBtYXJnaW46IDFyZW0gMCAwO1xuICBjb250ZW50OiBhdHRyKGRhdGEtaGFzcmVxdWlyZWQpO1xuICBkaXNwbGF5OiBibG9jaztcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC1zcGFjaW5nOiBub3JtYWw7XG4gIGNvbG9yOiAjZTAyYjI3O1xuICBmb250LXNpemU6IDEuMnJlbTsgfVxuXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuXG4uYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5mb3JtLWFkZHJlc3MtZWRpdCAucmVnaW9uX2lkIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uZm9ybS1hZGRyZXNzLWVkaXQgLmFjdGlvbnMtdG9vbGJhciAuYWN0aW9uLnByaW1hcnkge1xuICBmb250LXNpemU6IDEuOHJlbTsgfVxuXG4uZm9ybS1lZGl0LWFjY291bnQgLmZpZWxkc2V0LnBhc3N3b3JkIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYm94LWJpbGxpbmctYWRkcmVzcyAuYm94LWNvbnRlbnQsXG4uYm94LXNoaXBwaW5nLWFkZHJlc3MgLmJveC1jb250ZW50LFxuLmJveC1pbmZvcm1hdGlvbiAuYm94LWNvbnRlbnQsXG4uYm94LW5ld3NsZXR0ZXIgLmJveC1jb250ZW50IHtcbiAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xuICBoeXBoZW5zOiBhdXRvO1xuICBsaW5lLWhlaWdodDogMi42cmVtOyB9XG5cbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLmZpZWxkLnBhc3N3b3JkIC5jb250cm9sIC5tYWdlLWVycm9yIHtcbiAgb3JkZXI6IDI7IH1cblxuLmZpZWxkLnBhc3N3b3JkIC5jb250cm9sIC5pbnB1dC10ZXh0IHtcbiAgb3JkZXI6IDA7XG4gIHotaW5kZXg6IDI7IH1cblxuLmZpZWxkc2V0IC5mdWxsbmFtZS5maWVsZCA+IC5sYWJlbCB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiAxICovIH1cbiAgLmZpZWxkc2V0IC5mdWxsbmFtZS5maWVsZCA+IC5sYWJlbCArIC5jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuXG4uZmllbGQuc3RyZWV0IC5maWVsZCAubGFiZWwge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqLyB9XG5cbi5jb250cm9sLmNhcHRjaGEtaW1hZ2Uge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG5cbi5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5hY2NvdW50IC5jb2x1bW4ubWFpbixcbiAgLmFjY291bnQgLnNpZGViYXItYWRkaXRpb25hbCB7XG4gICAgbWFyZ2luOiAwOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmxvZ2luLWNvbnRhaW5lciAuZmllbGRzZXQ6YWZ0ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuZm9ybS5zZWFyY2guYWR2YW5jZWQgLmZpZWxkLnByaWNlIC53aXRoLWFkZG9uIC5pbnB1dC10ZXh0IHtcbiAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmxvZ2luLWNvbnRhaW5lciAuYmxvY2sgLmxvZ2luIC5hY3Rpb25zLXRvb2xiYXIgPiAucHJpbWFyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDNyZW07IH1cbiAgLmxvZ2luLWNvbnRhaW5lciAuYmxvY2sgLmxvZ2luIC5hY3Rpb25zLXRvb2xiYXIgPiAuc2Vjb25kYXJ5IHtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWwge1xuICAgIHBhZGRpbmc6IDZweCAxNXB4IDAgMDtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICB3aWR0aDogMjUuOCU7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmbG9hdDogbGVmdDsgfVxuICAuZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAuY29udHJvbCB7XG4gICAgd2lkdGg6IDc0LjIlO1xuICAgIGZsb2F0OiBsZWZ0OyB9XG4gIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIHtcbiAgICBmb250LXNpemU6IDA7IH1cbiAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICB3aWR0aDogNDguOCU7IH1cbiAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtbGFzdC1jaGlsZCgxKSxcbiAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtbGFzdC1jaGlsZCgyKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gICAgbWFyZ2luLWxlZnQ6IDIuNCU7IH1cbiAgLmNvbnRyb2wuY2FwdGNoYS1pbWFnZSAuY2FwdGNoYS1pbWcge1xuICAgIG1hcmdpbjogMCAxcmVtIDFyZW0gMDsgfVxuICAuZGFzaGJvYXJkLXdlbGNvbWUtdG9nZ2xlciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfSB9XG4iLCIvKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG5cbkBtaXhpbiB2aXN1YWxseS1oaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgLyogMSAqL1xufVxuXG5AbWl4aW4gdmlzdWFsbHktdmlzaWJsZSB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xufVxuIiwiLy8gU3R5bGVzIG1vdmVkIGZyb24gbWFnZW50byBibHNuayB0aGVtZTogTWFnZW50b19DdXN0b21lci93ZWIvY3NzL3NvdXJjZS9fbW9kdWxlLmxlc3Ncbi8vIGluIG9yZGVyIHRvIGhhdmUgYmV0dGVyIGNvbnRyb2wgb3ZlciB0aGVtIGFuZCBiZSBhYmxlIHRvIGltcG9ydCB0aGVtIG9ubHkgaW5zaWRlIGN1c3RvbWVyLnRzIGVudHJ5XG5cbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbi5sb2dpbi1jb250YWluZXIgLmJsb2NrLW5ldy1jdXN0b21lciAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG59XG5cbi5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5ibG9jay10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlOGU4ZTg7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XG59XG5cbi5sb2dpbi1jb250YWluZXIgLmZpZWxkc2V0OmFmdGVyIHtcbiAgICBtYXJnaW46IDFyZW0gMCAwO1xuICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1oYXNyZXF1aXJlZCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBjb2xvcjogI2UwMmIyNztcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbn1cblxuLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbn1cblxuLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZm9ybS1hZGRyZXNzLWVkaXQgLnJlZ2lvbl9pZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmZvcm0tYWRkcmVzcy1lZGl0IC5hY3Rpb25zLXRvb2xiYXIgLmFjdGlvbi5wcmltYXJ5IHtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbn1cblxuLmZvcm0tZWRpdC1hY2NvdW50IC5maWVsZHNldC5wYXNzd29yZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmJveC1iaWxsaW5nLWFkZHJlc3MgLmJveC1jb250ZW50LFxuLmJveC1zaGlwcGluZy1hZGRyZXNzIC5ib3gtY29udGVudCxcbi5ib3gtaW5mb3JtYXRpb24gLmJveC1jb250ZW50LFxuLmJveC1uZXdzbGV0dGVyIC5ib3gtY29udGVudCB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIGxpbmUtaGVpZ2h0OiAyLjZyZW07XG59XG5cbi5maWVsZC5wYXNzd29yZCAuY29udHJvbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4uZmllbGQucGFzc3dvcmQgLmNvbnRyb2wgLm1hZ2UtZXJyb3Ige1xuICAgIG9yZGVyOiAyO1xufVxuXG4uZmllbGQucGFzc3dvcmQgLmNvbnRyb2wgLmlucHV0LXRleHQge1xuICAgIG9yZGVyOiAwO1xuICAgIHotaW5kZXg6IDI7XG59XG5cbi5maWVsZHNldCAuZnVsbG5hbWUuZmllbGQge1xuICAgID4gLmxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuXG4gICAgICAgICsgLmNvbnRyb2wge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5maWVsZC5zdHJlZXQge1xuICAgIC5maWVsZCB7XG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW47XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jb250cm9sLmNhcHRjaGEtaW1hZ2Uge1xuICAgIG1hcmdpbi10b3A6IDFyZW07XG59XG5cbi5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xufVxuXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gICAgLmFjY291bnQgLmNvbHVtbi5tYWluLFxuICAgIC5hY2NvdW50IC5zaWRlYmFyLWFkZGl0aW9uYWwge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAubG9naW4tY29udGFpbmVyIC5maWVsZHNldDphZnRlciB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuY29udHJvbC5jYXB0Y2hhLWltYWdlIC5jYXB0Y2hhLWltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIC5mb3JtLnNlYXJjaC5hZHZhbmNlZCAuZmllbGQucHJpY2UgLndpdGgtYWRkb24gLmlucHV0LXRleHQge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAubG9naW4tY29udGFpbmVyIC5ibG9jayAubG9naW4gLmFjdGlvbnMtdG9vbGJhciA+IC5wcmltYXJ5IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAzcmVtO1xuICAgIH1cblxuICAgIC5sb2dpbi1jb250YWluZXIgLmJsb2NrIC5sb2dpbiAuYWN0aW9ucy10b29sYmFyID4gLnNlY29uZGFyeSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6IDZweCAxNXB4IDAgMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAyNS44JTtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLmZpZWxkc2V0IC5mdWxsbmFtZSAuZmllbGQgLmNvbnRyb2wge1xuICAgICAgICB3aWR0aDogNzQuMiU7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzIHtcbiAgICAgICAgZm9udC1zaXplOiAwO1xuICAgIH1cblxuICAgIC5ibG9jay1hZGRyZXNzZXMtbGlzdCAuaXRlbXMuYWRkcmVzc2VzID4gLml0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgICB3aWR0aDogNDguOCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IC5pdGVtcy5hZGRyZXNzZXMgPiAuaXRlbTpudGgtbGFzdC1jaGlsZCgxKSxcbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtOm50aC1sYXN0LWNoaWxkKDIpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAuYmxvY2stYWRkcmVzc2VzLWxpc3QgLml0ZW1zLmFkZHJlc3NlcyA+IC5pdGVtOm50aC1jaGlsZChldmVuKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyLjQlO1xuICAgIH1cblxuICAgIC5jb250cm9sLmNhcHRjaGEtaW1hZ2UgLmNhcHRjaGEtaW1nIHtcbiAgICAgICAgbWFyZ2luOiAwIDFyZW0gMXJlbSAwO1xuICAgIH1cblxuICAgIC5kYXNoYm9hcmQtd2VsY29tZS10b2dnbGVyIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zbGlkZXItbmF2aWdhdGlvbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbiB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAxMTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB3aWR0aDogNC40cmVtO1xuICAgICAgaGVpZ2h0OiA1LjJyZW07XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMjUpO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3M7IH1cbiAgICAgIC5jcy1zbGlkZXItbmF2aWdhdGlvbi0tcHJldiB7XG4gICAgICAgIGxlZnQ6IDEuNXJlbTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uLS1uZXh0IHtcbiAgICAgICAgcmlnaHQ6IDEuNXJlbTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMjU7XG4gICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uW2Rpc2FibGVkXSBzdmcge1xuICAgICAgICAgIGZpbHRlcjogZ3JheXNjYWxlKDEpOyB9XG4gICAgICAuY3Mtc2xpZGVyLW5hdmlnYXRpb246bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjI1KTsgfVxuICAgICAgLmNzLXNsaWRlci1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgd2lkdGg6IDEuNHJlbTtcbiAgICAgICAgaGVpZ2h0OiAyLjdyZW07XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvX3NsaWRlci9uYXZpZ2F0aW9uL21peGluJztcblxuLiN7JG5zfXNsaWRlci1uYXZpZ2F0aW9uIHtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICBAaW5jbHVkZSBzbGlkZXItbmF2aWdhdGlvbigpO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuJHRyaWdnZXJfd2lkdGg6IDQuNHJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2hlaWdodDogNS4ycmVtICFkZWZhdWx0O1xuJHRyaWdnZXJfZWRnZS1vZmZzZXQ6IDEuNXJlbSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2JvcmRlcjogMCAhZGVmYXVsdDtcbiR0cmlnZ2VyX3JhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiR0cmlnZ2VyX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiR0cmlnZ2VyX3NoYWRvdzogMXB4IDFweCAycHggMCByZ2JhKCRjb2xvcl9ibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9zaGFkb3ctLWhvdmVyOiAxcHggMXB4IDEwcHggMCByZ2JhKCRjb2xvcl9ibGFjaywgMC4yNSkgIWRlZmF1bHQ7XG4kdHJpZ2dlcl9jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0OyAvLyBpY29uIGNvbG9yIGluaGVyaXRzXG4kdHJpZ2dlci0tZGlzYWJsZWQtb3BhY2l0eTogMC4yNSAhZGVmYXVsdDtcbiR0cmlnZ2VyLS1kaXNhYmxlZC1ncmF5b3V0OiB0cnVlICFkZWZhdWx0O1xuXG4kdHJpZ2dlci1pY29uX3dpZHRoOiAxLjRyZW0gIWRlZmF1bHQ7XG4kdHJpZ2dlci1pY29uX2hlaWdodDogMi43cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gc2xpZGVyLW5hdmlnYXRpb24oKSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDExO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAkdHJpZ2dlcl93aWR0aDtcbiAgICBoZWlnaHQ6ICR0cmlnZ2VyX2hlaWdodDtcbiAgICBib3JkZXI6ICR0cmlnZ2VyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkdHJpZ2dlcl9yYWRpdXM7XG4gICAgYmFja2dyb3VuZDogJHRyaWdnZXJfYmFja2dyb3VuZDtcbiAgICBib3gtc2hhZG93OiAkdHJpZ2dlcl9zaGFkb3c7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJHRyaWdnZXJfY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG5cbiAgICAmLS1wcmV2IHtcbiAgICAgICAgbGVmdDogJHRyaWdnZXJfZWRnZS1vZmZzZXQ7XG4gICAgfVxuXG4gICAgJi0tbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAkdHJpZ2dlcl9lZGdlLW9mZnNldDtcbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICR0cmlnZ2VyLS1kaXNhYmxlZC1vcGFjaXR5O1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgIEBpZiAoJHRyaWdnZXItLWRpc2FibGVkLWdyYXlvdXQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGdyYXlzY2FsZSgxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6bm90KFtkaXNhYmxlZF0pOmhvdmVyIHtcbiAgICAgICAgYm94LXNoYWRvdzogJHRyaWdnZXJfc2hhZG93LS1ob3ZlcjtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICR0cmlnZ2VyLWljb25fd2lkdGg7XG4gICAgICAgIGhlaWdodDogJHRyaWdnZXItaWNvbl9oZWlnaHQ7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItbmF2aWdhdGlvbi1ob29rKCk7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3Mtc2xpZGVyLXBhZ2luYXRpb24ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDAuOHJlbTtcbiAgbWluLWhlaWdodDogM3JlbTsgfVxuICAuY3Mtc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uIHtcbiAgICBnYXA6IDA7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgICAuY3Mtc2xpZGVyLXBhZ2luYXRpb24tLWZyYWN0aW9uIHNwYW4ge1xuICAgICAgY29sb3I6ICMxMWEwOTk7IH1cbiAgLmNzLXNsaWRlci1wYWdpbmF0aW9uX19idWxsZXQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDA7XG4gICAgaW5saW5lLXNpemU6IDIuMnJlbTtcbiAgICBibG9jay1zaXplOiAwLjlyZW07XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1pbmRlbnQ6IC05OXJlbTsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0LmN1cnJlbnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTsgfVxuICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbl9fYnVsbGV0Om9ubHktY2hpbGQge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL19zbGlkZXIvcGFnaW5hdGlvbi9taXhpbic7XG5cbi4jeyRuc31zbGlkZXItcGFnaW5hdGlvbiB7XG4gICAgQGluY2x1ZGUgc2xpZGVyLXBhZ2luYXRpb24oKTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldHMtZ2FwOiAwLjhyZW0gIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJvcmRlcjogMCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtcmFkaXVzOiAycHggIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJnLS1jdXJyZW50OiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcblxuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1oZWlnaHQ6IDAuOXJlbSAhZGVmYXVsdDtcblxuJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fY3VycmVudC1jb2xvcjogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBzbGlkZXItcGFnaW5hdGlvbigpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldHMtZ2FwO1xuICAgIG1pbi1oZWlnaHQ6IDNyZW07XG5cbiAgICAmLS1mcmFjdGlvbiB7XG4gICAgICAgIGdhcDogMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgICAgICBjb2xvcjogJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRzbGlkZXItcGFnaW5hdGlvbi0tZnJhY3Rpb25fZm9udC13ZWlnaHQ7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJHNsaWRlci1wYWdpbmF0aW9uLS1mcmFjdGlvbl9jdXJyZW50LWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnVsbGV0IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LXJhZGl1cztcbiAgICAgICAgYmFja2dyb3VuZDogJHNsaWRlci1wYWdpbmF0aW9uX2J1bGxldC1iZztcbiAgICAgICAgYm9yZGVyOiAkc2xpZGVyLXBhZ2luYXRpb25fYnVsbGV0LWJvcmRlcjtcbiAgICAgICAgaW5saW5lLXNpemU6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtd2lkdGg7XG4gICAgICAgIGJsb2NrLXNpemU6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtaGVpZ2h0O1xuICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXM7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtaW5kZW50OiAtOTlyZW07XG5cbiAgICAgICAgJi5jdXJyZW50IHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzbGlkZXItcGFnaW5hdGlvbl9idWxsZXQtYmctLWN1cnJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOm9ubHktY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1wYWdpbmF0aW9uLWhvb2soKTtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIE1peGlucyBmb3IgZmxleGlibGUgY29udGFpbmVycyBkZWNsYXJhdGlvbi5cbiAqL1xuLyoqXG4gKiBEZWZpbmVzIHBhZ2UgY29udGFpbmVyLiBUaGlzIG1peGluIG1ha2VzIHN1cmUgdGhhdCB0aGUgY29udGVudCBoYXMgYWx3YXlzIGVxdWFsIHBhZGRpbmdcbiAqIGZvciBtb2JpbGUgc2NyZWVucyBvbiBib3RoIHNpemUgb2YgdGhlIGRldmljZS5cbiAqL1xuLyoqXG4gKiBOZWdhdGVzIHBhcmVudCBjb250YWluZXIncyBwYWRkaW5nIGFuZCBzZXRzIGl0IG93bi5cbiAqIFNvbWV0aGltZXMgdGhpcyBoYXMgdG8gYmUgZG9uZSB0byBtYWtlIGJhY2tncm91bmQgZXZlbiB0byBvdGhlciBjb250YWluZXJzJyBjb250ZW50LlxuICovXG4vKipcbiAqIERlZmluZXMgY29udGFpbmVyIHdyYXBwZXIgdGhhdCBtYWtlcyBzdXJlIGNvbnRuZXQgZG9lc24ndCBleHRlbmQgYWJvdmUgY2VydGFpbiB3aWR0aCBhbmQgaXMgYWx3YXlzIGNlbnRlcmVkLlxuICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtYWRkdG9jYXJ0IHtcbiAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgLyogc3R5bGVsaW50LWVuYWJsZSAqLyB9XG4gIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICBAc3VwcG9ydHMgKGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAyMDBweCkpIHtcbiAgICAgIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgICBjbGlwLXBhdGg6IGluc2V0KDAgMCAwIDAgcm91bmQgMjAwcHgpOyB9IH1cbiAgICAucGFnZS1wcm9kdWN0LWRvd25sb2FkYWJsZSAudXBkYXRlIC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXMsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmJlZm9yZSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAzLjRlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMjAwcHggMjAwcHggMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphZnRlciB7XG4gICAgICB3aWR0aDogM2VtO1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgLyogXG4gICAgICAgICAgICAgKiBBVEMgYnRuLiBpbiBidXlib3ggdXNlcyBkZWZlckFUQ0NsaWNrKClcbiAgICAgICAgICAgICAqIGFzIHBhcnQgb2YgdGhlIGBGYXN0ZXIgQWRkIFRvIENhcnRgIGVuYWhuY2VtZW50XG4gICAgICAgICAgICAgKiB0aGVyZWZvcmUgaXQncyBhcHBlYXJhbmNlIGlzIHNldCB0byBub3JtYWwgYWxsIHRoZSB0aW1lLlxuICAgICAgICAgICAgICovIH1cbiAgICAgIC5jcy1idXlib3ggLmNzLWFkZHRvY2FydF9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmhvdmVyIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpmb2N1cyAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19idXR0b24gLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uICosIC5jcy1hZGR0b2NhcnRfX2J1dHRvbjpob3ZlciAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24gKiwgLmNzLWFkZHRvY2FydF9fYnV0dG9uOmZvY3VzIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqLCAuY3MtYWRkdG9jYXJ0X19idXR0b246YWN0aXZlIC5jcy1hZGR0b2NhcnRfX2ZhaWwtaWNvbiAqIHtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uLCAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTtcbiAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB3aWR0aDogMi4ycmVtO1xuICAgIGhlaWdodDogMi4ycmVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlICovXG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi8gfVxuICAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsIHtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTsgfVxuICAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMTVzIGxpbmVhciwgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gICAgLmNzLWFkZHRvY2FydF9fbG9hZGluZy1iYWxsIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwcHg7XG4gICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICBib3R0b206IDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTAlOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTEge1xuICAgICAgICBsZWZ0OiAwOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19sb2FkaW5nLWJhbGwtLTIge1xuICAgICAgICBsZWZ0OiAxNXB4O1xuICAgICAgICBhbmltYXRpb24tZGVsYXk6IDAuMTVzICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbC0tMyB7XG4gICAgICAgIGxlZnQ6IDMwcHg7XG4gICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcyAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogLTFlbTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyLjVlbSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTAwJSwgMCwgMCk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4wMSwgMC42NSwgMC4zOCwgMSk7XG4gICAgYmFja2dyb3VuZDogIzMxYTQzYTsgfVxuICAgIC5jcy1hZGR0b2NhcnQtLW5vLXRyYW5zaXRpb25zIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICAgIHRyYW5zaXRpb246IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1mYWlsIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICAgIGJhY2tncm91bmQ6ICNjYzFjMTA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWxhYmVsLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uLCAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIGhlaWdodDogMS43MjVlbTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzOyB9XG4gIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtbGFiZWwsIC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0yZW0pO1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAzLjVyZW07IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3ksIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIHtcbiAgICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgdG9wOiAwO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC51aS1kaWFsb2csIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS11bnN0aWNrIC51aS1kaWFsb2cge1xuICAgICAgICByaWdodDogMCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tc3RpY2t5IC5ibG9jay1taW5pY2FydDphZnRlciwgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmJsb2NrLW1pbmljYXJ0OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDMuMnJlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LS1zdGlja3kgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayxcbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtLXVuc3RpY2sgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtbGluayB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmc6IDIuNXJlbSAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm94LXNoYWRvdzogMXB4IDNweCA0LjVyZW0gMCByZ2JhKDMwLCA0OCwgNjcsIDAuMzQpO1xuICAgIGFuaW1hdGlvbjogbWluaWNhcnQtaW4gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC0tdW5zdGljayAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1saW5rIHtcbiAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpOyB9XG4gIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LWxpbms6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgICAuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tYW5pbWF0aW5nIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAxLjNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWFkZHRvY2FydF9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXItLWFuaW1hdGluZyB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogNS4zcmVtOyB9IH1cbiAgICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyLS1hbmltYXRpbmcuY3MtYWRkdG9jYXJ0X19taW5pY2FydC1xdHktYmFkZ2Utd3JhcHBlci0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICB0b3A6IDEuOHJlbTsgfVxuICAgIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZS13cmFwcGVyIC5jcy1hZGR0b2NhcnRfX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCwgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24tbGFiZWwge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApIHRyYW5zbGF0ZVgoLTEuMjVlbSk7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2xvYWRpbmctYmFsbCB7XG4gICAgICBhbmltYXRpb246IGJhbGwtaW4gMXMgaW5maW5pdGU7IH1cbiAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiB7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1kb25lIC5jcy1hZGR0b2NhcnRfX2ZlZWRiYWNrLWJnIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZzphZnRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01LjNyZW0sIDAsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLXN1Y2Nlc3MgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1pY29uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1hZGR0b2NhcnQtLXN1Y2Nlc3MgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWZhaWwgLmNzLWFkZHRvY2FydF9fZmFpbC1sYWJlbCB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1sYWJlbCxcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWljb24ge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuNXM7IH1cbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmcge1xuICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7IH1cbiAgICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mZWVkYmFjay1iZywgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgY3ViaWMtYmV6aWVyKDAuODYsIDAuMDEsIDAuODMsIDAuNTEpOyB9XG4gICAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmVlZGJhY2stYmc6YWZ0ZXIge1xuICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDsgfVxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19zdWNjZXNzLWxhYmVsLFxuICAuY3MtYWRkdG9jYXJ0LS1hbmltYXRpb24tZG9uZSAuY3MtYWRkdG9jYXJ0X19mYWlsLWljb24ge1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC42cyBsaW5lYXIsIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG4gIC5jcy1hZGR0b2NhcnQtLWFuaW1hdGlvbi1kb25lIC5jcy1hZGR0b2NhcnRfX3N1Y2Nlc3MtaWNvbixcbiAgLmNzLWFkZHRvY2FydC0tYW5pbWF0aW9uLWRvbmUgLmNzLWFkZHRvY2FydF9fZmFpbC1pY29uIHtcbiAgICB0cmFuc2l0aW9uLWRlbGF5OiAwOyB9XG5cbkBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9XG4gIDUwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwOyB9IH1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1pbiB7XG4gIDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApOyB9IH1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1vdXQge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTsgfVxuICAxMDAlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0xMDAlLCAwKTsgfSB9XG5cbkBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAwJSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxNSUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH1cbiAgODAlIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuICAuY3MtYWRkdG9jYXJ0IC5ibG9jay1taW5pY2FydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuIiwiLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG5cbkBmdW5jdGlvbiBnZXQtdmFsdWUtZnJvbS1saXN0KCR2YXJpYWJsZSwgJHNpZGUpIHtcbiAgICAkbGVuZ3RoOiBsZW5ndGgoJHZhcmlhYmxlKTtcblxuICAgIEBpZiAoJGxlbmd0aCA9PSAxKSB7XG4gICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgfSBAZWxzZSBpZiAoJGxlbmd0aCA9PSAyKSB7XG4gICAgICAgIEBpZiAoJHNpZGUgPT0gJ3VwJykgT1IgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAxKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2xlZnQnKSBPUiAoJHNpZGUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAyKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gMykge1xuICAgICAgICBAaWYgKCRzaWRlID09ICdsZWZ0JykgT1IgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICd1cCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAzKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgKCRsZW5ndGggPT0gNCkge1xuICAgICAgICBAaWYgKCRzaWRlID09ICd1cCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMSk7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIEByZXR1cm4gbnRoKCR2YXJpYWJsZSwgMik7XG4gICAgICAgIH0gQGVsc2UgaWYgKCRzaWRlID09ICdkb3duJykge1xuICAgICAgICAgICAgQHJldHVybiBudGgoJHZhcmlhYmxlLCAzKTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBAcmV0dXJuIG50aCgkdmFyaWFibGUsIDQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbkBtaXhpbiBidXR0b24taG9vaygkdHlwZSwgJGljb25fcG9zKSB7XG59XG5cbkBtaXhpbiBidXR0b25fc3Bhbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpIHtcbn1cblxuQG1peGluIGJ1dHRvbl9pY29uLWhvb2soJHR5cGUsICRpY29uX3Bvcykge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NvbnRhaW5lci9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kYWRkdG9jYXJ0X2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb246ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24taWNvbi13aWR0aDogMi4ycmVtICFkZWZhdWx0O1xuJGFkZHRvY2FydF9idXR0b24taWNvbi1oZWlnaHQ6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGggIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2J1dHRvbi1pY29uLWVkZ2UtZ3V0dGVyOiAwLjhlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9idXR0b24tc2tld2VkLWJhY2tncm91bmQtd2lkdGg6IDUuMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdDogMXJlbSAhZGVmYXVsdDtcbiRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctcmlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTogMTBweCAhZGVmYXVsdDtcblxuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctcHJpbWFyeTogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtYmctc2Vjb25kYXJ5OiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtZmlsbDogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3IgIWRlZmF1bHQ7XG5cbiRhZGR0b2NhcnRfYWpheC1mYWlsLWJnLXByaW1hcnk6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1iZy1zZWNvbmRhcnk6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGFkZHRvY2FydF9hamF4LWZhaWwtZmlsbDogJGFkZHRvY2FydF9hamF4LWZhaWwtY29sb3IgIWRlZmF1bHQ7XG5cbi4jeyRuc31hZGR0b2NhcnQge1xuICAgICRyb290OiAmO1xuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIC8vIGJlY2F1c2UgYnV0dG9uIGNhbid0IGhhdmUgb3ZlcmZsb3csIHdlIG5lZWQgdG8gYWRkIGl0IG9uIGJ1dHRvbiB3cmFwcGVyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgQGlmICgkYnV0dG9uX2JvcmRlci1yYWRpdXMgPiAwKSB7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKGNsaXAtcGF0aDogaW5zZXQoMCAwIDAgMCByb3VuZCAkYnV0dG9uX2JvcmRlci1yYWRpdXMpKSB7XG4gICAgICAgICAgICAgICAgY2xpcC1wYXRoOiBpbnNldCgwIDAgMCAwIHJvdW5kICRidXR0b25fYm9yZGVyLXJhZGl1cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIaWRlIHVubmVjZXNzYXJ5IGFkZCB0byBjYXJ0IGJ1dHRvbiBvbiBkb3dubG9hZGFibGUgcHJvZHVjdCB1cGRhdGUgcGRwXG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZG93bmxvYWRhYmxlIC51cGRhdGUgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKCR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uICk7XG5cbiAgICAgICAgJltkaXNhYmxlZF0ge1xuXG4gICAgICAgICAgICAvKiBcbiAgICAgICAgICAgICAqIEFUQyBidG4uIGluIGJ1eWJveCB1c2VzIGRlZmVyQVRDQ2xpY2soKVxuICAgICAgICAgICAgICogYXMgcGFydCBvZiB0aGUgYEZhc3RlciBBZGQgVG8gQ2FydGAgZW5haG5jZW1lbnRcbiAgICAgICAgICAgICAqIHRoZXJlZm9yZSBpdCdzIGFwcGVhcmFuY2UgaXMgc2V0IHRvIG5vcm1hbCBhbGwgdGhlIHRpbWUuXG4gICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC4jeyRuc31idXlib3ggJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGFkZHRvY2FydF9hamF4LXN1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zdWNjZXNzLWljb24ge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYWRkdG9jYXJ0X2FqYXgtc3VjY2Vzcy1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRhZGR0b2NhcnRfYWpheC1mYWlsLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtbGFiZWwsXG4gICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKCR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uICk7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fY29uZmlndXJlLWljb24sXG4gICAgJl9fYnV0dG9uLWljb24sXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKCR0eXBlOiAkYWRkdG9jYXJ0X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uICk7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICAgICAgd2lkdGg6ICRhZGR0b2NhcnRfYnV0dG9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9idXR0b24taWNvbi1oZWlnaHQ7XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbiAgICAgICAgQGlmICgkYWRkdG9jYXJ0X2J1dHRvbi1pY29uLXBvc2l0aW9uID09J3JpZ2h0Jykgb3IgKCRhZGR0b2NhcnRfYnV0dG9uLWljb24tcG9zaXRpb24gPT0nbGVmdCcpIHtcbiAgICAgICAgICAgICN7JGFkZHRvY2FydF9idXR0b24taWNvbi1wb3NpdGlvbn06ICRhZGR0b2NhcnRfYnV0dG9uLWljb24tZWRnZS1ndXR0ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBzdHlsZWxpbnQtZW5hYmxlICovXG4gICAgfVxuXG4gICAgJl9fZmFpbC1pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwsXG4gICAgJl9fc3VjY2Vzcy1sYWJlbCB7XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4xNXMgbGluZWFyLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFzIGN1YmljLWJlemllcigwLCAwLjc3LCAwLjE4LCAxKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgfVxuXG4gICAgJl9fbG9hZGluZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgd2lkdGg6ICRhZGR0b2NhcnRfbG9hZGluZy1pbmRpY2F0b3ItYmFsbC1zaXplICogNDtcbiAgICAgICAgaGVpZ2h0OiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuXG4gICAgICAgICYtYmFsbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJGFkZHRvY2FydF9sb2FkaW5nLWluZGljYXRvci1iYWxsLXNpemU7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2xvYWRpbmctaW5kaWNhdG9yLWJhbGwtY29sb3I7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG5cbiAgICAgICAgICAgICYtLTEge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLTIge1xuICAgICAgICAgICAgICAgIGxlZnQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiAwLjE1cyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS0zIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAzMHB4O1xuICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogMC4zcyAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmVlZGJhY2stYmcge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IC0xZW07XG4gICAgICAgIHRvcDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIGJvdHRvbTogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAyLjVlbSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApO1xuICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjQ1cyBjdWJpYy1iZXppZXIoMC4wMSwgMC42NSwgMC4zOCwgMSk7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhZGR0b2NhcnRfYWpheC1zdWNjZXNzLWJnLXNlY29uZGFyeTtcblxuICAgICAgICAjeyRyb290fS0tbm8tdHJhbnNpdGlvbnMgJiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWZhaWwgJiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkYWRkdG9jYXJ0X2FqYXgtZmFpbC1iZy1zZWNvbmRhcnk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX3N1Y2Nlc3MtaWNvbixcbiAgICAmX19mYWlsLWxhYmVsLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1pY29uLFxuICAgICZfX2ZhaWwtaWNvbiB7XG4gICAgICAgIGhlaWdodDogMS43MjVlbTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMC4ycztcbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLWxhYmVsLFxuICAgICZfX2ZhaWwtbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgdHJhbnNsYXRlWCgtMmVtKTsgLy8gY2FsYygpIGRvZXNuJ3Qgd29yayBpbiBJRSBzbyBpIGhhZCB0byBkdXBsaWNhdGUgdHJhbnNsYXRlWCgpIHRyYW5zZm9ybSB0byBhZGp1c3QgWCBwb3NpdGlvblxuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjJzO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAjeyRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctcmlnaHQgLVxuICRhZGR0b2NhcnRfYnV0dG9uLXBhZGRpbmctbGVmdFxuICAgIH1cblxuICAgIDtcbn1cblxuJl9fbWluaWNhcnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICYtLXN0aWNreSxcbiAgICAmLS11bnN0aWNrIHtcbiAgICAgICAgQGluY2x1ZGUgY29udGFpbmVyLXdyYXBwZXIoKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgIHotaW5kZXg6IDQwMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG5cbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJsb2NrLW1pbmljYXJ0IHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAzLjJyZW0gIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuJl9fbWluaWNhcnQtbGluayB7XG5cbiAgICAjeyRyb290fV9fbWluaWNhcnQtLXN0aWNreSAmLFxuICAgICN7JHJvb3R9X19taW5pY2FydC0tdW5zdGljayAmIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAyLjVyZW0gMXJlbTtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwO1xuICAgICAgICBib3gtc2hhZG93OiAxcHggM3B4IDQuNXJlbSAwIHJnYmEoMzAsIDQ4LCA2NywgMC4zNCk7XG4gICAgICAgIGFuaW1hdGlvbjogbWluaWNhcnQtaW4gMXMgY3ViaWMtYmV6aWVyKDAsIDAuNzcsIDAuMTgsIDEpO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX21pbmljYXJ0LS11bnN0aWNrICYge1xuICAgICAgICBhbmltYXRpb246IG1pbmljYXJ0LW91dCAwLjVzIGN1YmljLWJlemllcigwLjU1LCAwLjIsIDAuODksIDAuNDUpO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuJl9fbWluaWNhcnQtcXR5LWJhZGdlLXdyYXBwZXIge1xuICAgICRiYWRnZS13cmFwcGVyOiAmO1xuXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgei1pbmRleDogNjAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSxcbiAgICAgICAgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgICYtLWFuaW1hdGluZyB7XG4gICAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgdG9wOiAwLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgdG9wOiAxLjNyZW07XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYjeyRiYWRnZS13cmFwcGVyfS0tbWluaWNhcnQtc3RpY2t5IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMS44cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX21pbmljYXJ0LXF0eS1iYWRnZSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgfVxufVxuXG4mLS1sb2FkaW5nLFxuJi0tZG9uZSB7XG4gICAgI3skcm9vdH1fX2J1dHRvbi1sYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMmVtLCAwLCAwKTtcbiAgICB9XG59XG5cbiYtLWxvYWRpbmcge1xuICAgICN7JHJvb3R9X19sb2FkaW5nIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKSB0cmFuc2xhdGVYKC0xLjI1ZW0pOyAvLyBjYWxjKCkgZG9lc24ndCB3b3JrIGluIElFIHNvIGkgaGFkIHRvIGR1cGxpY2F0ZSB0cmFuc2xhdGVYKCkgdHJhbnNmb3JtIHRvIGFkanVzdCBYIHBvc2l0aW9uXG5cbiAgICAgICAgJi1iYWxsIHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogYmFsbC1pbiAxcyBpbmZpbml0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJi0tZG9uZSB7XG4gICAgI3skcm9vdH1fX2J1dHRvbi1pY29uIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAjeyRyb290fV9fZmVlZGJhY2stYmcge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtI3skYWRkdG9jYXJ0X2J1dHRvbi1za2V3ZWQtYmFja2dyb3VuZC13aWR0aCArIDAuMn0sXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAwKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJi0tc3VjY2VzcyB7XG4gICAgI3skcm9vdH1fX3N1Y2Nlc3MtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3N1Y2Nlc3MtbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIH1cbn1cblxuJi0tZmFpbCB7XG4gICAgI3skcm9vdH1fX2ZhaWwtaWNvbiB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2ZhaWwtbGFiZWwge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgIH1cbn1cblxuJi0tYW5pbWF0aW9uLWRvbmUge1xuXG4gICAgI3skcm9vdH1fX2J1dHRvbi1sYWJlbCxcbiAgICAjeyRyb290fV9fYnV0dG9uLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgIH1cblxuICAgICN7JHJvb3R9X19mZWVkYmFjay1iZyB7XG4gICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDAuMnM7XG5cbiAgICAgICAgJixcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC44NiwgMC4wMSwgMC44MywgMC41MSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb24tZGVsYXk6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9fc3VjY2Vzcy1sYWJlbCxcbiAgICAjeyRyb290fV9fZmFpbC1pY29uIHtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjZzIGxpbmVhcixcbiAgICAgICAgICAgIHRyYW5zZm9ybSAwLjZzIGN1YmljLWJlemllcigwLjg2LCAwLjAxLCAwLjgzLCAwLjUxKTtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogMDtcbiAgICB9XG5cbiAgICAjeyRyb290fV9fc3VjY2Vzcy1pY29uLFxuICAgICN7JHJvb3R9X19mYWlsLWljb24ge1xuICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwO1xuICAgIH1cbn1cblxuLyogc3R5bGVsaW50LWRpc2FibGUgKi9cbkBrZXlmcmFtZXMgYmFsbC1pbiB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cblxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1pbmljYXJ0LWluIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApO1xuICAgIH1cblxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyBtaW5pY2FydC1vdXQge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICB9XG5cbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMTAwJSwgMCk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgMTUlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG5cbiAgICA4MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7XG4gICAgfVxuXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG5cbi5ibG9jay1taW5pY2FydCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cbn0iLCJAaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL2FuaW1hdGlvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9ob29rJztcblxuLy8gRGVmaW5lIGRlZmF1bHQgdHlwZSBmb3IgYnV0dG9ucy4gWW91IGNhbiBvdmVycmlkZSBpdCBpbmRpdmlkdWFsbHkgcGVyIGJ1dHRvbiBpbiBlYWNoIGNvbXBvbmVudFxuLy8gVmFyaWFudHM6IHByaW1hcnkgfCBzZWNvbmRhcnkgfCBsaW5rIHwgc3VjY2VzcyB8IGVycm9yXG4kYnV0dG9uX2RlZmF1bHQtdHlwZTogJ3ByaW1hcnknICFkZWZhdWx0O1xuXG4vLyBEZWZpbmUgZGVmYXVsdCBwb3NpdGlvbiBmb3IgaWNvbnMgaW4gYnV0dG9uLiBZb3UgY2FuIG92ZXJyaWRlIGl0IGluZGl2aWR1YWxseSBwZXIgYnV0dG9uIGluIGVhY2ggY29tcG9uZW50XG4vLyBWYXJpYW50czogbGVmdCB8IHJpZ2h0IHwgbm8taWNvbiB8IG9ubHktaWNvblxuJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zOiAncmlnaHQnICFkZWZhdWx0O1xuXG4vLyBHZW5lcmFsIHN0eWxlcyBmb3IgYnV0dG9uc1xuJGJ1dHRvbl9mb250LXNpemU6IDEuOHJlbSAhZGVmYXVsdDtcbiRidXR0b25fZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRidXR0b25fYm9yZGVyLXNpemU6IDFweCAhZGVmYXVsdDtcbiRidXR0b25fcGFkZGluZzogMC43NWVtIDFlbSAhZGVmYXVsdDtcbiRidXR0b25fcGFkZGluZy13aGVuLWljb246IDNlbSAhZGVmYXVsdDtcbiRidXR0b25fbGluZS1oZWlnaHQ6IDEuMjc1ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2JvcmRlci1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJGJ1dHRvbl9hbmltYXRpb24tdGltZTogMC41cyAhZGVmYXVsdDtcbiRidXR0b25fYW5pbWF0aW9uLWJlZm9yZS13aWR0aDogMy40ZW0gIWRlZmF1bHQ7XG4kYnV0dG9uX2FuaW1hdGlvbi1hZnRlci13aWR0aDogM2VtICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRidXR0b25fdGV4dC1sZXR0ZXItc3BhY2luZzogbm9ybWFsICFkZWZhdWx0O1xuJGJ1dHRvbl90ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHByaW1hcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3ByaW1hcnktYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3ByaW1hcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fcHJpbWFyeS1lbmFibGUtYW5pbWF0aW9uOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdHlsZXMgZm9yIGBzZWNvbmRhcnlgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3NlY29uZGFyeS1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG4kYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc2Vjb25kYXJ5LWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBTdHlsZSBmb3IgYGxpbmtgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2xpbmstY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay0taG92ZXItY29sb3I6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRidXR0b25fbGluay1pY29uLXBhZGRpbmc6IDJyZW0gIWRlZmF1bHQ7XG5cbi8vIFN0eWxlcyBmb3IgYHN1Y2Nlc3NgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX3N1Y2Nlc3MtYm9yZGVyOiAkYnV0dG9uX2JvcmRlci1zaXplIHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1ib3JkZXI6ICRidXR0b25fYm9yZGVyLXNpemUgc29saWQgdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWZpbGw6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRidXR0b25fc3VjY2Vzcy1lbmFibGUtYW5pbWF0aW9uOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gU3R5bGVzIGZvciBgZXJyb3JgIGJ1dHRvbiB0eXBlXG4kYnV0dG9uX2Vycm9yLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJvcmRlcjogJGJ1dHRvbl9ib3JkZXItc2l6ZSBzb2xpZCB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9lcnJvci02MDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGJ1dHRvbl9lcnJvci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kYnV0dG9uX2Vycm9yLWVuYWJsZS1hbmltYXRpb246IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEZWZpbmVzIGhvdyBtdWNoIGJ1dHRvbiBpY29uIHNob3VsZCBiZSBwdWxsZWQgdmVydGljYWxseSB0byBjZW50ZXIgaXQuXG4vLyBTaG91bGQgYmUgZGVmaW5lZCBpbiBlbSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvIGJ1dHRvbidzIGZvbnQgc2l6ZS5cbiRidXR0b25fc3Bhbi1mb250LW9mZnNldDogMCAhZGVmYXVsdDtcblxuLy8gRGVmaW5lcyBob3cgbXVjaCBidXR0b24gaWNvbiBzaG91bGQgYmUgcHVsbGVkIHZlcnRpY2FsbHkgdG8gY2VudGVyIGl0IG9uIGljb24gYnV0dG9uLlxuLy8gU2hvdWxkIGJlIGRlZmluZWQgaW4gZW0gdG8gbWFrZSBpdCByZWxhdGl2ZSB0byBidXR0b24ncyBmb250IHNpemUuXG4kYnV0dG9uX2ljb24tb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgZnVuY3Rpb24tY2FsYy1uby11bnNwYWNlZC1vcGVyYXRvclxuXG5AbWl4aW4gYnV0dG9uKCR0eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSxcbiAgICAkaWNvbl9wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcykge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6ICRidXR0b25fZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYnV0dG9uX2ZvbnQtd2VpZ2h0O1xuICAgIHRleHQtYWxpZ246ICRidXR0b25fdGV4dC1hbGlnbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6ICRidXR0b25fbGluZS1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkYnV0dG9uX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGlmICgkdHlwZSAhPSdsaW5rJykge1xuICAgICAgICBwYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmc7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJ1dHRvbl9hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGJvcmRlci1jb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWUsXG4gICAgICAgICAgICBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB6LWluZGV4OiA1O1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0ncHJpbWFyeScpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3ByaW1hcnktZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdzZWNvbmRhcnknKSB7XG4gICAgICAgIEBpZiAoJGJ1dHRvbl9zZWNvbmRhcnktZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgJGNvbG9yX3N0YXJ0OiAkYnV0dG9uX3NlY29uZGFyeS1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQ6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLCBmaWxsICRidXR0b25fYW5pbWF0aW9uLXRpbWU7XG5cbiAgICAgICAgKiB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAkYnV0dG9uX2FuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIGZpbGwgJGJ1dHRvbl9hbmltYXRpb24tdGltZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nc3VjY2VzcycpIHtcbiAgICAgICAgQGlmICgkYnV0dG9uX3N1Y2Nlc3MtZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9zdWNjZXNzLWJhY2tncm91bmQsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2Vycm9yJykge1xuICAgICAgICBAaWYgKCRidXR0b25fZXJyb3ItZW5hYmxlLWFuaW1hdGlvbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2FuaW1hdGlvbigkdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAkY29sb3Jfc3RhcnQ6ICRidXR0b25fZXJyb3ItYmFja2dyb3VuZCxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGljb25fcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5XG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICYsXG4gICAgJjp2aXNpdGVkIHtcbiAgICAgICAgQGlmICgkdHlwZSAhPSdsaW5rJykge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJ1dHRvbl9ib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J3ByaW1hcnknKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS1ib3JkZXI7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktY29sb3I7XG4gICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J3NlY29uZGFyeScpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zZWNvbmRhcnktYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc2Vjb25kYXJ5LWZpbGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLWNvbG9yO1xuXG4gICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9saW5rLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0nc3VjY2VzcycpIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGJ1dHRvbl9zdWNjZXNzLWJvcmRlcjtcbiAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy1jb2xvcjtcbiAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX3N1Y2Nlc3MtZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHR5cGUgPT0nZXJyb3InKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRidXR0b25fZXJyb3ItYm9yZGVyO1xuICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItY29sb3I7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX2Vycm9yLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX2Vycm9yLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fZXJyb3ItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgJjpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICAgICAgQGlmICgkdHlwZSAhPSdsaW5rJykge1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0ncHJpbWFyeScpIHtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fcHJpbWFyeS0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSdzZWNvbmRhcnknKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYnV0dG9uX3NlY29uZGFyeS0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc2Vjb25kYXJ5LS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJGJ1dHRvbl9zZWNvbmRhcnktLWhvdmVyLWZpbGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fbGluay0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCR0eXBlID09J3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9zdWNjZXNzLS1ob3Zlci1jb2xvcjtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYnV0dG9uX3N1Y2Nlc3MtLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgIGZpbGw6ICRidXR0b25fc3VjY2Vzcy0taG92ZXItZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHR5cGUgPT0nZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1ib3JkZXI7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRidXR0b25fZXJyb3ItLWhvdmVyLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYnV0dG9uX2Vycm9yLS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZbZGlzYWJsZWRdIHtcbiAgICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgICAgY3Vyc29yOiBhdXRvO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbi1ob29rKCR0eXBlLCAkaWNvbl9wb3MpO1xufVxuXG5AbWl4aW4gYnV0dG9uX3NwYW4oJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zKSB7XG4gICAgbWFyZ2luLXRvcDogJGJ1dHRvbl9zcGFuLWZvbnQtb2Zmc2V0O1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6ICRidXR0b25fZm9udC13ZWlnaHQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodDtcbiAgICBsZXR0ZXItc3BhY2luZzogJGJ1dHRvbl90ZXh0LWxldHRlci1zcGFjaW5nO1xuXG4gICAgQGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcblxuICAgICAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuXG4gICAgICAgICAgICBAaWYgKHVuaXQoJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbik9PXVuaXQoZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKSkpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkYnV0dG9uX3BhZGRpbmctd2hlbi1pY29uICsgZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoI3skYnV0dG9uX3BhZGRpbmctd2hlbi1pY29ufSArICN7Z2V0LXZhbHVlLWZyb20tbGlzdChcbiAkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3BvcyApXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGVsc2UgaWYgKCRpY29uX3BvcyA9PSdsZWZ0Jykge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgICBAaWYgKCR0eXBlID09J2xpbmsnKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9saW5rLWljb24tcGFkZGluZztcbiAgICB9XG5cbiAgICBAZWxzZSB7XG5cbiAgICAgICAgQGlmICh1bml0KCRidXR0b25fcGFkZGluZy13aGVuLWljb24pPT11bml0KGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKSkpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGJ1dHRvbl9wYWRkaW5nLXdoZW4taWNvbiArIGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygjeyRidXR0b25fcGFkZGluZy13aGVuLWljb259ICsgI3tnZXQtdmFsdWUtZnJvbS1saXN0KFxuICR2YXJpYWJsZTogJGJ1dHRvbl9wYWRkaW5nLFxuICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKVxuICAgICAgICB9KTtcbiAgICB9XG59XG59XG5cbkBlbHNlIGlmICgkaWNvbl9wb3MgPT0nb25seS1pY29uJykge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBpbmNsdWRlIGJ1dHRvbl9zcGFuLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59XG5cbkBtaXhpbiBidXR0b25faWNvbigkdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUsXG4gICAgJGljb25fcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MpIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAkYnV0dG9uX2ZvbnQtc2l6ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAoJGljb25fcG9zID09J3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSdsZWZ0Jykge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIH1cblxuICAgIEBpZiAoJGljb25fcG9zID09J29ubHktaWNvbicpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6ICRidXR0b25faWNvbi1vZmZzZXQ7XG5cbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6ICRidXR0b25fbGluay1pY29uLXBhZGRpbmcgLyAyO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAkYnV0dG9uX2xpbmstaWNvbi1wYWRkaW5nIC8gMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmICgkaWNvbl9wb3MgPT0ncmlnaHQnKSB7XG4gICAgICAgIEBpZiAoJHR5cGUgPT0nbGluaycpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgcmlnaHQ6IGdldC12YWx1ZS1mcm9tLWxpc3QoJHZhcmlhYmxlOiAkYnV0dG9uX3BhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICRzaWRlOiAkaWNvbl9wb3MgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIGlmICgkaWNvbl9wb3MgPT0nbGVmdCcpIHtcbiAgICAgICAgQGlmICgkdHlwZSA9PSdsaW5rJykge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdCgkdmFyaWFibGU6ICRidXR0b25fcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgJHNpZGU6ICRpY29uX3BvcyApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uLWhvb2soJHR5cGUsICRpY29uX3Bvcyk7XG59IiwiLy8gSW4gdGhpcyBtaXhpbiB5b3UgY2FuIGRlZmluZSB5b3VyIGN1c3RvbSBhbmltYXRpb24gZm9yIGJ1dHRvbnNcbi8vIFlvdSBjYW4gY2hlY2sgZXhhbXBsZXMgb2YgYW5pbWF0aW9ucyBpbiBodHRwOi8vaWFubHVubi5naXRodWIuaW8vSG92ZXIvIGxpYnJhcnlcblxuQG1peGluIGJ1dHRvbl9hbmltYXRpb24oXG4gICAgJHR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlLFxuICAgICRjb2xvcl9zdGFydDogJGJ1dHRvbl9wcmltYXJ5LWJhY2tncm91bmQsXG4gICAgJGNvbG9yX2VuZDogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1iYWNrZ3JvdW5kLFxuICAgICRpY29uX3BvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zXG4pIHtcbiAgICBAaWYgKCR0eXBlID09ICdwcmltYXJ5JykgYW5kXG4gICAgICAgICgoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSlcbiAgICB7XG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zdGFydCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLSN7JGJ1dHRvbl9ib3JkZXItc2l6ZX07XG4gICAgICAgICAgICBib3R0b206IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgcmlnaHQ6IC0jeyRidXR0b25fYm9yZGVyLXNpemV9O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICBsZWZ0OiAtI3skYnV0dG9uX2JvcmRlci1zaXplfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYnV0dG9uX2FuaW1hdGlvbi1iZWZvcmUtd2lkdGg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwICRidXR0b25fYm9yZGVyLXJhZGl1cyAkYnV0dG9uX2JvcmRlci1yYWRpdXMgMDtcbiAgICAgICAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgICAgICAgIDBkZWcsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCAwJSxcbiAgICAgICAgICAgICAgICAkY29sb3JfZW5kIDEwMCVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgICAgICAwZGVnLFxuICAgICAgICAgICAgICAgICRjb2xvcl9lbmQgMCUsXG4gICAgICAgICAgICAgICAgJGNvbG9yX2VuZCA4NSUsXG4gICAgICAgICAgICAgICAgdHJhbnNwYXJlbnQgMTAwJSxcbiAgICAgICAgICAgICAgICB0cmFuc3BhcmVudCAxMDAlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIEBpZiAoJGljb25fcG9zID09ICdyaWdodCcpIG9yICgkaWNvbl9wb3MgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICB3aWR0aDogJGJ1dHRvbl9hbmltYXRpb24tYWZ0ZXItd2lkdGg7XG4gICAgICAgICAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfZW5kO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgICAgICAgICAgei1pbmRleDogLTI7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYnV0dG9uX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgQGlmICgkaWNvbl9wb3MgPT0gJ3JpZ2h0Jykgb3IgKCRpY29uX3BvcyA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpZiAoJGJ1dHRvbl9ib3JkZXItc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSArICN7MiAqICRidXR0b25fYm9yZGVyLXNpemV9KTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1hcmdpbi1sZWZ0OiAwLjlyZW07XG4gIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEuN3JlbTsgfSB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbms6YmVmb3JlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgI2ZmZjsgfVxuICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmZvY3VzLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmFjdGl2ZSwgLmNzLWF1dGhvcml6YXRpb24tbGlua19fbGluazp2aXNpdGVkOmhvdmVyLCAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtYXV0aG9yaXphdGlvbi1saW5rX19saW5rOmhvdmVyIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24ge1xuICAgIHdpZHRoOiAxLjhyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTsgfVxuICAgIC5jcy1hdXRob3JpemF0aW9uLWxpbmtfX2ljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kYXV0aG9yaXphdGlvbi1saW5rX2l0ZW0tYm9yZGVyOiAwLjJyZW0gc29saWQgJGNvbG9yX2JvcmRlci0xMDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2RlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kYXV0aG9yaXphdGlvbi1saW5rX2hvdmVyLWRlY29yYXRpb246ICRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbiAhZGVmYXVsdDtcbiRhdXRob3JpemF0aW9uLWxpbmtfaWNvbi1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRob3JpemF0aW9uLWxpbmsge1xuICAgICRyb290OiAmO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tbGVmdDogMC45cmVtO1xuICAgIHBhZGRpbmc6IDAgMCAwIDAuM3JlbTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgMS4zcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS43cmVtO1xuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAkYXV0aG9yaXphdGlvbi1saW5rX2l0ZW0tYm9yZGVyO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgJGNvbG9yOiAkYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLFxuICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkYXV0aG9yaXphdGlvbi1saW5rX2NvbG9yLWhvdmVyLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICRhdXRob3JpemF0aW9uLWxpbmtfZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkYXV0aG9yaXphdGlvbi1saW5rX2hvdmVyLWRlY29yYXRpb25cbiAgICAgICAgKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkYXV0aG9yaXphdGlvbi1saW5rX2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgIGhlaWdodDogMXJlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGF1dGhvcml6YXRpb24tbGlua19pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLmNzLWF1dG9jb21wbGV0ZSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggMCByZ2JhKDY5LCA5MCwgMTAwLCAwLjE3KTtcbiAgei1pbmRleDogMjAwO1xuICBtYXJnaW4tdG9wOiAtMXB4OyB9XG4gIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgZm9udC1zaXplOiAxLjI5cmVtOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbSB7XG4gICAgcGFkZGluZzogMXJlbTsgfSB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQ6aG92ZXIsIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLnNlbGVjdGVkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmhvdmVyLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLnNlbGVjdGVkIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZDpsYXN0LWNoaWxkLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLWNvbnRhaW5lciwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1pbWFnZS1jb250YWluZXIge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWltYWdlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWltYWdlIHtcbiAgICAgIHdpZHRoOiAzLjZyZW07XG4gICAgICBoZWlnaHQ6IDQuNXJlbTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyB7XG4gICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtZGV0YWlscyAuZi1maXgsIC5jcy1hdXRvY29tcGxldGVfX2l0ZW0tZGV0YWlscyAuZi1maXgge1xuICAgICAgICBoZWlnaHQ6IDUuOHJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLWRldGFpbHMgaW1nLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLWRldGFpbHMgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5hdXRvY29tcGxldGUtbGlzdCBkZC1icmFuZCwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1icmFuZCB7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAuYXV0b2NvbXBsZXRlLWxpc3QgZGQtbmFtZSwgLmNzLWF1dG9jb21wbGV0ZV9faXRlbS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLmF1dG9jb21wbGV0ZS1saXN0IGRkLXByaWNlLCAuY3MtYXV0b2NvbXBsZXRlX19pdGVtLXByaWNlIHtcbiAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDsgfVxuICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggPiAucHJpY2Uge1xuICAgICAgY29sb3I6ICMzMjRkY2Y7XG4gICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlIC5wcmljZS1ib3ggLm9sZC1wcmljZSA+IC5wcmljZSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlID4gLnByaWNlIHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBmb250LXdlaWdodDogNzAwOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1hdXRvY29tcGxldGUgLnByaWNlLWJveCAub2xkLXByaWNlIHtcbiAgICAgIG9yZGVyOiAtMTsgfVxuICAgICAgLmNzLWF1dG9jb21wbGV0ZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlcyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBwYWRkaW5nOiAwIDAuN3JlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi1oZWlnaHQ6IDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQgKyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tcG9wdWxhciAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzM3Yjg0MTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgICAgICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS0tZnJlZS1zaGlwcGluZyAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0ICsgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAuY3MtYXV0b2NvbXBsZXRlX19iYWRnZS10ZXh0IHtcbiAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCArIC5jcy1hdXRvY29tcGxldGVfX2JhZGdlLXRleHQge1xuICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWF1dG9jb21wbGV0ZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH0gfVxuXG4uYXV0b2NvbXBsZXRlLWxpc3Qge1xuICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3Q6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0Omxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmF1dG9jb21wbGV0ZS1saXN0IC5hbW91bnQge1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgLmFtb3VudDpub3QoOmVtcHR5KTpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gIHBhZGRpbmc6IDEuMnJlbSAzcmVtIDFyZW0gMXJlbTtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtc2l6ZTogMS4yOXJlbTtcbiAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5hdXRvY29tcGxldGUtbGlzdC10aXRsZTpob3ZlciwgLmF1dG9jb21wbGV0ZS1saXN0LXRpdGxlLnNlbGVjdGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAuYXV0b2NvbXBsZXRlLWxpc3QtdGl0bGU6bm90KDplbXB0eSk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IHRyYW5zcGFyZW50OyB9XG5cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgaHRtbC5hdXRvY29tcGxldGUtZHJvcGRvd24tdmlzaWJsZSB7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuOyB9IH1cblxuQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICBodG1sLmF1dG9jb21wbGV0ZS1kcm9wZG93bi12aXNpYmxlIGJvZHkge1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjsgfSB9XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGJhZGdlX2hvb2soJHR5cGUpIHtcbn1cblxuQG1peGluIGJhZGdlX3R5cGUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gYmFkZ2Vfc3Bhbi1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cblxuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZV9jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yOiAkcHJpY2Vfc3BlY2lhbC1jb2xvciAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbiRwcmljZS1ib3hfb2xkLXByaWNlLWNvbG9yOiAkcHJpY2Vfb2xkLWNvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplOiAkcHJpY2UtYm94X25vcm1hbC1wcmljZS1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaCAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9sYWJlbC1jb2xvcjogJHByaWNlX2NvbG9yICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uOiB0cnVlICFkZWZhdWx0O1xuJHByaWNlLWJveF9sYWJlbC1tYXJnaW46IDAuM3JlbSAhZGVmYXVsdDtcblxuJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlczogMXJlbSAhZGVmYXVsdDtcbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3ByaWNlLWJveC92YXJpYWJsZXMnO1xuXG4kYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9saXN0LWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfbGlzdC1ib3gtc2hhZG93OiAwIDAgMTBweCAwIHJnYmEoJGNvbG9yX3RleHQtOTAwLCAwLjE3KSAhZGVmYXVsdDtcblxuJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nOiAxLjJyZW0gM3JlbSAxcmVtIDFyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV90aXRsZS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ6IDUuOHJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wYWRkaW5nOiAwLjVyZW0gMXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZDogJGF1dG9jb21wbGV0ZV9saXN0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tYmFja2dyb3VuZC1ob3ZlcjogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC13aWR0aDogMy42cmVtICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXRodW1ibmFpbC1oZWlnaHQ6IDQuNXJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU6IDEuMjlyZW0gIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1uYW1lLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1wcmljZS1mb250LXdlaWdodDogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG5cbiRhdXRvY29tcGxldGVfaXRlbV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW5vcm1hbC1wcmljZS1mb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1jb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3IgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC1zaXplICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9vbGQtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZTogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG5cbi4jeyRuc31hdXRvY29tcGxldGUge1xuICAgICRyb290OiAmO1xuXG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXV0b2NvbXBsZXRlX2xpc3QtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkYXV0b2NvbXBsZXRlX2xpc3QtYm9yZGVyLXJhZGl1cztcbiAgICBib3gtc2hhZG93OiAkYXV0b2NvbXBsZXRlX2xpc3QtYm94LXNoYWRvdztcbiAgICB6LWluZGV4OiAyMDA7XG4gICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBAaWYgbm90ICRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc8I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0b2NvbXBsZXRlLWxpc3QgZGQsXG4gICAgJl9faXRlbSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhdXRvY29tcGxldGVfaXRlbS1iYWNrZ3JvdW5kO1xuICAgICAgICBwYWRkaW5nOiAkYXV0b2NvbXBsZXRlX2l0ZW0tcGFkZGluZztcbiAgICAgICAgbWFyZ2luOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbWFyZ2luO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkYXV0b2NvbXBsZXRlX2l0ZW0tYm9yZGVyO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC1zaXplO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICYuc2VsZWN0ZWQge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLWJhY2tncm91bmQtaG92ZXI7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAmLWltYWdlIHtcbiAgICAgICAgICAgIHdpZHRoOiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tdGh1bWJuYWlsLWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtZGV0YWlscyB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAgICAgLmYtZml4IHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1icmFuZCB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbV9icmFuZC1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtX2JyYW5kLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbmFtZS1jb2xvcjtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByaWNlIHtcbiAgICAgICAgICAgIG1hcmdpbjogMC4zcmVtIDAgMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1ib3gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX2l0ZW0tbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgID4gLnByaWNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX2l0ZW0tb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLW9sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRhdXRvY29tcGxldGVfaXRlbS1vbGQtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICA+IC5wcmljZSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhdXRvY29tcGxldGVfaXRlbS1zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGF1dG9jb21wbGV0ZV9pdGVtLXNwZWNpYWwtcHJpY2UtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tc3BlY2lhbC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGF1dG9jb21wbGV0ZV9pdGVtX2Rpc3BsYXktb2xkLXByaWNlLWZpcnN0KSB7XG4gICAgICAgICAgICAub2xkLXByaWNlIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG5cbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2VzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZnJlZS1zaGlwcGluZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV90eXBlKCdmcmVlLXNoaXBwaW5nJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdmcmVlLXNoaXBwaW5nJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWRnZS10ZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmF1dG9jb21wbGV0ZS1saXN0IHtcbiAgICBtYXJnaW46IC0xcHggMCAxcmVtO1xuICAgIGJvcmRlci10b3A6ICRhdXRvY29tcGxldGVfbGlzdC1ib3JkZXI7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgIC5hbW91bnQge1xuICAgICAgICBjb2xvcjogJGF1dG9jb21wbGV0ZV9pdGVtLXF1YW50aXR5LWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRhdXRvY29tcGxldGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07XG5cbiAgICAgICAgJjpub3QoOmVtcHR5KSB7XG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hdXRvY29tcGxldGUtbGlzdC10aXRsZSB7XG4gICAgcGFkZGluZzogJGF1dG9jb21wbGV0ZV90aXRsZS1wYWRkaW5nO1xuICAgIGJvcmRlci1ib3R0b206ICRhdXRvY29tcGxldGVfdGl0bGUtYm9yZGVyO1xuICAgIGNvbG9yOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWNvbG9yO1xuICAgIGZvbnQtd2VpZ2h0OiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgZm9udC1zaXplOiAkYXV0b2NvbXBsZXRlX3RpdGxlLWZvbnQtc2l6ZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgIG1hcmdpbjogJGF1dG9jb21wbGV0ZV90aXRsZS1tYXJnaW47XG5cbiAgICAmOmhvdmVyLFxuICAgICYuc2VsZWN0ZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOm5vdCg6ZW1wdHkpIHtcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiB0cmFuc3BhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuaHRtbC5hdXRvY29tcGxldGUtZHJvcGRvd24tdmlzaWJsZSB7XG4gICAgQG1lZGlhIChob3Zlcjogbm9uZSkge1xuICAgICAgICBvdmVyZmxvdy15OiBoaWRkZW47XG4gICAgfVxuXG4gICAgYm9keSB7XG4gICAgICAgIEBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgICAgICAgICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9iYWRnZS9ob29rJztcblxuJGJhZGdlX2ZvbnQtc2l6ZTogMS4xcmVtICFkZWZhdWx0O1xuJGJhZGdlX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kYmFkZ2VfaGVpZ2h0OiAyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfcGFkZGluZzogMCAwLjdyZW0gIWRlZmF1bHQ7XG4kYmFkZ2VfYm9yZGVyOiAwICFkZWZhdWx0O1xuJGJhZGdlX2JvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kYmFkZ2VfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLW5ldy1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tbmV3LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGlzY291bnQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ6ICRjb2xvcl9zdWNjZXNzLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZnJlZS1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1mcmVlLXNoaXBwaW5nLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kOiAkY29sb3Jfc3VjY2Vzcy01MDAgIWRlZmF1bHQ7XG4kYmFkZ2UtLXBvcHVsYXItY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtYmFja2dyb3VuZDogJGNvbG9yX3N1Y2Nlc3MtNTAwICFkZWZhdWx0O1xuJGJhZGdlLS1yZWNlbnRseS1ib3VnaHQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcblxuJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDogJGNvbG9yX2Vycm9yLTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbiRiYWRnZS0tdG9wLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRiYWRnZS0tdG9wLWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBiYWRnZSgkdHlwZTogJ2RlZmF1bHQnKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kZWZhdWx0LWJhY2tncm91bmQ7XG4gICAgY29sb3I6ICRiYWRnZS0tZGVmYXVsdC1jb2xvcjtcbiAgICBib3JkZXI6ICRiYWRnZV9ib3JkZXI7XG4gICAgYm9yZGVyLXJhZGl1czogJGJhZGdlX2JvcmRlci1yYWRpdXM7XG4gICAgcGFkZGluZzogJGJhZGdlX3BhZGRpbmc7XG4gICAgZm9udC1zaXplOiAkYmFkZ2VfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkYmFkZ2VfZm9udC13ZWlnaHQ7XG4gICAgbWluLWhlaWdodDogJGJhZGdlX2hlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJGJhZGdlX3RleHQtdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgYmFkZ2VfaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBiYWRnZV90eXBlKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBAaWYgKCR0eXBlID09J25ldycpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1uZXctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tbmV3LWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZnJlZScpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1mcmVlLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLWZyZWUtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdmcmVlLXNoaXBwaW5nJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLWZyZWUtc2hpcHBpbmctYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZnJlZS1zaGlwcGluZy1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J3BvcHVsYXInKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcG9wdWxhci1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS1wb3B1bGFyLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZGlzY291bnQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tZGlzY291bnQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGlzY291bnQtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdyZWNlbnRseS1ib3VnaHQnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWRnZS0tcmVjZW50bHktYm91Z2h0LWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYmFkZ2UtLXJlY2VudGx5LWJvdWdodC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2RhaWx5ZGVhbCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0nZGFpbHlkZWFsLXBkcCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJhZGdlLS1kYWlseWRlYWwtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRiYWRnZS0tZGFpbHlkZWFsLWNvbG9yO1xuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0ndG9wJykge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFkZ2UtLXRvcC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGJhZGdlLS10b3AtY29sb3I7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYmFkZ2VfdHlwZS1ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIGJhZGdlX3NwYW4oJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG5cbiAgICAmKyYge1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4taG9vaygkdHlwZSk7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4uY3MtYnJlYWRjcnVtYnMge1xuICBwYWRkaW5nLXRvcDogMS4zcmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zcmVtO1xuICBmb250LXdlaWdodDogNDAwOyB9XG4gIC5jcy1icmVhZGNydW1ic19fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6ICMxMWEwOTk7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2l0ZW06bm90KDpsYXN0LWNoaWxkKTphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwLjhlbTtcbiAgICAgIGNvbnRlbnQ6IFwiPlwiO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX2xpbmsge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtYnJlYWRjcnVtYnNfX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzg4ODsgfVxuICAgIC5jcy1icmVhZGNydW1ic19fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAuY3MtYnJlYWRjcnVtYnNfX3NlcGFyYXRvci1pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgcmlnaHQ6IDAuNWVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogMC44ZW07XG4gICAgaGVpZ2h0OiAwLjhlbTtcbiAgICBmaWxsOiAjODg4OyB9XG5cbi5jcy1jb250YWluZXItLWJyZWFkY3J1bWJzIHtcbiAgbWF4LXdpZHRoOiBub25lO1xuICBkaXNwbGF5OiBub25lO1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLWNvbnRhaW5lci0tYnJlYWRjcnVtYnMge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9IH1cbiIsIi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jdXN0b20tc2hvdzogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICB2YXJzLFxuICAgICAgICBNYWdlbnRvX1RoZW1lLFxuICAgICAgICBicmVhZGNydW1icyxcbiAgICAgICAgY3VzdG9tX3NlcGFyYXRvcixcbiAgICAgICAgZGlzcGxheSkgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfYmcgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvYnJlYWRjcnVtYnMucG5nJykgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfYmFja2dyb3VuZDogJGJyZWFkY3J1bWJzX2JhY2tncm91bmQtY29sb3IgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWJzX2l0ZW0tY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYnNfaXRlbS12aXNpdGVkLWNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19sYXN0LWl0ZW0tY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yOiAkYnJlYWRjcnVtYnNfaXRlbS1jb2xvciAhZGVmYXVsdDtcbiRicmVhZGNydW1ic19zZXBhcmF0b3ItY29udGVudDogJz4nICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U6IDEuM3JlbSAhZGVmYXVsdDtcblxuLiN7JG5zfWJyZWFkY3J1bWJzIHtcbiAgICAkcm9vdDogJjtcbiAgICBwYWRkaW5nLXRvcDogJGJyZWFkY3J1bWJzX3ZlcnRpY2FsLXNwYWNlO1xuICAgIHBhZGRpbmctYm90dG9tOiAkYnJlYWRjcnVtYnNfdmVydGljYWwtc3BhY2U7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMS45NWVtIDAgMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBmb250LXNpemU6ICRicmVhZGNydW1ic19pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkYnJlYWRjcnVtYnNfbGFzdC1pdGVtLWNvbG9yO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpOmFmdGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgcmlnaHQ6IDAuOGVtO1xuICAgICAgICAgICAgY29udGVudDogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb250ZW50O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGJyZWFkY3J1bWJzX3NlcGFyYXRvci1jdXN0b20tc2hvdykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWNvbG9yO1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJGJyZWFkY3J1bWJzX2l0ZW0tdmlzaXRlZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRicmVhZGNydW1ic19pdGVtLWhvdmVyLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VwYXJhdG9yLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICByaWdodDogMC41ZW07XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgd2lkdGg6IDAuOGVtO1xuICAgICAgICBoZWlnaHQ6IDAuOGVtO1xuICAgICAgICBmaWxsOiAkYnJlYWRjcnVtYnNfc2VwYXJhdG9yLWNvbG9yO1xuICAgIH1cbn1cblxuLmNzLWNvbnRhaW5lciB7XG4gICAgJi0tYnJlYWRjcnVtYnMge1xuICAgICAgICBtYXgtd2lkdGg6IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmVhZGNydW1ic19iYWNrZ3JvdW5kLWNvbG9yO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJyZWFkY3J1bWJzX2JhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1OyB9XG4gIC5jcy1idXR0b246aG92ZXIsIC5jcy1idXR0b246Zm9jdXMsIC5jcy1idXR0b246YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1dHRvbjpiZWZvcmUsIC5jcy1idXR0b246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xcHg7XG4gICAgYm90dG9tOiAtMXB4O1xuICAgIHJpZ2h0OiAtMXB4OyB9XG4gIC5jcy1idXR0b246YmVmb3JlIHtcbiAgICB3aWR0aDogMy40ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMCUsICM0ZDJjOTEgMCUsICM0ZDJjOTEgMTAwJSk7IH1cbiAgLmNzLWJ1dHRvbjphZnRlciB7XG4gICAgd2lkdGg6IDNlbTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgei1pbmRleDogLTI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgLmNzLWJ1dHRvbjpob3ZlcjphZnRlciB7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgLmNzLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24sIC5jcy1idXR0b246dmlzaXRlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgIC5jcy1idXR0b24gKiwgLmNzLWJ1dHRvbjp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWJ1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1idXR0b25fX3NwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogNGVtOyB9XG4gIC5jcy1idXR0b25fX2ljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgcmlnaHQ6IDFlbTsgfVxuXG4uY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgbWFyZ2luOiAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICB6LWluZGV4OiA1O1xuICBtYXJnaW46IDAgMCAzcmVtO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyLCAuY3MtYnV0dG9uLWNvbXBvbmVudDpmb2N1cywgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YmVmb3JlLCAuY3MtYnV0dG9uLWNvbXBvbmVudDphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YmVmb3JlIHtcbiAgICB3aWR0aDogMy40ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMCUsICM0ZDJjOTEgMCUsICM0ZDJjOTEgMTAwJSk7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWZ0ZXIge1xuICAgIHdpZHRoOiAzZW07XG4gICAgbWluLXdpZHRoOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgdHJhbnNpdGlvbjogd2lkdGggMC4yNXMgbGluZWFyO1xuICAgIHotaW5kZXg6IC0yO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50OmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50LCAuY3MtYnV0dG9uLWNvbXBvbmVudDp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQgKiwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1idXR0b24tY29tcG9uZW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWJ1dHRvbi1jb21wb25lbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLWJ1dHRvbi1jb21wb25lbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1idXR0b24tY29tcG9uZW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtYnV0dG9uLWNvbXBvbmVudDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50W2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtYnV0dG9uLWNvbXBvbmVudCB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnQtLXNraXAtc3BhY2luZyB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtYnV0dG9uLWNvbXBvbmVudF9faWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtOyB9XG4gIC5jcy1idXR0b24tY29tcG9uZW50X19hbW91bnQ6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKCc7IH1cbiAgLmNzLWJ1dHRvbi1jb21wb25lbnRfX2Ftb3VudDphZnRlciB7XG4gICAgY29udGVudDogJyknOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL2NvbXBvbmVudC1zcGFjaW5nJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGJ1dHRvbi1mYWxsYmFja190eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGJ1dHRvbi1jb21wb25lbnRfdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kYnV0dG9uLWNvbXBvbmVudF9pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC1wb3NpdGlvbjogNTAlICFkZWZhdWx0O1xuJGJ1dHRvbi1jb21wb25lbnRfaG9yaXpvbnRhbC10cmFuc2xhdGlvbjogdHJhbnNsYXRlWCgtNTAlKSAhZGVmYXVsdDtcblxuLiN7JG5zfWJ1dHRvbiB7XG4gICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAkdHlwZTogJGJ1dHRvbi1mYWxsYmFja190eXBlLFxuICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICApO1xuXG4gICAgJl9fc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tZmFsbGJhY2tfdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGJ1dHRvbi1mYWxsYmFja19pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkYnV0dG9uLWZhbGxiYWNrX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tZmFsbGJhY2tfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbi4jeyRuc31idXR0b24tY29tcG9uZW50IHtcbiAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICR0eXBlOiAkYnV0dG9uLWNvbXBvbmVudF90eXBlLFxuICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tY29tcG9uZW50X2ljb24tcG9zXG4gICAgKTtcbiAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxlZnQ6ICRidXR0b24tY29tcG9uZW50X2hvcml6b250YWwtcG9zaXRpb247XG4gICAgdHJhbnNmb3JtOiAkYnV0dG9uLWNvbXBvbmVudF9ob3Jpem9udGFsLXRyYW5zbGF0aW9uO1xuXG4gICAgJl9fc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tY29tcG9uZW50X3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tY29tcG9uZW50X2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRidXR0b24tY29tcG9uZW50X3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRidXR0b24tY29tcG9uZW50X2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYW1vdW50IHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyknO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQG1peGluIGNvbXBvbmVudC1zcGFjaW5nKCRtYXJnaW5zLWNvbmZpZzogJGNvbXBvbmVudC1zcGFjaW5nLWNvbmZpZ3VyYXRpb24pIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KSB7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkbWFyZ2lucy1jb25maWcsIGRlZmF1bHQpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBEZWZhdWx0IGNvbXBvbmVudCBtYXJnaW4gdmFsdWVcbiAgICAgICAgbWFyZ2luOiAwIDAgM3JlbTtcbiAgICB9XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgIC8vIEFkZGluZyBtYXJnaW4gcnVsZXMgZm9yIGVhY2ggcGFzc2VkIGJyZWFrcG9pbnRcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRtYXJnaW4gaW4gbWFwLWdldCgkbWFyZ2lucy1jb25maWcsIHJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAkbWFyZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2tpcC1zcGFjaW5nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi5jcy1jb250YWluZXIge1xuICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgcGFkZGluZy1yaWdodDogMS41cmVtO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1jb250YWluZXJfX2lubmVyOmJlZm9yZSwgLmNzLWNvbnRhaW5lcl9faW5uZXI6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgIGNsZWFyOiBib3RoOyB9XG4gIC5jcy1jb250YWluZXJfX2FzaWRlIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiA0MCU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMiU7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuY3MtY29udGFpbmVyX19hc2lkZSB7XG4gICAgICAgIHdpZHRoOiAzMCU7IH0gfVxuICAuY3MtY29udGFpbmVyX19tYWluLWNvbHVtbiB7XG4gICAgd2lkdGg6IDU2JTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjUlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICB3aWR0aDogNjclOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWNvbnRhaW5lcl9fbWFpbi1jb2x1bW4ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXJfX21haW4tY29sdW1uLS1zcGFjZS10b3Age1xuICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTsgfSB9XG4gIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLWNvbnRyYXN0IHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2JhY2tncm91bmQucG5nXCIpO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tc3BhY2lvdXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1jb250YWluZXItLXNwYWNpb3VzIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtOyB9IH1cbiAgLmNzLWNvbnRhaW5lci0tbm9zY3JvbGwge1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWNvbnRhaW5lci0tb250b3Age1xuICAgIHotaW5kZXg6IDMwMTsgfVxuICAuY3MtY29udGFpbmVyLS12aWV3cG9ydC13aWR0aCB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC5jcy1jb250YWluZXItLW5vLXBhZGRpbmcge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gIC5jcy1jb250YWluZXItLXVzZS13aG9sZS1zY3JlZW4gLmNzLWNvbnRhaW5lcl9faW5uZXIge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1jb29raWUtbWVzc2FnZSB7XG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDEuMnJlbTtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGJveC1zaGFkb3c6IDAgLTAuM3JlbSAwLjVyZW0gMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICBmb250LXNpemU6IDg1JTtcbiAgei1pbmRleDogOTg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjI1cyBlYXNlLW91dCwgb3BhY2l0eSAwLjE4cyBsaW5lYXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1jb29raWUtbWVzc2FnZS0tc2hvd24ge1xuICAgIHotaW5kZXg6IDIwMjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX19pbm5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogOHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2lubmVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uLXdyYXBwZXIge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtc3RhcnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6IHVuc2V0OyB9IH1cbiAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IC5ibG9jay1jbXMtbGluay53aWRnZXQsXG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgZGlzcGxheTogaW5saW5lOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGEsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX3RleHQgYTpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6Zm9jdXMsIC5jcy1jb29raWUtbWVzc2FnZV9fdGV4dCBhOmFjdGl2ZSwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZDpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX190ZXh0IGE6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzRkMmM5MTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwLjVyZW07XG4gICAgd2lkdGg6IDUuNXJlbTtcbiAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWNvb2tpZS1tZXNzYWdlX19pY29uIHtcbiAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tdG9wOiAxLjJyZW07IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpob3ZlciwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Zm9jdXMsIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpiZWZvcmUsIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDMuNGVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDAlLCAjNGQyYzkxIDAlLCAjNGQyYzkxIDEwMCUpOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWZ0ZXIge1xuICAgICAgd2lkdGg6IDNlbTtcbiAgICAgIG1pbi13aWR0aDogYXV0bztcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgICB6LWluZGV4OiAtMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b24sIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiAqLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5jcy1jb29raWUtbWVzc2FnZV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWNvb2tpZS1tZXNzYWdlX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxLjJyZW07IH0gfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtY29va2llLW1lc3NhZ2VfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcblxuJGNvb2tpZS1tZXNzYWdlX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LXNpemU6IDg1JSAhZGVmYXVsdDtcbiRjb29raWUtbWVzc2FnZV9mb250LWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfbGluay1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfaWNvbi1wb3M6ICRidXR0b25fZGVmYXVsdC1pY29uLXBvcyAhZGVmYXVsdDtcblxuJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludDogJ3RhYmxldCcgIWRlZmF1bHQ7XG4kY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1hbGlnbjogZmxleC1zdGFydCAhZGVmYXVsdDtcblxuLiN7JG5zfWNvb2tpZS1tZXNzYWdlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6IDEuMnJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29va2llLW1lc3NhZ2VfYmFja2dyb3VuZC1jb2xvcjtcbiAgICBjb2xvcjogJGNvb2tpZS1tZXNzYWdlX2ZvbnQtY29sb3I7XG4gICAgYm94LXNoYWRvdzogMCAtMC4zcmVtIDAuNXJlbSAwIHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gICAgZm9udC1zaXplOiAkY29va2llLW1lc3NhZ2VfZm9udC1zaXplO1xuICAgIHotaW5kZXg6IDk4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMTEwJSwgMCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQsIG9wYWNpdHkgMC4xOHMgbGluZWFyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICBib3R0b206ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2hvd24ge1xuICAgICAgICB6LWluZGV4OiAyMDI7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuXG4gICAgJl9faW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDhyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skY29va2llLW1lc3NhZ2VfYnV0dG9uLXBvcy1icmVha3BvaW50fScpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIGFsaWduLXNlbGY6ICRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWFsaWduO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBhbGlnbi1zZWxmOiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcblxuICAgICAgICAuYmxvY2stY21zLWxpbmsud2lkZ2V0LFxuICAgICAgICBwIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAkY29sb3I6ICRjb29raWUtbWVzc2FnZV9saW5rLWNvbG9yLFxuICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGNvb2tpZS1tZXNzYWdlX2xpbmstY29sb3ItLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMC41cmVtO1xuICAgICAgICB3aWR0aDogNS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDUuNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRjb29raWUtbWVzc2FnZV9idXR0b24tcG9zLWJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgdG9wOiAtMy41cmVtO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbWFyZ2luLXRvcDogMS4ycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGNvb2tpZS1tZXNzYWdlX2J1dHRvbi1wb3MtYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDEuMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGNvb2tpZS1tZXNzYWdlX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkY29va2llLW1lc3NhZ2VfaWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRjb29raWUtbWVzc2FnZV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNvb2tpZS1tZXNzYWdlX2ljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWRhaWx5ZGVhbCB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhaWx5ZGVhbF9faGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH1cbiAgLmNzLWRhaWx5ZGVhbF9fdGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cbiAgLmNzLWRhaWx5ZGVhbF9faXRlbXMtYW1vdW50IHtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93biB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW46IDA7XG4gICAganVzdGlmeS1jb250ZW50OiBzdHJldGNoO1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjNyZW0gMC41cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgIGJhY2tncm91bmQ6ICNlNDFmMTI7XG4gICAgICB6LWluZGV4OiA1OyB9XG4gICAgLmNzLWRhaWx5ZGVhbC0tdGVhc2VyIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgIG1pbi1oZWlnaHQ6IDRyZW07IH1cbiAgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWljb24ge1xuICAgIHdpZHRoOiAxLjlyZW07XG4gICAgaGVpZ2h0OiAyLjRyZW07XG4gICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tdmFsdWUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICNlNDFmMTI7XG4gICAgcGFkZGluZzogMnB4IDAgMDsgfVxuICAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tbGFiZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAjODg4O1xuICAgIHBhZGRpbmc6IDJweCAwIDA7IH1cbiAgLmNzLWRhaWx5ZGVhbC0tdGlsZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2F2YWlsYWJpbGl0eSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBiYWNrZ3JvdW5kOiAjODg4O1xuICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAycHggNHB4O1xuICAgICAgei1pbmRleDogNDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTk5cHgpIHtcbiAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bGFzdC1jaGlsZDpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMDsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Omxhc3QtY2hpbGQgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLXZhbHVlOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiBub25lOyB9XG4gICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwge1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgICAgIC5jcy1kYWlseWRlYWwtLXRpbGUgLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQ6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKSB7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudDpub3QoLmNzLWRhaWx5ZGVhbF9fY291bnRkb3duLWVsZW1lbnQtLXNwZWNpYWwpOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmU7IH1cbiAgICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Om5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCk6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMS44cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7IH1cbiAgICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50Om5vdCguY3MtZGFpbHlkZWFsX19jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbCk6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjhyZW07XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDdweCA3cHggMDsgfVxuICAgICAgLmNzLWRhaWx5ZGVhbC0tdGlsZSAuY3MtZGFpbHlkZWFsX19jb3VudGRvd24tdmFsdWUge1xuICAgICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi12YWx1ZTphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJzonOyB9XG4gICAgICAuY3MtZGFpbHlkZWFsLS10aWxlIC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtZGFpbHlkZWFsX19iYWRnZS1wZHAtaWNvbiB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBmaWxsOiAjZmZmOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kZGFpbHlkZWFsLS10aWxlLXBvc2l0aW9uOiBhYnNvbHV0ZSAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYm90dG9tOiAwICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1sZWZ0OiAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2hlYWRlci1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItanVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9oZWFkZXItYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2hlYWRlci1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfaGVhZGVyLW1hcmdpbjogMCAwIDAuNXJlbSAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF90aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF90aXRsZS1mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1jb2xvcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktYmFja2dyb3VuZDogJGNvbG9yX2dyYXkgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1wYWRkaW5nOiAycHggNHB4ICFkZWZhdWx0O1xuJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfaXRlbXMtYW1vdW50LWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1qdXN0aWZ5LWNvbnRlbnQ6IHN0cmV0Y2ggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1hbGlnbi1pdGVtczogc3RyZXRjaCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLW1hcmdpbjogMCAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1tYXJnaW4tZmFjdG9yOiAzcHggIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS10aWxlLW1hcmdpbi1mYWN0b3I6IDFweCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZGlzcGxheTogZmxleCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtZmxleC1kaXJlY3Rpb246IGNvbHVtbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtd2lkdGg6IDEwMCUgIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LXBhZGRpbmc6IDAuM3JlbSAwLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWxpbmUtaGVpZ2h0OiAxICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1iYWNrZ3JvdW5kOiBub25lICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC13aWR0aDogNTAlICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC1iYWNrZ3JvdW5kOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcblxuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi13aWR0aDogMS45cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24taWNvbi1oZWlnaHQ6IDIuNHJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWljb24tZmlsbDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuXG4kZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1kaXNwbGF5OiBibG9jayAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmc6IDJweCAwIDAgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1mb250LXdlaWdodDogaW5oZXJpdCAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWNvbG9yOiAkY29sb3JfZ3JheSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLXBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLXBhZGRpbmcgIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk6IGJsb2NrICFkZWZhdWx0O1xuXG4kZGFpbHktZGVhbC10ZWFzZXJfcHJvZHVjdC1kZC1jb3VudGVyLW1pbi1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24td2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24taGVpZ2h0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWZpbGwtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuLy8gQmVjYXVzZSB0aGVyZSBpc24ndCBlbm91Z2ggc3BhY2UgZm9yIGRpc3BsYXkgZnVsbCBjb3VudGVyIG9uIG1vYmlsZSAoZGVwZW5kcyBvbiBkZXNpbmcpLCB3ZSBjYW4gZGlzcGxheSBjb3VudGVyIGluIGxpZ2h0ZXIgdmVyc2lvbiAob25seSBvbiB0aWxlKVxuLy8gU2V0IGBmYWxzZWAgdG8gaWdub3JlIGxpZ2h0ZXIgdmVyc2lvblxuJGRhaWx5ZGVhbF9mdWxsLWNvdW50ZXItbGlnaHRlci12ZXJzaW9uLWJyZWFrcG9pbnQ6ICc8NjAwcHgnICFkZWZhdWx0O1xuXG4uI3skbnN9ZGFpbHlkZWFsIHtcbiAgICAkcm9vdDogJjtcbiAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgJl9faGVhZGVyIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogJGRhaWx5ZGVhbF9oZWFkZXItbWFyZ2luO1xuICAgICAgICBmb250LXNpemU6ICRkYWlseWRlYWxfaGVhZGVyLWZvbnQtc2l6ZTtcblxuICAgICAgICBAaWYgJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheSA9PVxuICAgICAgICAgICAgZmxleCBvclxuICAgICAgICAgICAgJGRhaWx5ZGVhbF9oZWFkZXItZGlzcGxheSA9PVxuICAgICAgICAgICAgaW5saW5lLWZsZXhcbiAgICAgICAge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkZGFpbHlkZWFsX2hlYWRlci1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJGRhaWx5ZGVhbF9oZWFkZXItYWxpZ24taXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06ICRkYWlseWRlYWxfdGl0bGUtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX3RpdGxlLWZvbnQtd2VpZ2h0O1xuICAgIH1cblxuICAgICZfX2l0ZW1zLWFtb3VudCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX2l0ZW1zLWFtb3VudC1mb250LXdlaWdodDtcbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24ge1xuICAgICAgICBkaXNwbGF5OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1kaXNwbGF5O1xuICAgICAgICBtYXJnaW46ICRkYWlseWRlYWxfY291bnRkb3duLW1hcmdpbjtcblxuICAgICAgICBAaWYgJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheSA9PVxuICAgICAgICAgICAgZmxleCBvclxuICAgICAgICAgICAgJGRhaWx5ZGVhbF9jb3VudGRvd24tZGlzcGxheSA9PVxuICAgICAgICAgICAgaW5saW5lLWZsZXhcbiAgICAgICAge1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJGRhaWx5ZGVhbF9jb3VudGRvd24tYWxpZ24taXRlbXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24tZWxlbWVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgd2lkdGg6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtd2lkdGg7XG4gICAgICAgIHBhZGRpbmc6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1kaXNwbGF5O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1mbGV4LWRpcmVjdGlvbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWxpbmUtaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1cztcblxuICAgICAgICAmLS1zcGVjaWFsIHtcbiAgICAgICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsLXdpZHRoO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC0tc3BlY2lhbC1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS10ZWFzZXIgJiB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAkZGFpbHktZGVhbC10ZWFzZXJfcHJvZHVjdC1kZC1jb3VudGVyLW1pbi1oZWlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb3VudGRvd24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLXdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRkYWlseWRlYWxfY291bnRkb3duLWljb24taGVpZ2h0O1xuICAgICAgICBmaWxsOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1pY29uLWZpbGw7XG4gICAgfVxuXG4gICAgJl9fY291bnRkb3duLXZhbHVlIHtcbiAgICAgICAgZGlzcGxheTogJGRhaWx5ZGVhbF9jb3VudGRvd24tdmFsdWUtZGlzcGxheTtcbiAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1mb250LXdlaWdodDtcbiAgICAgICAgY29sb3I6ICRkYWlseWRlYWxfY291bnRkb3duLXZhbHVlLWNvbG9yO1xuICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsX2NvdW50ZG93bi12YWx1ZS1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgIGRpc3BsYXk6ICRkYWlseWRlYWxfY291bnRkb3duLWxhYmVsLWRpc3BsYXk7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZGFpbHlkZWFsX2NvdW50ZG93bi1sYWJlbC1jb2xvcjtcbiAgICAgICAgcGFkZGluZzogJGRhaWx5ZGVhbF9jb3VudGRvd24tbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAmLS10aWxlIHtcbiAgICAgICAgcG9zaXRpb246ICRkYWlseWRlYWwtLXRpbGUtcG9zaXRpb247XG4gICAgICAgIGxlZnQ6ICRkYWlseWRlYWwtLXRpbGUtbGVmdDtcbiAgICAgICAgYm90dG9tOiAkZGFpbHlkZWFsLS10aWxlLWJvdHRvbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHotaW5kZXg6IDM7XG5cbiAgICAgICAgI3skcm9vdH1fX2F2YWlsYWJpbGl0eSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXNpemU7XG4gICAgICAgICAgICBjb2xvcjogJGRhaWx5ZGVhbC0tdGlsZS1hdmFpbGFiaWxpdHktY29sb3I7XG4gICAgICAgICAgICBwYWRkaW5nOiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1wYWRkaW5nO1xuICAgICAgICAgICAgei1pbmRleDogNDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFpbHlkZWFsLS10aWxlLWF2YWlsYWJpbGl0eS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRkYWlseWRlYWwtLXRpbGUtYXZhaWxhYmlsaXR5LWJvcmRlci1yYWRpdXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRkYWlseWRlYWxfZnVsbC1jb3VudGVyLWxpZ2h0ZXItdmVyc2lvbi1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAkZGFpbHlkZWFsX2Z1bGwtY291bnRlci1saWdodGVyLXZlcnNpb24tYnJlYWtwb2ludC4uLlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi1lbGVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpub3QoOm9ubHktY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi0tc3BlY2lhbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICY6bm90KC5jcy1kYWlseWRlYWxfX2NvdW50ZG93bi1lbGVtZW50LS1zcGVjaWFsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjhyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMC44cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRhaWx5ZGVhbF9jb3VudGRvd24tZWxlbWVudC1ib3JkZXItcmFkaXVzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYWlseWRlYWxfY291bnRkb3duLWVsZW1lbnQtYm9yZGVyLXJhZGl1cyAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi12YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuXG4gICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJzonO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2NvdW50ZG93bi1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUERQXG4gICAgJl9fYmFkZ2UtcGRwLWljb24ge1xuICAgICAgICB3aWR0aDogJGRhaWx5ZGVhbF9wZHAtYmFkZ2UtaWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkZGFpbHlkZWFsX3BkcC1iYWRnZS1pY29uLWhlaWdodDtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIGZpbGw6ICRkYWlseWRlYWxfcGRwLWJhZGdlLWljb24tZmlsbC1jb2xvcjtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAuY3MtZGlzcGxheS1jb250cm9sbGVyLS1oaWRkZW4tbW9iaWxlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgLmNzLWRpc3BsYXktY29udHJvbGxlci0taGlkZGVuLWRlc2t0b3Age1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uI3skbnN9ZGlzcGxheS1jb250cm9sbGVyIHtcbiAgICAmLS1oaWRkZW4tbW9iaWxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taGlkZGVuLWRlc2t0b3Age1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogUmVtb3ZlIGJyb3dzZXIncyBtYXJnaW5zLCBwYWRkaW5ncyBhbmQgbGlzdCBzdHlsZSBydWxlc1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWRyb3Bkb3duLXN3aXRjaGVyIHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBmbGV4LXNocmluazogMDsgfVxuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyOmJlZm9yZSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGxlZnQ6IDEuM3JlbTtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwLjJyZW0gc29saWQgI2ZmZjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlci0tc3RvcmVzOmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19vcHRpb24taWNvbiB7XG4gICAgbWluLXdpZHRoOiAxLjVyZW07XG4gICAgaGVpZ2h0OiAxLjVyZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC4ycmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXItLWxhbmd1YWdlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fb3B0aW9uLWljb24ge1xuICAgICAgICB3aWR0aDogMS41cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXIgLnN3aXRjaGVyLW9wdGlvbnMge1xuICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggI2RjZGNkYyBzb2xpZDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSwgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjE1cyBsaW5lYXIsIHJpZ2h0IDAuMTVzIGxpbmVhciwgYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXI6YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgIHJpZ2h0OiAzcmVtOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICByaWdodDogMi41cmVtOyB9XG4gICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyLmFjdGl2ZTpiZWZvcmUge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlciB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwO1xuICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSwgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMTVzIGxpbmVhciwgcmlnaHQgMC4xNXMgbGluZWFyLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMTVzIGxpbmVhcjtcbiAgICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmJlZm9yZSB7XG4gICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyOmFmdGVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgIHJpZ2h0OiAwOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpOyB9XG4gICAgICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci5hY3RpdmU6YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTsgfSB9XG4gICAgLmFjdGl2ZSAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX3RyaWdnZXIge1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAzcHg7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAgIC5hY3RpdmUgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX190cmlnZ2VyIHtcbiAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7IH0gfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fdHJpZ2dlci1zcGFuIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogM3B4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyLWNvbG9yOiAjZjBmMGYwO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRyb3Bkb3duLXN3aXRjaGVyX19saXN0IHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICBsZWZ0OiAxcmVtOyB9IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QgLmNzLWRyb3Bkb3duLXN3aXRjaGVyLS1jdXJyZW5jeSB7XG4gICAgICByaWdodDogLTFyZW07IH1cbiAgICAuYWN0aXZlIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1kcm9wZG93bi1zd2l0Y2hlcl9fbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgY29sb3I6ICM0NTVhNjQgIWltcG9ydGFudDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAxLjRyZW0gMnJlbTtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtZHJvcGRvd24tc3dpdGNoZXJfX2xpc3QtaXRlbS1saW5rIHtcbiAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS44cmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtOyB9IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcHNldWRvaWNvbl9iZWZvcmUtaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKSB7XG59XG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy1ib3R0b20tYm9yZGVyOiAxcHggJGNvbG9yX2JvcmRlci01MDAgc29saWQgIWRlZmF1bHQ7XG5cbi8vIE9mZmNhbnZhcyB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLXR5cGU6ICdhcnJvdycgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItYXJyb3ctZGVmYXVsdDogJ2Rvd24nICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWhlaWdodDogMC4xcmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LW9mZnNldDogM3JlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldDogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBEcm9wZG93biB0cmlnZ2VyIG9wdGlvbnNcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtODAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yLS1hY3RpdmU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWNvbG9yICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItdHlwZTogJ2Fycm93JyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWRlZmF1bHQ6ICdkb3duJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LWFjdGl2ZTogJ3VwJyAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXdpZHRoOiAwLjdyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1oZWlnaHQ6IDAuMXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWFycm93LW9mZnNldDogMC41cmVtICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tc3dpdGNoZXJfbGlzdC1pdGVtLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1zd2l0Y2hlcl90b3BiYXItc2VwYXJhdG9yLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl9ib3JkZXItMTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuJGRyb3Bkb3duLXN3aXRjaGVyX2xhbmd1YWdlLWZsYWctd2lkdGg6IDEuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLWhlaWdodDogMS41cmVtICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk6IDEuNHJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5OiAxLjFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31kcm9wZG93bi1zd2l0Y2hlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgbGVmdDogMS4zcmVtO1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogJGRyb3Bkb3duLXN3aXRjaGVyX3RvcGJhci1zZXBhcmF0b3ItYm9yZGVyO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1zdG9yZXMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbiB7XG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBtaW4td2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfbGFuZ3VhZ2UtZmxhZy1oZWlnaHQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAgICAgI3skcm9vdH0tLWxhbmd1YWdlICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9sYW5ndWFnZS1mbGFnLXdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zd2l0Y2hlci1vcHRpb25zIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RyaWdnZXIge1xuICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtYm90dG9tLWJvcmRlcjtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIEBpZiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItZW5hYmxlZCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItdHlwZSxcbiAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWRlZmF1bHQsXG4gICAgICAgICAgICAgICAgJGFycm93LWFjdGl2ZTogJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWFycm93LWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAkd2lkdGg6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci13aWR0aCxcbiAgICAgICAgICAgICAgICAkaGVpZ2h0OiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItaGVpZ2h0LFxuICAgICAgICAgICAgICAgICRhcnJvdy1vZmZzZXQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9vZmZjYW52YXMtdHJpZ2dlci1hcnJvdy1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJHBvc2l0aW9uLXNpZGUtb2Zmc2V0OlxuICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItcG9zaXRpb24tc2lkZS1vZmZzZXQsXG4gICAgICAgICAgICAgICAgJGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3IsXG4gICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXJfb2ZmY2FudmFzLXRyaWdnZXItY29sb3ItLWhvdmVyLFxuICAgICAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDpcbiAgICAgICAgICAgICAgICAgICAgJGRyb3Bkb3duLXN3aXRjaGVyX29mZmNhbnZhcy10cmlnZ2VyLWNvbG9yLS1hY3RpdmUsXG4gICAgICAgICAgICAgICAgJGFjdGl2ZS1zZWxlY3RvcjogJyYuYWN0aXZlJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXNlY29uZGFyeTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDEuNXJlbSAwIDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuXG4gICAgICAgICAgICBAaWYgJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItZW5hYmxlZCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctYWN0aXZlOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1hcnJvdy1hY3RpdmUsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItd2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRkcm9wZG93bi1zd2l0Y2hlcl90cmlnZ2VyLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItYXJyb3ctb2Zmc2V0LFxuICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1wb3NpdGlvbi1zaWRlLW9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkZHJvcGRvd24tc3dpdGNoZXJfdHJpZ2dlci1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkZHJvcGRvd24tc3dpdGNoZXItdHJpZ2dlci1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1leHBhbmRlZDogJGRyb3Bkb3duLXN3aXRjaGVyX3RyaWdnZXItY29sb3ItLWFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgJGFjdGl2ZS1zZWxlY3RvcjogJyYuYWN0aXZlJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlICYge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLXN3aXRjaGVyX2JhY2tncm91bmQ7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyLjRyZW0gMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXNwYW4ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBmb250LXNpemU6ICRkcm9wZG93bi1zd2l0Y2hlcl9mb250LXNpemUtc2Vjb25kYXJ5O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkZHJvcGRvd24tc3dpdGNoZXJfYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRkcm9wZG93bi1zd2l0Y2hlcl9ib3JkZXItcmFkaXVzO1xuICAgICAgICBib3JkZXItY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJvcmRlci1jb2xvcjtcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDFweCAxcHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1zd2l0Y2hlcl9saXN0LWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLWN1cnJlbmN5IHtcbiAgICAgICAgICAgIHJpZ2h0OiAtMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3RpdmUgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pdGVtLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2xvcjogJGRyb3Bkb3duLXN3aXRjaGVyX2xpc3QtaXRlbS1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1zd2l0Y2hlcl9ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS40cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkZHJvcGRvd24tc3dpdGNoZXJfZm9udC1zaXplLXByaW1hcnk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjZyZW0gMS44cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRyb3Bkb3duLXN3aXRjaGVyX2ZvbnQtc2l6ZS1zZWNvbmRhcnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9ob29rJztcblxuJHBzZXVkb2ljb24tdHlwZTogJ3BsdXMnICFkZWZhdWx0OyAvLyBwbHVzIChkZWZhdWx0KSBvciBhcnJvd1xuLy8gQW5pbWF0aW9uIGZvciBhcnJvd3Mgd29ya3Mgb25seSBpZiBkZWZhdWx0IGFuZCBhY3RpdmUgZGlyZWN0aW9uIGFyZSBvcHBvc2l0ZVxuJHBzZXVkb2ljb24tYW5pbWF0ZTogdHJ1ZSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWFuaW1hdGlvbi10aW1lOiAwLjE1cyAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWhvdmVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWV4cGFuZGVkLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcHNldWRvaWNvbi1oZWlnaHQ6IDAuMnJlbSAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0OiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuLy8gQWRkaXRpb25hbCBzZXR0aW5ncyBmb3IgYXJyb3dzXG4kcHNldWRvaWNvbi1hcnJvdy1kZWZhdWx0LWRpcmVjdGlvbjogJ3VwJyAhZGVmYXVsdDtcbiRwc2V1ZG9pY29uLWFycm93LWFjdGl2ZS1kaXJlY3Rpb246ICdkb3duJyAhZGVmYXVsdDtcbi8vIEluIHNvbWUgY2FzZXMgKGl0IGRlcGVuZHMgb24gJHBzZXVkb2ljb24td2lkdGgvaGVpZ2h0IHZhbHVlKSwgd2UgbmVlZCB0byBmaXggb2Zmc2V0IGZvciBsZWZ0IHBhcnQgb2YgaWNvblxuJHBzZXVkb2ljb24tYXJyb3ctbGVmdC1vZmZzZXQ6IGNhbGMoXG4gICAgI3skcHNldWRvaWNvbi1wb3NpdGlvbi1zaWRlLW9mZnNldH0gKyAjeyRwc2V1ZG9pY29uLXdpZHRofSAtICN7MiAqXG4gICAgICAgICRwc2V1ZG9pY29uLWhlaWdodH1cbikgIWRlZmF1bHQ7XG5cbiRwc2V1ZG9pY29uLWFjdGl2ZS1zZWxlY3RvcjogJyZbYXJpYS1leHBhbmRlZD1cInRydWVcIl0nICFkZWZhdWx0O1xuXG5AbWl4aW4gcHNldWRvaWNvbihcbiAgICAkdHlwZTogJHBzZXVkb2ljb24tdHlwZSxcbiAgICAkYW5pbWF0ZWQ6ICRwc2V1ZG9pY29uLWFuaW1hdGUsXG4gICAgJGFuaW1hdGlvbi10aW1lOiAkcHNldWRvaWNvbi1hbmltYXRpb24tdGltZSxcbiAgICAkY29sb3I6ICRwc2V1ZG9pY29uLWNvbG9yLFxuICAgICRjb2xvci1ob3ZlcjogJHBzZXVkb2ljb24taG92ZXItY29sb3IsXG4gICAgJGNvbG9yLWV4cGFuZGVkOiAkcHNldWRvaWNvbi1leHBhbmRlZC1jb2xvcixcbiAgICAkd2lkdGg6ICRwc2V1ZG9pY29uLXdpZHRoLFxuICAgICRoZWlnaHQ6ICRwc2V1ZG9pY29uLWhlaWdodCxcbiAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6ICRwc2V1ZG9pY29uLXBvc2l0aW9uLXNpZGUtb2Zmc2V0LFxuICAgICRhcnJvdy1kZWZhdWx0OiAkcHNldWRvaWNvbi1hcnJvdy1kZWZhdWx0LWRpcmVjdGlvbixcbiAgICAkYXJyb3ctYWN0aXZlOiAkcHNldWRvaWNvbi1hcnJvdy1hY3RpdmUtZGlyZWN0aW9uLFxuICAgICRhcnJvdy1vZmZzZXQ6ICRwc2V1ZG9pY29uLWFycm93LWxlZnQtb2Zmc2V0LFxuICAgICRhY3RpdmUtc2VsZWN0b3I6ICRwc2V1ZG9pY29uLWFjdGl2ZS1zZWxlY3RvclxuKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUsXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogJHdpZHRoO1xuICAgICAgICBoZWlnaHQ6ICRoZWlnaHQ7XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcjtcblxuICAgICAgICBAaWYgKCRhbmltYXRlZCkge1xuICAgICAgICAgICAgQGlmICgkdHlwZSA9PSAnYXJyb3cnKSB7XG4gICAgICAgICAgICAgICAgQGlmICgoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykgYW5kICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykpIG9yXG4gICAgICAgICAgICAgICAgICAgICgoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykpIG9yXG4gICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpXG4gICAgICAgICAgICAgICAgICAgICkgb3JcbiAgICAgICAgICAgICAgICAgICAgKCgkYXJyb3ctZGVmYXVsdCA9PSAncmlnaHQnKSBhbmQgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSlcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAkYW5pbWF0aW9uLXRpbWUgbGluZWFyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQgJGFuaW1hdGlvbi10aW1lIGxpbmVhcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3IgJGFuaW1hdGlvbi10aW1lIGxpbmVhcjtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAoMiAqICRhbmltYXRpb24tdGltZSkgZWFzZS1vdXQsXG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHkgJGFuaW1hdGlvbi10aW1lIGVhc2Utb3V0LFxuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yICRhbmltYXRpb24tdGltZSBsaW5lYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkY29sb3ItaG92ZXIgIT0gJGNvbG9yKSB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkYW5pbWF0aW9uLXRpbWUgbGluZWFyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgIH1cblxuICAgIEBpZiAoJGNvbG9yLWhvdmVyICE9ICRjb2xvcikge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGNvbG9yLWV4cGFuZGVkICE9ICRjb2xvcikge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvci1leHBhbmRlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Fycm93Jykge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdsZWZ0Jykge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCA1MCUsIDApO1xuICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skYWN0aXZlLXNlbGVjdG9yfSB7XG4gICAgICAgICAgICBAaWYgKCRhcnJvdy1kZWZhdWx0ID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDIyNWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0yMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJGFycm93LWRlZmF1bHQgPT0gJ2Rvd24nKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgtNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICd1cCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmICgkYXJyb3ctYWN0aXZlID09ICdkb3duJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkcG9zaXRpb24tc2lkZS1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiAkYXJyb3ctb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGFycm93LWFjdGl2ZSA9PSAncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3VwJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICgkYXJyb3ctZGVmYXVsdCA9PSAndXAnKSB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRwb3NpdGlvbi1zaWRlLW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnbGVmdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6ICRhcnJvdy1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmICgkYXJyb3ctYWN0aXZlID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDEzNWRlZykgdHJhbnNsYXRlM2QoNTAlLCAwLCAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoJGFycm93LWFjdGl2ZSA9PSAnZG93bicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKCRhcnJvdy1hY3RpdmUgPT0gJ2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtNDVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogJGFycm93LW9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogJHBvc2l0aW9uLXNpZGUtb2Zmc2V0O1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JGFjdGl2ZS1zZWxlY3Rvcn0ge1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKC05MGRlZykgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgwKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBwc2V1ZG9pY29uX2JlZm9yZS1ob29rKCR0eXBlKTtcbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbl9hZnRlci1ob29rKCR0eXBlKTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5jcy1maWVsZCxcbi5jcy1pbnB1dCB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZmllbGQuX2VkaXRpbmcgLmZpZWxkLWVycm9yLFxuICAuY3MtaW5wdXQuX2VkaXRpbmcgLmZpZWxkLWVycm9yIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1maWVsZF9fY29udHJvbCxcbiAgLmNzLWlucHV0X19jb250cm9sIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtZmllbGRfX2xhYmVsLFxuICAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmctYm90dG9tOiAwLjVyZW07IH1cbiAgICAucmVxdWlyZWQgLmNzLWZpZWxkX19sYWJlbDphZnRlciwgLnJlcXVpcmVkXG4gICAgLmNzLWlucHV0X19sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnIConO1xuICAgICAgY29sb3I6ICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19pbnB1dCwgLmNzLWZpZWxkX190ZXh0YXJlYSxcbiAgLmNzLWlucHV0X19pbnB1dCxcbiAgLmNzLWlucHV0X190ZXh0YXJlYSB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZmllbGRfX3RleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX190ZXh0YXJlYTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0OjpwbGFjZWhvbGRlciwgLmNzLWZpZWxkX190ZXh0YXJlYTo6cGxhY2Vob2xkZXIsXG4gICAgLmNzLWlucHV0X19pbnB1dDo6cGxhY2Vob2xkZXIsXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLWZpZWxkX19pbnB1dFtkaXNhYmxlZF0sIC5jcy1maWVsZF9fdGV4dGFyZWFbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9faW5wdXRbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fdGV4dGFyZWFbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuY3MtZmllbGRfX2lucHV0Lm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9faW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSwgLmNzLWZpZWxkX190ZXh0YXJlYS5tYWdlLWVycm9yLCAuY3MtZmllbGRfX3RleHRhcmVhLm1hZ2UtZXJyb3I6aG92ZXI6bm90KDpmb2N1cyksXG4gICAgLmNzLWlucHV0X19pbnB1dC5tYWdlLWVycm9yLFxuICAgIC5jcy1pbnB1dF9faW5wdXQubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX3RleHRhcmVhLm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X190ZXh0YXJlYS5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19zZWxlY3QsXG4gIC5jcy1pbnB1dF9fc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDIuM2VtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyM2RjZGNkYyclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmNzLWZpZWxkX19zZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5jcy1maWVsZF9fc2VsZWN0OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0Oi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1maWVsZF9fc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19zZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtaW5wdXRfX3NlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzN2U1N2MyJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdFtkaXNhYmxlZF0sXG4gICAgLmNzLWlucHV0X19zZWxlY3RbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuY3MtZmllbGRfX3NlbGVjdCBvcHRpb24sXG4gICAgLmNzLWlucHV0X19zZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmNzLWZpZWxkX19yYWRpbyxcbiAgLmNzLWlucHV0X19yYWRpbyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMWVtO1xuICAgIHdpZHRoOiAxZW07XG4gICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzOyB9XG4gICAgLmNzLWZpZWxkX19yYWRpbzo6LW1vei1mb2N1cy1pbm5lciwgLmNzLWZpZWxkX19yYWRpbzotbW96LWZvY3VzcmluZyxcbiAgICAuY3MtaW5wdXRfX3JhZGlvOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWZpZWxkX19yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1maWVsZF9fcmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1pbnB1dF9fcmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQsXG4gICAgLmNzLWlucHV0X19yYWRpbzpjaGVja2VkIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nJTIzN2U1N2MyJyByPSc0JyBjeT0nNycgY3g9JzcnLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAgIC5jcy1maWVsZF9fcmFkaW86Y2hlY2tlZCwgLmNzLWZpZWxkX19yYWRpbzpjaGVja2VkOmhvdmVyLCAuY3MtZmllbGRfX3JhZGlvOmNoZWNrZWQ6Zm9jdXMsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQ6aG92ZXIsXG4gICAgICAuY3MtaW5wdXRfX3JhZGlvOmNoZWNrZWQ6Zm9jdXMge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdLFxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1maWVsZF9fcmFkaW9bZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuY3MtaW5wdXRfX3JhZGlvW2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAuY3MtZmllbGRfX2NoZWNrYm94LFxuICAuY3MtaW5wdXRfX2NoZWNrYm94IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxZW07XG4gICAgd2lkdGg6IDFlbTtcbiAgICBtYXJnaW46IC0wLjA2MjVlbSBjYWxjKDAuNWVtICsgMXB4KSAwIDA7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXM7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBib3JkZXItY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OjotbW96LWZvY3VzLWlubmVyLCAuY3MtZmllbGRfX2NoZWNrYm94Oi1tb3otZm9jdXNyaW5nLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLmNzLWlucHV0X19jaGVja2JveDotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWZpZWxkX19jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWlucHV0X19jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzRkMmM5MTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94OmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3ZTU3YzInIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLCAuY3MtZmllbGRfX2NoZWNrYm94OmNoZWNrZWQ6aG92ZXIsIC5jcy1maWVsZF9fY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyxcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCxcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZDpob3ZlcixcbiAgICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0sXG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmNzLWZpZWxkX19jaGVja2JveFtkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmxhYmVsLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3hbZGlzYWJsZWRdICsgLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLWZpZWxkX19jaGVja2JveDpjaGVja2VkLFxuICAgIC5jcy1pbnB1dF9fY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjM3ZTU3YzInIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAuY3MtZmllbGRfX2NoZWNrYm94Lm1hZ2UtZXJyb3IsIC5jcy1maWVsZF9fY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSxcbiAgICAuY3MtaW5wdXRfX2NoZWNrYm94Lm1hZ2UtZXJyb3IsXG4gICAgLmNzLWlucHV0X19jaGVja2JveC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmNzLWZpZWxkX19pY29uLFxuICAuY3MtaW5wdXRfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMS4zZW07XG4gICAgaGVpZ2h0OiAxLjNlbTtcbiAgICByaWdodDogMC44ZW07XG4gICAgdG9wOiAwLjhlbTtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1maWVsZF9fbm90ZSxcbiAgLmNzLWlucHV0X19ub3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLWZpZWxkX19lcnJvcixcbiAgLmNzLWlucHV0X19lcnJvciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgcGFkZGluZzogMC4zZW0gMCAwO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG5cbi5maWVsZCB7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICAuZmllbGQuX2VkaXRpbmcgLmZpZWxkLWVycm9yIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5maWVsZC5fc3VjY2Vzczpub3QoLl93YXJuKSAuY29udHJvbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmZpZWxkLl9zdWNjZXNzOm5vdCguX3dhcm4pIC5jb250cm9sOmFmdGVyIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxLjNlbTtcbiAgICAgIGhlaWdodDogMS4zZW07XG4gICAgICByaWdodDogMC44ZW07XG4gICAgICB0b3A6IDAuOGVtO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9jaGVjay1ncmVlbi5zdmdcIikgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIvY29udGFpbjtcbiAgICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC5maWVsZCAuY29udHJvbCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuZmllbGQgLmNvbnRyb2wgPiB0ZXh0YXJlYSB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAgIC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuZmllbGQgLmNvbnRyb2wgLm5lc3RlZCB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgICAgLmZpZWxkIC5jb250cm9sIC5uZXN0ZWQgLmZpZWxkIHtcbiAgICAgICAgbWF4LXdpZHRoOiA0OCU7IH1cbiAgLmZpZWxkIC5sYWJlbCB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyB9XG4gIC5maWVsZC5jaG9pY2UgbGFiZWwubGFiZWwge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmZpZWxkLnJlcXVpcmVkID4gLmxhYmVsOmFmdGVyLCAuZmllbGQuX3JlcXVpcmVkID4gLmxhYmVsOmFmdGVyIHtcbiAgICBjb250ZW50OiAnIConO1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5maWVsZC5yZXF1aXJlZCAuX3JlcXVpcmVkID4gLmxhYmVsOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5maWVsZCAuaW5wdXQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5pbnB1dC10ZXh0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTsgfVxuICAgIC5maWVsZCAuaW5wdXQtdGV4dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0Lm1hZ2UtZXJyb3IsIC5maWVsZCAuaW5wdXQtdGV4dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgICAuZmllbGQgLmlucHV0LXRleHQucmVxdWlyZWQtZW50cnkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuZmllbGQgLnNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZCAuc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuZmllbGQgLnNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLnNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAuc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjM3ZTU3YzInJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5maWVsZCAuc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmZpZWxkIC5zZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmZpZWxkIC5jaGVja2JveCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogMWVtO1xuICAgIHdpZHRoOiAxZW07XG4gICAgbWFyZ2luOiAtMC4wNjI1ZW0gY2FsYygwLjVlbSArIDFweCkgMCAwO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MCUgNTAlO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMWVtIDFlbTtcbiAgICBvdXRsaW5lOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgYm9yZGVyLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmZpZWxkIC5jaGVja2JveDo6LW1vei1mb2N1cy1pbm5lciwgLmZpZWxkIC5jaGVja2JveDotbW96LWZvY3VzcmluZyB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5jaGVja2JveDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyOiAycHggc29saWQgIzRkMmM5MTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjY2lyY2xlIGZpbGw9JyUyMzdlNTdjMicgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpOyB9XG4gICAgICAuZmllbGQgLmNoZWNrYm94OmNoZWNrZWQsIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZDpob3ZlciwgLmZpZWxkIC5jaGVja2JveDpjaGVja2VkOmZvY3VzIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSxcbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSArIC5sYWJlbCxcbiAgICAuZmllbGQgLmNoZWNrYm94W2Rpc2FibGVkXSArIC5jcy1pbnB1dF9fbGFiZWwge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZCAuY2hlY2tib3g6Y2hlY2tlZCB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2Nzdmcgd2lkdGg9JzE0JyBoZWlnaHQ9JzE0JyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnJTNlJTNjcGF0aCBmaWxsPSclMjM3ZTU3YzInIGQ9J001LjMxMyAxMC4xMDhINS4yNGExLjA2NCAxLjAwNSAwIDAgMS0uNzUtLjQxbC0xLjk0Ny0yLjU1YTEuMDY0IDEuMDA1IDAgMCAxIDEuNzIzLTEuMTc1TDUuNDYzIDcuNTYgOS4wNiA0LjE5YTEuMDY0IDEuMDA1IDAgMCAxIC43NS0uMjk3aC44NDZhMS4wNjQgMS4wMDUgMCAwIDEgMCAyLjAwNGgtLjQ1TDYuMDY0IDkuODFhMS4wNjQgMS4wMDUgMCAwIDEtLjc1LjI5OHonLyUzZSUzYy9zdmclM2VcIik7IH1cbiAgICAuZmllbGQgLmNoZWNrYm94Lm1hZ2UtZXJyb3IsIC5maWVsZCAuY2hlY2tib3gubWFnZS1lcnJvcjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjZTQxZjEyOyB9XG4gIC5maWVsZCAucmFkaW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDFlbTtcbiAgICB3aWR0aDogMWVtO1xuICAgIG1hcmdpbjogLTAuMDYyNWVtIGNhbGMoMC41ZW0gKyAxcHgpIDAgMDtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBmbGV4OiAwIDAgYXV0bztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTAlIDUwJTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IDFlbSAxZW07XG4gICAgb3V0bGluZTogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZCAucmFkaW86Oi1tb3otZm9jdXMtaW5uZXIsIC5maWVsZCAucmFkaW86LW1vei1mb2N1c3Jpbmcge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkIC5yYWRpbzpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZCAucmFkaW86Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IH1cbiAgICAuZmllbGQgLnJhZGlvOmNoZWNrZWQge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY2NpcmNsZSBmaWxsPSclMjM3ZTU3YzInIHI9JzQnIGN5PSc3JyBjeD0nNycvJTNlJTNjL3N2ZyUzZVwiKTsgfVxuICAgICAgLmZpZWxkIC5yYWRpbzpjaGVja2VkLCAuZmllbGQgLnJhZGlvOmNoZWNrZWQ6aG92ZXIsIC5maWVsZCAucmFkaW86Y2hlY2tlZDpmb2N1cyB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0sXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAubGFiZWwsXG4gICAgLmZpZWxkIC5yYWRpb1tkaXNhYmxlZF0gKyAuY3MtaW5wdXRfX2xhYmVsIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6LW1vei1mb2N1c3JpbmcsIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50OyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Q6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyUyMzdlNTdjMiclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLCBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpOyB9XG4gICAgLmZpZWxkLmN1c3RvbWVyLW5hbWUtcHJlZml4IHNlbGVjdFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZC5jdXN0b21lci1uYW1lLXByZWZpeCBzZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAgIC5maWVsZC5maWVsZC1kb2IgaW5wdXQubWFnZS1lcnJvciwgLmZpZWxkLmZpZWxkLWRvYiBpbnB1dC5tYWdlLWVycm9yOmhvdmVyOm5vdCg6Zm9jdXMpIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1OyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246OmJlZm9yZSwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246OmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b24sIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmZpZWxkLmZpZWxkLWRvYiBidXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5maWVsZC5maWVsZC1kb2IgYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmZpZWxkLmZpZWxkLWRvYiBidXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuZmllbGQuZmllbGQtZG9iIGJ1dHRvbiBzcGFuIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICB6LWluZGV4OiAxO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuZmllbGQuX2Vycm9yIC5pbnB1dC10ZXh0LCAuZmllbGQuX2Vycm9yIC5pbnB1dC10ZXh0OmhvdmVyOm5vdCg6Zm9jdXMpLFxuICAuZmllbGQuX2Vycm9yIC5jaGVja2JveCxcbiAgLmZpZWxkLl9lcnJvciAuY2hlY2tib3g6aG92ZXI6bm90KDpmb2N1cykge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNlNDFmMTI7IH1cbiAgLmZpZWxkIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1yaWdodDogMDsgfVxuICAuZmllbGQgLmZpZWxkLXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7IH1cbiAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmxhYmVsLFxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50IHtcbiAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICAgIGNvbG9yOiAjNjk2OTY5OyB9XG4gICAgICAuZmllbGQgLmZpZWxkLXRvb2x0aXAgLmZpZWxkLXRvb2x0aXAtY29udGVudDpiZWZvcmUsIC5maWVsZCAuZmllbGQtdG9vbHRpcCAuZmllbGQtdG9vbHRpcC1jb250ZW50OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuZmllbGQgLm5vdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuXG4uZmllbGQ6bm90KC5jaG9pY2UpOm5vdCgubGltaXRlcik6bm90KC50ZXJtcyk6bm90KC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyKSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuZmllbGQ6bm90KC5jaG9pY2UpOm5vdCgubGltaXRlcik6bm90KC50ZXJtcyk6bm90KC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyKSAubGFiZWwge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgei1pbmRleDogMztcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmZpZWxkOm5vdCguY2hvaWNlKTpub3QoLmxpbWl0ZXIpOm5vdCgudGVybXMpOm5vdCguY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlcikgLmxhYmVsIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbCB7XG4gICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IH1cblxuaW5wdXRbbmFtZT1cImZha3R1cmFfZWxla3Ryb25pY3puYVwiXSArIGxhYmVsIHtcbiAgdG9wOiAycHggIWltcG9ydGFudDsgfVxuXG4uZmllbGRbbmFtZT1cImFtYXN0eVBheW1lbnRBdHRyaWJ1dGVzLmZha3R1cmFfZWxla3Ryb25pY3puYVwiXSA+IGxhYmVsIHtcbiAgdG9wOiAycHggIWltcG9ydGFudDtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3VzdG9tZXItYWRkcmVzcy1mb3JtIC5maWVsZC5zdHJlZXQgLmxhYmVsIHtcbiAgdG9wOiAxMHB4OyB9XG5cbi5maWVsZC50ZXJtcyAubGFiZWwge1xuICB0b3A6IC0zcHggIWltcG9ydGFudDtcbiAgbGVmdDogMjRweCAhaW1wb3J0YW50OyB9XG5cbi5jcy1kYXNoYm9hcmQgLmZpZWxkIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbSAhaW1wb3J0YW50OyB9XG5cbi5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbCB7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG5cbmRpdi5tYWdlLWVycm9yOm5vdCguX2VkaXRpbmcpLFxuZGl2LmZpZWxkLWVycm9yOm5vdCguX2VkaXRpbmcpIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBjb2xvcjogI2U0MWYxMjsgfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIGZpZWxkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1lcnJvci1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtbGFiZWwtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsLXJlcXVpcmVkLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1jb250cm9sLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQtZXJyb3ItaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWljb24taG9vaygkdHlwZTogJycpIHtcbn1cblxuQG1peGluIGZpZWxkLW5vdGUtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1zZWxlY3QtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLXJhZGlvLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1yYWRpby1sYWJlbC1ob29rKCkge1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtaG9vaygpIHtcbn1cblxuQG1peGluIGZpZWxkLWNoZWNrYm94LWxhYmVsLWhvb2soKSB7XG59XG5cbkBtaXhpbiBmaWVsZC1kb2ItaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndXRpbHMvdXJpLWZyaWVuZGx5LWhleCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL2hvb2snO1xuXG4kZmllbGRfZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kZmllbGRfdHJhbnNpdGlvbi10aW1lOiAwLjVzICFkZWZhdWx0O1xuXG4kZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1mb250LXNpemU6IDAuODVlbSAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1jb2xvcjogaW5oZXJpdCAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9sYWJlbC1wYWRkaW5nLWJvdG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbiRmaWVsZF9pbnB1dC1mb250LXNpemU6IDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1saW5lLWhlaWdodDogJGJ1dHRvbl9saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1wYWRkaW5nOiAkYnV0dG9uX3BhZGRpbmcgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtYm9yZGVyLWFjdGl2ZTogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRmaWVsZF9pbnB1dC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX2lucHV0LWRpc2FibGVkLW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG4kZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTogJGZpZWxkX2xhYmVsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9lcnJvci1pbnB1dC1ib3JkZXI6IDJweCBzb2xpZCAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfbm90ZS1mb250LXNpemU6ICRmaWVsZF9sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZmllbGRfbm90ZS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4kZmllbGRfZXJyb3ItY29sb3I6ICRjb2xvcl9lcnJvci01MDAgIWRlZmF1bHQ7XG5cbiRmaWVsZF93YXJuaW5nLWNvbG9yOiAkY29sb3Jfd2FybmluZy01MDAgIWRlZmF1bHQ7XG4vLyBCYXNlZCBvbiBodHRwczovL3d3dy5maWxhbWVudGdyb3VwLmNvbS9sYWIvc2VsZWN0LWNzcy5odG1sXG4kZmllbGRfc2VsZWN0LWZvbnQtc2l6ZTogJGZpZWxkX2lucHV0LWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ6ICRmaWVsZF9pbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LXBhZGRpbmctcmlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuXG4kZmllbGRfc2VsZWN0LWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IDAuOGVtIHRvcCA1MiUsIDAgMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplOiAwLjdlbSBhdXRvLCAxMDAlICFkZWZhdWx0O1xuXG4vLyBOb3RlIHRoYXQgc2VsZWN0IGJhY2tncm91bmQgbmVlZHMgdG8gYmUgZGVmaW5lZCBhcyBiYWNrZ3JvdW5kLWltYWdlIHRvIHByZXZlbnRcbi8vIG9wdGlvbiBlbGVtZW50cyBmcm9tIGluaGVyaXRpbmcgaXQgb24gc29tZSBicm93c2Vycy5cbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtaWNvbi1maWxsLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9zZWxlY3QtaWNvbi1maWxsKX0nJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSxcbiAgICBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDEwMCUpICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1iYWNrZ3JvdW5kLWFjdGl2ZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDE2IDknIGZpbGw9JyN7dXJpLWZyaWVuZGx5LWhleCgkZmllbGRfc2VsZWN0LWljb24tZmlsbC1hY3RpdmUpfSclM2UlM2NwYXRoIGQ9J00wIDEuMkMwIC41LjYgMCAxLjIgMGMuMyAwIC42LjEuOC4zbDYgNS45IDYtNS45Yy41LS40IDEuMi0uMyAxLjcuMS40LjQuNCAxLjEgMCAxLjVMOC45IDguN2MtLjUuNC0xLjIuNC0xLjcgMEwuNCAyYS45LjkgMCAwIDEtLjQtLjh6Jy8lM2UlM2Mvc3ZnJTNlXCIpLFxuICAgIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSkgIWRlZmF1bHQ7XG5cbiRmaWVsZF9zZWxlY3QtYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1hY3RpdmU6IDJweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX2lucHV0LWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kZmllbGRfc2VsZWN0LWRpc2FibGVkLW9wYWNpdHk6ICRmaWVsZF9pbnB1dC1kaXNhYmxlZC1vcGFjaXR5ICFkZWZhdWx0O1xuXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuJGZpZWxkX3JhZGlvLWZvbnQtc2l6ZTogMWVtICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLXNpemU6IDFlbSAhZGVmYXVsdDtcbi8vIExldHMgeW91IGFkanVzdCBib3RoIHJhZGlvIGFuZCBjaGVja2JveCBhbGlnbm1lbnQgYmFzZWQgb24gZm9udCB5b3UndmUgY2hvc2VuLlxuJGZpZWxkX3JhZGlvLW9mZnNldDogLTAuMDYyNWVtICFkZWZhdWx0O1xuLy8gQWxpZ25pbmcgYW55dGhpbmcgdGhhdCBjb21lcyBhZnRlciB3aXRoIGlucHV0IHBhZGRpbmdzLCB0aGlzIDFweCBzdGFuZHMgZm9yIGlucHV0J3MgYm9yZGVyIHdpZHRoLlxuJGZpZWxkX3JhZGlvLW1hcmdpbjogJGZpZWxkX3JhZGlvLW9mZnNldCBjYWxjKCN7MS41ZW0gLSAkZmllbGQtcmFkaW8tc2l6ZX0gKyAxcHgpIDAgMCAhZGVmYXVsdDtcblxuJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtc2l6ZTogMWVtIDFlbSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWNvbG9yLWFjdGl2ZTogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvci1jaGVja2VkOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1iYWNrZ3JvdW5kLWltYWdlLWNoZWNrZWQ6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM2UlM2NjaXJjbGUgZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9yYWRpby1pY29uLWZpbGwpfScgcj0nNCcgY3k9JzcnIGN4PSc3Jy8lM2UlM2Mvc3ZnJTNlXCIpICFkZWZhdWx0O1xuXG4kZmllbGRfcmFkaW8tYm9yZGVyOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZmllbGRfcmFkaW8tYm9yZGVyLWFjdGl2ZTogMnB4IHNvbGlkICRjb2xvci1wcmltYXJ5LTgwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3JkZXItY2hlY2tlZDogMnB4IHNvbGlkICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1ib3gtc2hhZG93OiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlOiBub25lICFkZWZhdWx0O1xuJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctY2hlY2tlZDogbm9uZSAhZGVmYXVsdDtcbiRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eSAhZGVmYXVsdDtcblxuJGZpZWxkX2NoZWNrYm94LWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1zaXplOiAxZW0gMWVtICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9VVRGLTgsJTNjc3ZnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyUzZSUzY3BhdGggZmlsbD0nI3t1cmktZnJpZW5kbHktaGV4KCRmaWVsZF9jaGVja2JveC1pY29uLWZpbGwpfScgZD0nTTUuMzEzIDEwLjEwOEg1LjI0YTEuMDY0IDEuMDA1IDAgMCAxLS43NS0uNDFsLTEuOTQ3LTIuNTVhMS4wNjQgMS4wMDUgMCAwIDEgMS43MjMtMS4xNzVMNS40NjMgNy41NiA5LjA2IDQuMTlhMS4wNjQgMS4wMDUgMCAwIDEgLjc1LS4yOTdoLjg0NmExLjA2NCAxLjAwNSAwIDAgMSAwIDIuMDA0aC0uNDVMNi4wNjQgOS44MWExLjA2NCAxLjAwNSAwIDAgMS0uNzUuMjk4eicvJTNlJTNjL3N2ZyUzZVwiKSAhZGVmYXVsdDtcblxuJGZpZWxkX2ljb24td2lkdGg6IDEuM2VtICFkZWZhdWx0O1xuJGZpZWxkX2ljb24taGVpZ2h0OiAxLjNlbSAhZGVmYXVsdDtcbiRmaWVsZF9pY29uLXN1Y2Nlc3MtYmFja2dyb3VuZDogdXJsKCcuLi9pbWFnZXMvY2hlY2stZ3JlZW4uc3ZnJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXIgLyBjb250YWluICFkZWZhdWx0O1xuXG4kZmllbGRfZG9iLWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmaWVsZCgpIHtcbiAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgICYuX2VkaXRpbmcge1xuICAgICAgICAuZmllbGQtZXJyb3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX2Vycm9yLWZvbnQtc2l6ZTtcbiAgICBjb2xvcjogJGNvbG9yX2Vycm9yLTUwMDtcbiAgICBtYXJnaW4tdG9wOiAwLjJlbTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWxhYmVsKCkge1xuICAgIGZvbnQtd2VpZ2h0OiAkZmllbGRfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgZm9udC1zaXplOiAkZmllbGRfbGFiZWwtZm9udC1zaXplO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtdHJhbnNmb3JtOiAkZmllbGRfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgY29sb3I6ICRmaWVsZF9sYWJlbC1jb2xvcjtcbiAgICBwYWRkaW5nLWJvdHRvbTogJGZpZWxkX2xhYmVsLXBhZGRpbmctYm90b207XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyAqJztcbiAgICAgICAgY29sb3I6ICRjb2xvcl9lcnJvci01MDA7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY29udHJvbCgpIHtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIGZpZWxkLWNvbnRyb2wtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtaW5wdXQoKSB7XG4gICAgZm9udC1zaXplOiAkZmllbGRfaW5wdXQtZm9udC1zaXplO1xuICAgIGxpbmUtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmc7XG4gICAgY29sb3I6ICRmaWVsZF9pbnB1dC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kOiAkZmllbGRfaW5wdXQtYmFja2dyb3VuZDtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfaW5wdXQtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXI6ICRmaWVsZF9pbnB1dC1ib3JkZXI7XG4gICAgYm94LXNoYWRvdzogJGZpZWxkX2lucHV0LWJveC1zaGFkb3c7XG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07IC8vIEFkZCBzcGFjaW5nIHVuZGVyIGxhYmVsLiBUaGlzIGNhbid0IGJlIGFkZGVkIHRvIGxhYmVsIGl0c2VsZiBiZWNhdXNlIHRoZXkgYXJlIHNvbWV0aW1lcyByZW5kZXJlZCBlbXB0eS5cbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94OyAvLyBSZW1vdmVzIGRyb3Agc2hhZG93IGZyb20gaW5wdXRzIG9uIGlPUy5cbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlci1hY3RpdmU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkZmllbGRfaW5wdXQtYm94LXNoYWRvdy1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOjpwbGFjZWhvbGRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGNvbG9yOiAkZmllbGRfaW5wdXQtcGxhY2Vob2xkZXItY29sb3I7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAkZmllbGRfaW5wdXQtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pbnB1dC1lcnJvcigpIHtcblxuICAgICYsXG4gICAgJjpob3Zlcjpub3QoOmZvY3VzKSB7XG4gICAgICAgIGJvcmRlcjogJGZpZWxkX2Vycm9yLWlucHV0LWJvcmRlcjtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC1pY29uKCR0eXBlOiAnJykge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogJGZpZWxkX2ljb24td2lkdGg7XG4gICAgaGVpZ2h0OiAkZmllbGRfaWNvbi1oZWlnaHQ7XG4gICAgcmlnaHQ6IDAuOGVtO1xuICAgIHRvcDogMC44ZW07XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpZiAoJHR5cGUgPT0nc3VjY2VzcycpIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGZpZWxkX2ljb24tc3VjY2Vzcy1iYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWljb24taG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBmaWVsZC1ub3RlKCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX25vdGUtZm9udC1zaXplO1xuICAgIHBhZGRpbmc6IDAuM2VtIDAgMDtcbiAgICBjb2xvcjogJGZpZWxkX25vdGUtY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1ub3RlLWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWVycm9yKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfZXJyb3ItY29sb3I7XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1lcnJvci1ob29rKCk7XG59XG5cbkBtaXhpbiBmaWVsZC13YXJuaW5nKCkge1xuICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgIGNvbG9yOiAkZmllbGRfd2FybmluZy1jb2xvcjtcblxuICAgIEBpbmNsdWRlIGZpZWxkLXdhcm5pbmctaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtc2VsZWN0KCkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogJGZpZWxkX3NlbGVjdC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRmaWVsZF9zZWxlY3QtbGluZS1oZWlnaHQ7XG4gICAgcGFkZGluZzogJGZpZWxkX3NlbGVjdC1wYWRkaW5nO1xuICAgIHBhZGRpbmctcmlnaHQ6ICRmaWVsZF9zZWxlY3QtcGFkZGluZy1yaWdodDtcbiAgICBjb2xvcjogJGZpZWxkX3NlbGVjdC1jb2xvcjtcbiAgICBib3JkZXItcmFkaXVzOiAkZmllbGRfc2VsZWN0LWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyOiAkZmllbGRfc2VsZWN0LWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfc2VsZWN0LWJveC1zaGFkb3c7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtOyAvLyBBZGQgc3BhY2luZyB1bmRlciBsYWJlbC4gVGhpcyBjYW4ndCBiZSBhZGRlZCB0byBsYWJlbCBpdHNlbGYgYmVjYXVzZSB0aGV5IGFyZSBzb21ldGltZXMgcmVuZGVyZWQgZW1wdHkuXG4gICAgb3V0bGluZTogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfc2VsZWN0LWJhY2tncm91bmQtaW1hZ2U7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1wb3NpdGlvbjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1zaXplO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkZmllbGRfdHJhbnNpdGlvbi10aW1lO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuICAgICY6LW1vei1mb2N1c3JpbmcsXG4gICAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAwIDAgIzAwMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAgICY6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3NlbGVjdC1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3NlbGVjdC1ib3gtc2hhZG93LWFjdGl2ZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICRmaWVsZF9zZWxlY3QtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9zZWxlY3QtZGlzYWJsZWQtb3BhY2l0eTtcbiAgICB9XG5cbiAgICBvcHRpb24ge1xuICAgICAgICBmb250LXdlaWdodDogNTAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBjb2xvcjogaW5pdGlhbDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1zZWxlY3QtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8tbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtcmFkaW8oKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGhlaWdodDogJGZpZWxkX3JhZGlvLXNpemU7XG4gICAgd2lkdGg6ICRmaWVsZF9yYWRpby1zaXplO1xuICAgIG1hcmdpbjogJGZpZWxkX3JhZGlvLW1hcmdpbjtcbiAgICBmb250LXNpemU6ICRmaWVsZF9yYWRpby1mb250LXNpemU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgZmxleDogMCAwIGF1dG87IC8vIFByZXZlbnQgZmxleCBwYXJlbnQgZnJvbSBicmVha2luZyBkaW1lbnNpb25zLlxuICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlcjtcbiAgICBib3gtc2hhZG93OiAkZmllbGRfcmFkaW8tYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDUwJSA1MCU7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkZmllbGRfcmFkaW8tYmFja2dyb3VuZC1zaXplO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGZpZWxkX3RyYW5zaXRpb24tdGltZSxcbiAgICAgICAgYm9yZGVyLWNvbG9yICRmaWVsZF90cmFuc2l0aW9uLXRpbWU7XG5cbiAgICAmOjotbW96LWZvY3VzLWlubmVyLFxuICAgICY6LW1vei1mb2N1c3Jpbmcge1xuICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMge1xuICAgICAgICAmOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXI6ICRmaWVsZF9yYWRpby1ib3JkZXItYWN0aXZlO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJGZpZWxkX3JhZGlvLWJveC1zaGFkb3ctYWN0aXZlO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpjaGVja2VkIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtaW1hZ2UtY2hlY2tlZDtcblxuICAgICAgICAmLFxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJvcmRlcjogJGZpZWxkX3JhZGlvLWJvcmRlci1jaGVja2VkO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGZpZWxkX3JhZGlvLWJhY2tncm91bmQtY29sb3ItY2hlY2tlZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRmaWVsZF9yYWRpby1ib3gtc2hhZG93LWNoZWNrZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW2Rpc2FibGVkXSxcbiAgICAmW2Rpc2FibGVkXSsubGFiZWwsXG4gICAgJltkaXNhYmxlZF0rLmNzLWlucHV0X19sYWJlbCB7XG4gICAgICAgIG9wYWNpdHk6ICRmaWVsZF9yYWRpby1kaXNhYmxlZC1vcGFjaXR5O1xuICAgIH1cblxuICAgIC8vIHN0eWxlbGludC1lbmFibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8taG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3gtbGFiZWwoKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwtaG9vaygpO1xufVxuXG5AbWl4aW4gZmllbGQtY2hlY2tib3goKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtcmFkaW8oKTtcblxuICAgIGJvcmRlci1yYWRpdXM6ICRmaWVsZF9jaGVja2JveC1ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtc2l6ZTogJGZpZWxkX2NoZWNrYm94LWJhY2tncm91bmQtc2l6ZTtcbiAgICBib3JkZXItY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG5cbiAgICAmOmNoZWNrZWQge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAkZmllbGRfY2hlY2tib3gtYmFja2dyb3VuZC1pbWFnZS1jaGVja2VkO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWhvb2soKTtcbn1cblxuQG1peGluIGZpZWxkLWRvYigpIHtcbiAgICBpbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBidXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRmaWVsZF9kb2ItYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zICk7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbigkdHlwZTogJGZpZWxkX2RvYi1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRmaWVsZF9kb2ItYnV0dG9uLWljb24tcG9zICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBmaWVsZC1kb2ItaG9vaygpO1xufSIsIkBpbXBvcnQgJ2NvbXBvbmVudHMvZmllbGQvbWl4aW4nO1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi8vIE91ciBCRU0gY29tcG9uZW50LlxuLmNzLWZpZWxkLFxuLy8gTGVmdCBmb3Igbm93IGZvciBjb21wYXRpYmlsaXR5IHNha2UuXG4uY3MtaW5wdXQge1xuICAgIEBpbmNsdWRlIGZpZWxkKCk7XG5cbiAgICAmX19jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcblxuICAgICAgICAucmVxdWlyZWQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1sYWJlbC1yZXF1aXJlZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW5wdXQsXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgJl9fcmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NoZWNrYm94IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3goKTtcblxuICAgICAgICAmLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQtZXJyb3IoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFRvIHJld3JpdGUgdG8gcHJvcGVyIHNjc3Mgc3ludGF4IGFmdGVyIGdldHRpbmcgcmlkIG9mIC5jcy1pbnB1dCBjbGFzc1xuICAgICAgICAmICsgLmNzLWlucHV0X19sYWJlbCxcbiAgICAgICAgJiArIC5jcy1maWVsZF9fbGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtY2hlY2tib3gtbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pY29uKCk7XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcbiAgICB9XG5cbiAgICAmX19lcnJvciB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWVycm9yKCk7XG4gICAgfVxufVxuLy8gTWFnZW50byBjbGFzc2VzIHVzZWQgaW4gY2hlY2tvdXQsIGxvZ2luL3JlZ2lzdGVyIGZvcm1zIGV0Yy5cbi5maWVsZCB7XG4gICAgQGluY2x1ZGUgZmllbGQoKTtcbiAgICAvLyBjdXN0b20gbGFiZWxcbiAgICAvLyBwb3NpdGlvbjogcmVsYXRpdmU7XG5cblxuICAgICYuX3N1Y2Nlc3M6bm90KC5fd2Fybikge1xuICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWljb24oJ3N1Y2Nlc3MnKTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jb250cm9sIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtY29udHJvbCgpO1xuXG4gICAgICAgID4gdGV4dGFyZWEge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5uZXN0ZWR7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgICAgLmZpZWxke1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogNDglO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwoKTtcbiAgICAgICAgXG4gICAgfVxuXG4gICAgJi5jaG9pY2UgbGFiZWwubGFiZWwge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmLnJlcXVpcmVkLFxuICAgICYuX3JlcXVpcmVkIHtcbiAgICAgICAgPiAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtbGFiZWwtcmVxdWlyZWQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVxdWlyZWQge1xuICAgICAgICAuX3JlcXVpcmVkIHtcbiAgICAgICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSGlkZSBhc3Rlcmlza3MgZm9yIGxhYmVscyBpbnNpZGUgZmllbGRzZXRzIGFzIHRoZXkgYXJlIHVzdWFsbHkgcmVuZGVyZWQgZW1wdHkuXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmlucHV0LXRleHQge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dCgpO1xuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5yZXF1aXJlZC1lbnRyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xuICAgIH1cblxuICAgIC5jaGVja2JveCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94KCk7XG5cbiAgICAgICAgJi5tYWdlLWVycm9yIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0LWVycm9yKCk7XG4gICAgICAgIH1cblxuICAgICAgICAmICsgLmxhYmVsIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWNoZWNrYm94LWxhYmVsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmFkaW8ge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1yYWRpbygpO1xuXG4gICAgICAgICYgKyAubGFiZWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtcmFkaW8tbGFiZWwoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY3VzdG9tZXItbmFtZS1wcmVmaXgge1xuICAgICAgICBzZWxlY3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmZpZWxkLWRvYiB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWRvYigpO1xuICAgIH1cblxuICAgICYuX2Vycm9yIHtcbiAgICAgICAgLmlucHV0LXRleHQsXG4gICAgICAgIC5jaGVja2JveCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmaWVsZC1pbnB1dC1lcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV2ZXJ0aW5nIHN0eWxlcyBmb3IgaW5wdXQgd2l0aCB0b29sdGlwLlxuICAgIC5jb250cm9sLl93aXRoLXRvb2x0aXAgaW5wdXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIH1cbiAgICAvLyBSZXZlcnRpbmcgaW5mbyB0b29sdGlwIHN0eWxlcyB0byBtYWtlIGl0IGFwcGVhciBhcyBub3RlIGJlbG93IHRoZSBpbnB1dC5cbiAgICAuZmllbGQtdG9vbHRpcCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG5cbiAgICAgICAgLmxhYmVsLFxuICAgICAgICAuZmllbGQtdG9vbHRpcC1hY3Rpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLW5vdGUoKTtcblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm5vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxufVxuXG4uZmllbGQ6bm90KC5jaG9pY2UpOm5vdCgubGltaXRlcik6bm90KC50ZXJtcyk6bm90KC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyKXtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgXG4gICAgLmxhYmVse1xuICAgICAgICAvL2N1c3RvbSBsYWJlbFxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLTEwcHg7XG4gICAgICAgIGxlZnQ6IDIwcHg7XG4gICAgICAgIHotaW5kZXg6IDM7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIC5maWVsZHNldCAuZnVsbG5hbWUgLmZpZWxkIC5sYWJlbHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8haW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5pbnB1dFtuYW1lPVwiZmFrdHVyYV9lbGVrdHJvbmljem5hXCJdK2xhYmVsIHtcbiAgICB0b3A6IDJweCFpbXBvcnRhbnQ7XG59XG4uZmllbGRbbmFtZT1cImFtYXN0eVBheW1lbnRBdHRyaWJ1dGVzLmZha3R1cmFfZWxla3Ryb25pY3puYVwiXT5sYWJlbHtcbiAgICB0b3A6IDJweCFpbXBvcnRhbnQ7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuLmN1c3RvbWVyLWFkZHJlc3MtZm9ybXtcbiAgICAuZmllbGQuc3RyZWV0e1xuICAgICAgICAubGFiZWx7XG4gICAgICAgICAgICB0b3A6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5maWVsZC50ZXJtc3tcbiAgICAubGFiZWx7XG4gICAgICAgIHRvcDogLTNweCFpbXBvcnRhbnQ7XG4gICAgICAgIGxlZnQ6IDI0cHghaW1wb3J0YW50O1xuICAgIH1cbn1cbi5jcy1kYXNoYm9hcmQgLmZpZWxke1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW0haW1wb3J0YW50O1xufVxuXG4uZmllbGRzZXQgLmZ1bGxuYW1lIC5maWVsZCAubGFiZWx7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgd2lkdGg6IGF1dG8haW1wb3J0YW50O1xufVxuXG4vLyBIYXMgdG8gYmUgc2NvcGVkIHRvIGRpdiwgb3RoZXJ3aXNlIGl0IGNvbGxpZGVzIHdpdGggaW5wdXQgY2xhc3MuXG5kaXYubWFnZS1lcnJvcjpub3QoLl9lZGl0aW5nKSxcbmRpdi5maWVsZC1lcnJvcjpub3QoLl9lZGl0aW5nKSB7XG4gICAgQGluY2x1ZGUgZmllbGQtZXJyb3IoKTtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cblxuXG4vLyBjdXN0b20gc3R5bGVcbi8vIC5maWVsZC5zdHJlZXQgLmZpZWxkIC5sYWJlbHtcbi8vICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4vLyAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbi8vICAgICBwYWRkaW5nLXRvcDogNnB4O1xuLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8gICAgIGhlaWdodDogYXV0bztcbi8vIH1cblxuIiwiLyoqXG4gKiBGb290ZXIgY29tcG9uZW50IGN1c3RvbWl6YXRpb24uXG4gKiBAc2VlIC9NYWdlbnRvX1RoZW1lL3RlbXBsYXRlcy9mb290ZXIvY29sdW1ucy5waHRtbCBmb3IgdGVtcGxhdGVzLlxuICovXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wc2V1ZG9pY29uL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRmb290ZXJfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJGZvb3Rlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kZm9vdGVyX2VkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLWVkZ2UtZ3V0dGVyOiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRmb290ZXJfc2VjdGlvbi12ZXJ0aWNhbC1vZmZzZXQ6IDJlbSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXNlcGFyYXRvci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfZ3JheSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLWhlYWRsaW5lLWxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtcGFkZGluZzogJGZvb3Rlcl9zZWN0aW9uLXZlcnRpY2FsLW9mZnNldCAkZm9vdGVyX3NlY3Rpb24tZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW4gIWRlZmF1bHQ7XG4kZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplOiAycmVtICFkZWZhdWx0O1xuJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZTogdHJ1ZSAhZGVmYXVsdDtcblxuJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZTogZmFsc2UgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28tZGlzcGxheTogYmxvY2sgIWRlZmF1bHQ7XG4kZm9vdGVyX2xvZ28td2lkdGg6IDEzLjVlbSAhZGVmYXVsdDtcbiRmb290ZXJfbG9nby1oZWlnaHQ6IDIuM2VtICFkZWZhdWx0O1xuXG4uI3skbnN9Zm9vdGVyIHtcbiAgICAkcm9vdDogJjtcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgYmFja2dyb3VuZDogJGZvb3Rlcl9iYWNrZ3JvdW5kO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMCAwIDJyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICBoMyB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgbWluLWhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwIHtcbiAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmc6IDAgJGZvb3Rlcl9lZGdlLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAvKmRpc3BsYXk6IGZsZXg7Ki9cbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiA0cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wcm9tbyB7XG4gICAgICAgICAgICBAaWYgJGZvb3Rlcl9wcm9tby1kaXNwbGF5LW9uLW1vYmlsZSA9PWZhbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGlua3Mge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkZm9vdGVyX3NlY3Rpb24tdmVydGljYWwtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiA1O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZXh0cmFzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAyNSU7XG4gICAgICAgICAgICAgICAgZmxleC1ncm93OiAyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2VjdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uZXdzbGV0dGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWdyb3c6IDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1zb2NpYWxzIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc3RvcmVzLXN3aXRjaGVyIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgLnBob25lIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNtYWxsIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWFpbCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tYWlsLWxvZ28uc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxOHB4O1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLS1jb2xsYXBzaWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDk2JTtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDhweCAzMHB4IDEwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyM3B4O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzg4ODtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgJl9fc2VjdGlvbi10aXRsZSxcbiAgICBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgQGlmICRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbCAhPSdub25lJyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1oZWFkbGluZS1sZXZlbCk7XG4gICAgICAgIH1cblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRmb290ZXJfc2VjdGlvbi10aXRsZS1jb2xvcjtcbiAgICAgICAgZm9udC1zaXplOiAkZm9vdGVyX3NlY3Rpb24tdGl0bGUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGZvb3Rlcl9zZWN0aW9uLXRpdGxlLXRyYW5zZm9ybTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uLS1jb2xsYXBzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICBAaWYgJGZvb3Rlcl9zZWN0aW9uLXBzZXVkb2ljb24taW5jbHVkZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uLS1zb2NpYWxzICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgZm9udC1zaXplOiAxLjJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zZWN0aW9uLS1jb2xsYXBzaWJsZSAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2hvcC1sb2dvIHtcbiAgICAgICAgZGlzcGxheTogJGZvb3Rlcl9sb2dvLWRpc3BsYXk7XG4gICAgICAgIHdpZHRoOiAkZm9vdGVyX2xvZ28td2lkdGg7XG4gICAgICAgIGhlaWdodDogJGZvb3Rlcl9sb2dvLWhlaWdodDtcbiAgICAgICAgbWluLXdpZHRoOiAkZm9vdGVyX2xvZ28td2lkdGg7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LWhlaWdodDogMTAwJTtcbiAgICB9XG59XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWZvb3RlciB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG5cbiAgICAmLS1mb290ZXItdXNwcyB7XG4gICAgICAgIC4jeyRuc31pbWFnZS10ZWFzZXJfX2NvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5jcy1mb290ZXJfX2NvbnRlbnQge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyB7XG4gICAgICAgIG1hcmdpbjogMnJlbSAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICAuY29weXJpZ2h0LFxuICAgICAgICAuYXV0aG9yIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfc2lsdmVyLWNoYWxpY2U7XG5cbiAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfc2lsdmVyLWNoYWxpY2UgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc29jaWFscyB7XG4gICAgICAgICAgICBwYWRkaW5nOiA4cHggMzBweDtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9zaWx2ZXItY2hhbGljZTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmluc3RhZ3JhbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzPi5jcy1mb290ZXJfX3NlY3Rpb24ge1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICB9XG5cbiAgICAvLyAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tbGlua3M+LmNzLWZvb3Rlcl9fc2VjdGlvbi5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIHtcbiAgICAvLyAgICAgLy8gbWF4LXdpZHRoOiAyMDBweDtcbiAgICAvLyB9XG59IiwiLyoqXG4gKiBGb290ZXIgY29tcG9uZW50IGN1c3RvbWl6YXRpb24uXG4gKiBAc2VlIC9NYWdlbnRvX1RoZW1lL3RlbXBsYXRlcy9mb290ZXIvY29sdW1ucy5waHRtbCBmb3IgdGVtcGxhdGVzLlxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1mb290ZXIge1xuICBmb250LXNpemU6IDFyZW07XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwIDAgMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgLmNzLWZvb3RlciBoMyB7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gICAgbWluLWhlaWdodDogNDBweDtcbiAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuY3MtZm9vdGVyIHAge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZm9udC1zaXplOiAxNnB4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXIgcCB7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgLmNzLWZvb3Rlcl9fY29udGVudCB7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgLypkaXNwbGF5OiBmbGV4OyovXG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgcGFkZGluZy10b3A6IDRyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAyLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19jb250ZW50IHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0ge1xuICAgICAgZmxleDogMTsgfSB9XG4gIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX2l0ZW0tLXByb21vIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9faXRlbS0tcHJvbW8ge1xuICAgICAgICBmbGV4LWJhc2lzOiBhdXRvO1xuICAgICAgICBmbGV4LWdyb3c6IDE7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDJyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgbWFyZ2luLXRvcDogMmVtO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIG1hcmdpbi10b3A6IDA7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzIHtcbiAgICAgIGZsZXgtYmFzaXM6IGF1dG87XG4gICAgICBmbGV4LWdyb3c6IDU7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX2l0ZW0tLWV4dHJhcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1iYXNpczogMTAwJTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWZvb3Rlcl9faXRlbS0tZXh0cmFzIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZmxleC1iYXNpczogMjUlO1xuICAgICAgZmxleC1ncm93OiAyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIHtcbiAgICAgIGZsZXg6IDE7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLW5ld3NsZXR0ZXIge1xuICAgICAgZmxleC1ncm93OiAyOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1zb2NpYWxzIHtcbiAgICAgIG1hcmdpbi10b3A6IDRyZW07IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLXN0b3Jlcy1zd2l0Y2hlciB7XG4gICAgICBtYXJnaW4tdG9wOiA0cmVtO1xuICAgICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gIC5jcy1mb290ZXJfX3NlY3Rpb24gLmNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgIC5jcy1mb290ZXJfX3NlY3Rpb24gLmNvbnRlbnQgLnBob25lIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5zbWFsbCB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5tYWlsIHtcbiAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uIC5jb250ZW50IC5tYWlsOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tYWlsLWxvZ28uc3ZnXCIpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICAgIGhlaWdodDogMThweDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSB7XG4gICAgICB3aWR0aDogOTYlO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgcGFkZGluZzogOHB4IDMwcHggMTBweDtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIzcHg7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4OyB9IH1cbiAgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSxcbiAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ10ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM4ODg7XG4gICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZTphZnRlciwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmJlZm9yZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGVcbiAgICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddOmFmdGVyIHtcbiAgICAgICAgICByaWdodDogMS41cmVtO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgIWltcG9ydGFudDsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlOmFmdGVyLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ106YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDkwZGVnKSAhaW1wb3J0YW50OyB9XG4gICAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLWNvbGxhcHNpYmxlIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGVbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ11bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgICAgICAgb3BhY2l0eTogMDsgfVxuICAgICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZSAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyLCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ11bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7IH1cbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tLXNvY2lhbHMgLmNzLWZvb3Rlcl9fc2VjdGlvbi10aXRsZSwgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tc29jaWFsc1xuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIC8qIDEgKi8gfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1mb290ZXJfX3NlY3Rpb24tdGl0bGUsXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J3RpdGxlJ10ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLXRpdGxlLFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSd0aXRsZSddIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7IH0gfVxuICAuY3MtZm9vdGVyX19zZWN0aW9uLWNvbnRlbnQsXG4gIC5jcy1mb290ZXIgW2RhdGEtcm9sZT0nY29udGVudCddIHtcbiAgICBwYWRkaW5nOiAxcmVtO1xuICAgIGZvbnQtc2l6ZTogMS4yZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi0tY29sbGFwc2libGUgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LCAuY3MtZm9vdGVyX19zZWN0aW9uLS1jb2xsYXBzaWJsZVxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSdjb250ZW50J10ge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fc2VjdGlvbi1jb250ZW50LFxuICAgICAgLmNzLWZvb3RlciBbZGF0YS1yb2xlPSdjb250ZW50J10ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZm9vdGVyX19zZWN0aW9uLWNvbnRlbnQsXG4gICAgICAuY3MtZm9vdGVyIFtkYXRhLXJvbGU9J2NvbnRlbnQnXSB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwOyB9IH1cbiAgLmNzLWZvb3Rlcl9fc2hvcC1sb2dvIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTMuNWVtO1xuICAgIGhlaWdodDogMi4zZW07XG4gICAgbWluLXdpZHRoOiAxMy41ZW07XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7IH1cblxuLmNzLWNvbnRhaW5lci0tZm9vdGVyIHtcbiAgbWF4LXdpZHRoOiBub25lOyB9XG5cbi5jcy1jb250YWluZXItLWZvb3Rlci11c3BzIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuXG4uY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyB7XG4gIG1hcmdpbjogMnJlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuY29weXJpZ2h0LFxuICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuYXV0aG9yIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgY29sb3I6ICNiMGIwYjA7IH1cbiAgICAuY3MtZm9vdGVyX19jb250ZW50IC5jcy1mb290ZXJfX2l0ZW0uY3MtZm9vdGVyX19pdGVtLS1jcmVkZW50aWFscyAuY29weXJpZ2h0IGEsXG4gICAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLmF1dGhvciBhIHtcbiAgICAgIGNvbG9yOiAjYjBiMGIwICFpbXBvcnRhbnQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLnNvY2lhbHMge1xuICAgIHBhZGRpbmc6IDhweCAzMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNiMGIwYjA7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWZvb3Rlcl9fY29udGVudCAuY3MtZm9vdGVyX19pdGVtLmNzLWZvb3Rlcl9faXRlbS0tY3JlZGVudGlhbHMgLnNvY2lhbHMge1xuICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgIGJvcmRlcjogdW5zZXQ7IH0gfVxuICAgIC5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWNyZWRlbnRpYWxzIC5zb2NpYWxzIC5pbnN0YWdyYW0ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5jcy1mb290ZXJfX2NvbnRlbnQgLmNzLWZvb3Rlcl9faXRlbS5jcy1mb290ZXJfX2l0ZW0tLWxpbmtzID4gLmNzLWZvb3Rlcl9fc2VjdGlvbiB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMS41cmVtOyB9XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtZm9vdGVyLWxpbmtzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1mb290ZXItbGlua3NfX2l0ZW0ge1xuICAgIG1hcmdpbjogMCAwIDAuM2VtOyB9XG4gIC5jcy1mb290ZXItbGlua3MgYSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtZm9vdGVyLWxpbmtzIGE6aG92ZXIsIC5jcy1mb290ZXItbGlua3MgYTpmb2N1cywgLmNzLWZvb3Rlci1saW5rcyBhOmFjdGl2ZSwgLmNzLWZvb3Rlci1saW5rcyBhOnZpc2l0ZWQ6aG92ZXIsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkOmZvY3VzIHtcbiAgICBjb2xvcjogIzRkMmM5MTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWZvb3Rlci1saW5rcyBhLCAuY3MtZm9vdGVyLWxpbmtzIGE6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMHB4O1xuICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZm9vdGVyLWxpbmtzIGEsIC5jcy1mb290ZXItbGlua3MgYTp2aXNpdGVkIHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG4kZm9vdGVyLWxpbmtzX2xpc3QtaXRlbS1tYXJnaW46IDAgMCAwLjNlbSAhZGVmYXVsdDtcblxuJGZvb3Rlci1saW5rc19saW5rLWZvbnQtc2l6ZTogMnJlbSAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1jb2xvcjogIzQ1NWE2NCAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcjogIzRkMmM5MSAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuJGZvb3Rlci1saW5rc19saW5rLWhvdmVyLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZm9vdGVyLWxpbmtzX2xpbmstcGFkZGluZy1tb2JpbGU6IDBweCAhZGVmYXVsdDtcbiRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLWRlc2t0b3A6IDBweCAhZGVmYXVsdDtcblxuLiN7JG5zfWZvb3Rlci1saW5rcyB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkZm9vdGVyLWxpbmtzX2xpc3QtaXRlbS1tYXJnaW47XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoJGNvbG9yOiAkZm9vdGVyLWxpbmtzX2xpbmstY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRmb290ZXItbGlua3NfbGluay1ob3Zlci1jb2xvcixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uOiAkZm9vdGVyLWxpbmtzX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOiAkZm9vdGVyLWxpbmtzX2xpbmstaG92ZXItZGVjb3JhdGlvbiApO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRmb290ZXItbGlua3NfbGluay1wYWRkaW5nLW1vYmlsZTtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvb3Rlci1saW5rc19saW5rLWZvbnQtc2l6ZTtcblxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJGZvb3Rlci1saW5rc19saW5rLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1nb29nbGUtcmVjYXB0Y2hhIHtcbiAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX2JhZGdlLS1pbnZpc2libGUgLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmZvY3VzLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmFjdGl2ZSwgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDA7IH1cbiAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmZvY3VzLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOmFjdGl2ZSwgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLW5ld3NsZXR0ZXIgLmNzLWdvb2dsZS1yZWNhcHRjaGFfX25vdGUgYTp2aXNpdGVkOmhvdmVyLCAuY3MtZ29vZ2xlLXJlY2FwdGNoYS0tbmV3c2xldHRlciAuY3MtZ29vZ2xlLXJlY2FwdGNoYV9fbm90ZSBhOnZpc2l0ZWQ6Zm9jdXMge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLWN1c3RvbWVyX2NyZWF0ZSB7XG4gICAgbWFyZ2luLXRvcDogLTJyZW07IH1cbiAgLmNzLWdvb2dsZS1yZWNhcHRjaGEtLWN1c3RvbWVyX2xvZ2luIC5nLXJlY2FwdGNoYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRnb29nbGUtcmVjYXB0Y2hhX21hcmdpbjogMXJlbSAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfdGV4dC1tYXJnaW46IDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3ItaG92ZXI6ICRsaW5rLWNvbG9yX2Jhc2UtaG92ZXIgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9saW5rLWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vIG5ld3NsZXR0ZXJcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbWFyZ2luOiAxcmVtIDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtbWFyZ2luOiAwICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci10ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC0yMDAgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3I6ICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstZGVjb3JhdGlvbi1ob3ZlcjogdW5kZXJsaW5lICFkZWZhdWx0O1xuXG4uI3skbnN9Z29vZ2xlLXJlY2FwdGNoYSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBtYXJnaW46ICRnb29nbGUtcmVjYXB0Y2hhX21hcmdpbjtcblxuICAgICZfX2JhZGdlIHtcbiAgICAgICAgJi0taW52aXNpYmxlIHtcbiAgICAgICAgICAgIC5ncmVjYXB0Y2hhLWJhZGdlIHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbm90ZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LW1hcmdpbjtcbiAgICAgICAgZm9udC1zaXplOiAkZ29vZ2xlLXJlY2FwdGNoYV90ZXh0LWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX3RleHQtY29sb3I7XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBsaW5rKFxuICAgICAgICAgICAgICAgICRjb2xvcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJGRlY29yYXRpb246ICRnb29nbGUtcmVjYXB0Y2hhX2xpbmstZGVjb3JhdGlvbixcbiAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbi1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbGluay1kZWNvcmF0aW9uLWhvdmVyXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbmV3c2xldHRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1tYXJnaW47XG5cbiAgICAgICAgI3skcm9vdH1fX25vdGUge1xuICAgICAgICAgICAgbWFyZ2luOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtbWFyZ2luO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLXRleHQtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRnb29nbGUtcmVjYXB0Y2hhX25ld3NsZXR0ZXItdGV4dC1jb2xvcjtcblxuICAgICAgICAgICAgYSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbGluayhcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkZ29vZ2xlLXJlY2FwdGNoYV9uZXdzbGV0dGVyLWxpbmstY29sb3IsXG4gICAgICAgICAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgICAgICAgICAkZGVjb3JhdGlvbjogJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICRkZWNvcmF0aW9uLWhvdmVyOlxuICAgICAgICAgICAgICAgICAgICAgICAgJGdvb2dsZS1yZWNhcHRjaGFfbmV3c2xldHRlci1saW5rLWRlY29yYXRpb24taG92ZXJcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY3VzdG9tZXJfY3JlYXRlIHtcbiAgICAgICAgbWFyZ2luLXRvcDogLTJyZW07XG4gICAgfVxuXG4gICAgJi0tY3VzdG9tZXJfbG9naW4ge1xuICAgICAgICAuZy1yZWNhcHRjaGEge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLypcbiogRmFpciB3YXJuaW5nOiBEb24ndCBtaXggdW5pdHMgd2hpbGUgdXNpbmcgJ3V0aWxzL3BvbHktZmx1aWQtc2l6aW5nJyBmZWF0dXJlLlxuKiBJZiB5b3UgdXNlIHJlbXMsIHN0aWNrIHRvIHJlbXMgZXZlcnl3aGVyZSBpbiB0aGUgYXJlYSBvZiB3aG9sZSBtYXAsIG9yIGVsc2UgdGhlIG1peGluIHdpbGwgdGhyb3cgYW4gZXJyb3JcbiovXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcG9seS1mbHVpZC1zaXppbmcnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLXNob3c6IGZhbHNlICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWhlaWdodDogMXB4ICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWNvbG9yOiAkY29sb3JfZ2FsbGVyeSAhZGVmYXVsdDtcblxuJGdyaWQtbGF5b3V0X2JyaWNrcy1nYXAtZGVza3RvcDogMTVweCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmlja3MtZ2FwLXRhYmxldDogMTBweCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmlja3MtZ2FwLW1vYmlsZTogMTBweCAhZGVmYXVsdDtcblxuJGdyaWQtbGF5b3V0X2JyaWNrcy1ndXR0ZXI6IDAgIWRlZmF1bHQ7XG4vLyBJZiAkZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3Itc2hvdyBpcyBzZXQgdG8gdHJ1ZSBicmljayBzaG91bGQgaGF2ZSBwYWRkaW5nIHdpdGggYXQgbGVhc3QgaGlnaHQgb2Ygc2VwYXJhdG9yXG4kZ3JpZC1sYXlvdXRfYnJpY2stcGFkZGluZzogMXB4ICFkZWZhdWx0O1xuXG4kZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCAhZGVmYXVsdDtcbiRncmlkLWxheW91dF9icmljay1yYXRpby1oZWlnaHQ6ICR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRncmlkLWxheW91dF90ZWFzZXItY29udGVudC1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWxpZ2h0LXNjaGVtZS1jb2xvcjogJHNjaGVtZS0tbGlnaHRfdGV4dHMtY29sb3IgIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWRhcmstc2NoZW1lLWNvbG9yOiAkc2NoZW1lLS1kYXJrX3RleHRzLWNvbG9yICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1jb250ZW50LWxpbmUtaGVpZ2h0OiAxLjE1ICFkZWZhdWx0O1xuXG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW46IDAuMmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXdlaWdodDogJHRleHRzLW9uLWltYWdlX2hlYWRsaW5lLWZvbnQtd2VpZ2h0ICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTogbm9uZSAhZGVmYXVsdDtcbiRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtZm9udC1zaXplLW1pbjogMS44cmVtICFkZWZhdWx0O1xuJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXNpemUtbWF4OiAyLjhyZW0gIWRlZmF1bHQ7XG4kZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtbWFwOiAoXG4gICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtc2l6ZS1taW4sXG4gICAgICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXNpemUtbWF4KSAhZGVmYXVsdDtcbiAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1oZWFkbGluZS1ib3R0b20tbWFyZ2luOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW4gIWRlZmF1bHQ7XG4gICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1zaXplLW1pbjogJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS1mb250LXNpemUtbWluICFkZWZhdWx0O1xuICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLWhlYWRsaW5lLWZvbnQtc2l6ZS1tYXg6IDRyZW0gIWRlZmF1bHQ7XG4gICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItaGVhZGxpbmUtZm9udC1tYXA6IChcbiAgICAgICAgICAgICRwYWdlX21pbi13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1oZWFkbGluZS1mb250LXNpemUtbWluLFxuICAgICAgICAgICAgICAgICRwYWdlX21heC13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1oZWFkbGluZS1mb250LXNpemUtbWF4LFxuICAgICAgICAgICAgICAgICAgICApICFkZWZhdWx0O1xuXG4gICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS1ib3R0b20tbWFyZ2luOiAwLjZlbSAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtd2VpZ2h0OiAkdGV4dHMtb24taW1hZ2Vfc3ViaGVhZGxpbmUtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS10ZXh0LXRyYW5zZm9ybTogJHRleHRzLW9uLWltYWdlX3N1YmhlYWRsaW5lLXRleHQtdHJhbnNmb3JtICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1pbjogMS42cmVtICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heDogMS44cmVtICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1tYXA6IChcbiAgICAgICAgICAgICAgICAgICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1taW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAkcGFnZV9tYXgtd2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1ib3R0b20tbWFyZ2luOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWJvdHRvbS1tYXJnaW4gIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXN1YmhlYWRsaW5lLWZvbnQtc2l6ZS1taW46ICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1pbiAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heDogMi41cmVtICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LW1hcDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYWdlX21pbi13aWR0aDogJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LXNpemUtbWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnZV9tYXgtd2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXIteDItc3ViaGVhZGxpbmUtZm9udC1zaXplLW1heCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgIWRlZmF1bHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtYm90dG9tLW1hcmdpbjogMWVtICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1mb250LXdlaWdodDogJHRleHRzLW9uLWltYWdlX3RleHQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLXRleHQtdHJhbnNmb3JtOiAkdGV4dHMtb24taW1hZ2VfdGV4dC10ZXh0LXRyYW5zZm9ybSAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbjogMS4zcmVtICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1mb250LXNpemUtbWF4OiAxLjRyZW0gIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtbWFwOiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFnZV9taW4td2lkdGg6ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtc2l6ZS1taW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2VfbWF4LXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1mb250LXNpemUtbWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWJvdHRvbS1tYXJnaW46ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWJvdHRvbS1tYXJnaW4gIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbjogJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtZm9udC1zaXplLW1pbiAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1mb250LXNpemUtbWF4OiAxLjZyZW0gIWRlZmF1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1tYXA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2VfbWluLXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1mb250LXNpemUtbWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhZ2VfbWF4LXdpZHRoOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXBhcmFncmFwaC1mb250LXNpemUtbWF4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgIWRlZmF1bHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvczogJGJ1dHRvbl9kZWZhdWx0LWljb24tcG9zICFkZWZhdWx0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB2YWx1ZXM6IGZhbHNlIC8gYnJlYWtwb2ludCBuYW1lIC0gdGhlIHNhbWUgYXMgZm9yIEBtZWRpYSBtaXhpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVzZSBmYWxzZSBpZiB5b3UgZG9uJ3Qgd2FudCB0byBoaWRlIGJ1dHRvbiBhdCBhbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF90ZWFzZXItYnV0dG9uLXZpc2libGUtZnJvbTogJz49dGFibGV0JztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93OiBkZWVwLWdldCgkdmlldy14bWwsIHZhcnMsIE1hZ2VTdWl0ZV9Db250ZW50Q29uc3RydWN0b3IsIGNvbHVtbnMsIG9uZS1jb2x1bW4pICFkZWZhdWx0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93LS13aXRoLXNpZGViYXI6IGRlZXAtZ2V0KCR2aWV3LXhtbCwgdmFycywgTWFnZVN1aXRlX0NvbnRlbnRDb25zdHJ1Y3RvciwgY29sdW1ucywgbXVsdGlwbGUtY29sdW1ucykgIWRlZmF1bHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFwcGx5IG5vcm1hbCBmbG93IGZvciB0ZWFzZXJzIG9uIHNtYWxsZXN0IG1vYmlsZSwgaW5zdGVhZCBvZiB0ZWFzZXJzIHdpdGggaGFyZGNvZGVkIDEwMCUgd2lkdGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRncmlkLWxheW91dF9zbWFsbC1tb2JpbGUtc3RhbmRhcmQtdGVhc2Vycy1mbG93OiBmYWxzZSAhZGVmYXVsdDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiN7JG5zfWdyaWQtbGF5b3V0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcm9vdDogJjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZfX2dyaWQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IG1pbm1heCgwLCAxZnJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLXJvd3M6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2FwOiAkZ3JpZC1sYXlvdXRfYnJpY2tzLWd1dHRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbXNQZXJSb3cgaW4gJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgjeyRpdGVtc1BlclJvd30sIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9LS13aXRoLXNpZGViYXIgJiB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpdGVtc1BlclJvdyBpbiAkZ3JpZC1sYXlvdXRfYnJpY2tzLXBlci1yb3ctLXdpdGgtc2lkZWJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgjeyRpdGVtc1BlclJvd30sIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJGdyaWQtbGF5b3V0X2JyaWNrcy1nYXAtZGVza3RvcDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICRncmlkLWxheW91dF9icmlja3MtZ2FwLXRhYmxldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJGdyaWQtbGF5b3V0X2JyaWNrcy1nYXAtbW9iaWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJl9fYnJpY2sge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRncmlkLWxheW91dF9icmljay1wYWRkaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi0teDIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3BlY3QtcmF0aW86ICN7JGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLXdpZHRoICogMn0vI3skZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8taGVpZ2h0fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLS15MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogI3skZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGh9LyN7JGdyaWQtbGF5b3V0X2JyaWNrLXJhdGlvLWhlaWdodCAqIDJ9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtLXgyI3skcm9vdH1fX2JyaWNrLS15MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogI3skZ3JpZC1sYXlvdXRfYnJpY2stcmF0aW8td2lkdGggKiAyfS8jeyRncmlkLWxheW91dF9icmljay1yYXRpby1oZWlnaHQgKiAyfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaXRlbXNQZXJSb3cgaW4gJGdyaWQtbGF5b3V0X2JyaWNrcy1wZXItcm93IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgJGl0ZW1zUGVyUm93ID4xIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLS14MiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtLXkyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi0taGlkZGVuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtLXRlYXNlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoJGdyaWQtbGF5b3V0X3NtYWxsLW1vYmlsZS1zdGFuZGFyZC10ZWFzZXJzLWZsb3cpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtLXgyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi0teTIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmX190ZWFzZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi1maWd1cmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi1pbWFnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWNvbnRlbnQtcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItY29udGVudC1saW5lLWhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLWNvbnRlbnQtaW5uZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi1oZWFkbGluZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRncmlkLWxheW91dF90ZWFzZXItZGFyay1zY2hlbWUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ3JpZC1sYXlvdXRfdGVhc2VyLWhlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGdyaWQtbGF5b3V0X3RlYXNlci1oZWFkbGluZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcG9seS1mbHVpZC1zaXppbmcoJ2ZvbnQtc2l6ZScsICRncmlkLWxheW91dF90ZWFzZXItaGVhZGxpbmUtZm9udC1tYXApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19icmljay0teDIgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLWhlYWRsaW5lLWJvdHRvbS1tYXJnaW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZygnZm9udC1zaXplJywgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1oZWFkbGluZS1mb250LW1hcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fdGVhc2VyLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1saWdodC1zY2hlbWUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLXN1YmhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtYm90dG9tLW1hcmdpbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRncmlkLWxheW91dF90ZWFzZXItZGFyay1zY2hlbWUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZ3JpZC1sYXlvdXRfdGVhc2VyLXN1YmhlYWRsaW5lLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGdyaWQtbGF5b3V0X3RlYXNlci1zdWJoZWFkbGluZS10ZXh0LXRyYW5zZm9ybTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcG9seS1mbHVpZC1zaXppbmcoJ2ZvbnQtc2l6ZScsICRncmlkLWxheW91dF90ZWFzZXItc3ViaGVhZGxpbmUtZm9udC1tYXApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN7JHJvb3R9X19icmljay0teDIgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAkZ3JpZC1sYXlvdXRfdGVhc2VyLXgyLXN1YmhlYWRsaW5lLWJvdHRvbS1tYXJnaW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZygnZm9udC1zaXplJywgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1zdWJoZWFkbGluZS1mb250LW1hcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fdGVhc2VyLS1zY2hlbWUtbGlnaHQgJiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1saWdodC1zY2hlbWUtY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1ib3R0b20tbWFyZ2luO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGdyaWQtbGF5b3V0X3RlYXNlci1kYXJrLXNjaGVtZS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRncmlkLWxheW91dF90ZWFzZXItcGFyYWdyYXBoLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJGdyaWQtbGF5b3V0X3RlYXNlci1wYXJhZ3JhcGgtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKCdmb250LXNpemUnLCAkZ3JpZC1sYXlvdXRfdGVhc2VyLXBhcmFncmFwaC1mb250LW1hcCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX2JyaWNrLS14MiAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRncmlkLWxheW91dF90ZWFzZXIteDItcGFyYWdyYXBoLWJvdHRvbS1tYXJnaW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBwb2x5LWZsdWlkLXNpemluZygnZm9udC1zaXplJywgJGdyaWQtbGF5b3V0X3RlYXNlci14Mi1wYXJhZ3JhcGgtZm9udC1tYXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skcm9vdH1fX3RlYXNlci0tc2NoZW1lLWxpZ2h0ICYge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRncmlkLWxheW91dF90ZWFzZXItbGlnaHQtc2NoZW1lLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJi1jdGEge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oJHR5cGU6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oJHR5cGU6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oJHR5cGU6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi10eXBlLCAkaWNvbl9wb3M6ICRncmlkLWxheW91dF90ZWFzZXItY3RhLWJ1dHRvbi1pY29uLXBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3Itc2hvdyB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZfX2JyaWNrIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3ItaGVpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JpZC1sYXlvdXRfcm93cy1zZXBhcmF0b3ItY29sb3I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLSN7JGdyaWQtbGF5b3V0X3Jvd3Mtc2VwYXJhdG9yLWhlaWdodH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnZV9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiN7JG5zfWNvbnRhaW5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmLS1ncmlkLXRlYXNlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0iLCIvKlxuKiBGYWlyIHdhcm5pbmc6IERvbid0IG1peCB1bml0cyB3aGlsZSB1c2luZyAndXRpbHMvcG9seS1mbHVpZC1zaXppbmcnIGZlYXR1cmUuXG4qIElmIHlvdSB1c2UgcmVtcywgc3RpY2sgdG8gcmVtcyBldmVyeXdoZXJlIGluIHRoZSBhcmVhIG9mIHdob2xlIG1hcCwgb3IgZWxzZSB0aGUgbWl4aW4gd2lsbCB0aHJvdyBhbiBlcnJvclxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGdyaWQ7XG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gIGdyaWQtdGVtcGxhdGUtcm93czogYXV0bztcbiAgZ2FwOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGdhcDogMTVweDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgLmNzLWdyaWQtbGF5b3V0X19ncmlkIHtcbiAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDQsIG1pbm1heCgwLCAxZnIpKTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dC0td2l0aC1zaWRlYmFyIC5jcy1ncmlkLWxheW91dF9fZ3JpZCB7XG4gICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCBtaW5tYXgoMCwgMWZyKSk7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXQtLXdpdGgtc2lkZWJhciAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgbWlubWF4KDAsIDFmcikpOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ2FwOiAxMHB4OyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2dyaWQge1xuICAgICAgZ2FwOiAxMHB4OyB9IH1cblxuLmNzLWdyaWQtbGF5b3V0X19icmljayB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAxcHg7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgYXNwZWN0LXJhdGlvOiA2MDAvMzUwOyB9XG4gIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICBhc3BlY3QtcmF0aW86IDMwMC83MDA7IH1cbiAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS15MiB7XG4gICAgYXNwZWN0LXJhdGlvOiA2MDAvNzAwOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIHtcbiAgICAgIGdyaWQtY29sdW1uLWVuZDogc3BhbiAyOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teTIge1xuICAgICAgZ3JpZC1yb3ctZW5kOiBzcGFuIDI7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiB7XG4gICAgICBncmlkLWNvbHVtbi1lbmQ6IHNwYW4gMjsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXkyIHtcbiAgICAgIGdyaWQtcm93LWVuZDogc3BhbiAyOyB9IH1cbiAgLmNzLWdyaWQtbGF5b3V0X19icmljay0taGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS10ZWFzZXI6YmVmb3JlIHtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cblxuLmNzLWdyaWQtbGF5b3V0X190ZWFzZXIge1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWNvbnRlbnQtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItZmlndXJlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWltYWdlIHtcbiAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7IH1cbiAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY29udGVudCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyB9XG4gIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWNvbnRlbnQtaW5uZXIge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgbWFyZ2luOiAwIDAgMC4yZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuOHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItaGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IGNhbGMoMS4wNDE2N3Z3ICsgMS40NjY2N3JlbSk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjhyZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjhyZW07IH0gfVxuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWhlYWRsaW5lIHtcbiAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgICAgICAgZm9udC1zaXplOiBjYWxjKDIuMjkxNjd2dyArIDEuMDY2NjdyZW0pOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjhyZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItaGVhZGxpbmUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsgfSB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItLXNjaGVtZS1saWdodCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1oZWFkbGluZSB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1zdWJoZWFkbGluZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIDAgMC42ZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItc3ViaGVhZGxpbmUge1xuICAgICAgICBmb250LXNpemU6IGNhbGMoMC4yMDgzM3Z3ICsgMS41MzMzM3JlbSk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjhyZW0pIHtcbiAgICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXN1YmhlYWRsaW5lIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07IH0gfVxuICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXN1YmhlYWRsaW5lIHtcbiAgICAgIG1hcmdpbjogMCAwIDAuNmVtO1xuICAgICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1zdWJoZWFkbGluZSB7XG4gICAgICAgICAgZm9udC1zaXplOiBjYWxjKDAuOTM3NXZ3ICsgMS4zcmVtKTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTI4cmVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXN1YmhlYWRsaW5lIHtcbiAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTsgfSB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItLXNjaGVtZS1saWdodCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1zdWJoZWFkbGluZSB7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICBtYXJnaW46IDAgMCAxZW07XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMnJlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogY2FsYygwLjEwNDE3dncgKyAxLjI2NjY3cmVtKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyOHJlbSkge1xuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX2JyaWNrLS14MiAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci10ZXh0IHtcbiAgICAgIG1hcmdpbjogMCAwIDFlbTtcbiAgICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzJyZW0pIHtcbiAgICAgICAgLmNzLWdyaWQtbGF5b3V0X19icmljay0teDIgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItdGV4dCB7XG4gICAgICAgICAgZm9udC1zaXplOiBjYWxjKDAuMzEyNXZ3ICsgMS4ycmVtKTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMTI4cmVtKSB7XG4gICAgICAgIC5jcy1ncmlkLWxheW91dF9fYnJpY2stLXgyIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXRleHQge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci0tc2NoZW1lLWxpZ2h0IC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLXRleHQge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmhvdmVyLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmZvY3VzLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmFjdGl2ZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmJlZm9yZSwgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogLTFweDtcbiAgICAgIGJvdHRvbTogLTFweDtcbiAgICAgIHJpZ2h0OiAtMXB4OyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDMuNGVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogMCAyMDBweCAyMDBweCAwO1xuICAgICAgei1pbmRleDogLTE7XG4gICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMGRlZywgdHJhbnNwYXJlbnQgMCUsIHRyYW5zcGFyZW50IDAlLCAjNGQyYzkxIDAlLCAjNGQyYzkxIDEwMCUpOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjphZnRlciB7XG4gICAgICB3aWR0aDogM2VtO1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbiwgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbiAqLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1ncmlkLWxheW91dF9fdGVhc2VyLWN0YS1idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuY3MtZ3JpZC1sYXlvdXRfX3RlYXNlci1jdGEtYnV0dG9uLXNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgcGFkZGluZy1yaWdodDogNGVtOyB9XG4gICAgLmNzLWdyaWQtbGF5b3V0X190ZWFzZXItY3RhLWJ1dHRvbi1pY29uIHtcbiAgICAgIG1heC13aWR0aDogMWVtO1xuICAgICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgICAgei1pbmRleDogMjtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgcmlnaHQ6IDFlbTsgfVxuXG4uY3MtY29udGFpbmVyLS1ncmlkLXRlYXNlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdG9wOiBhdXRvO1xuICBsZWZ0OiBhdXRvO1xuICByaWdodDogYXV0bztcbiAgYm90dG9tOiBhdXRvO1xuICBvdmVyZmxvdzogdmlzaWJsZTsgfVxuIiwiLy8vIHBvbHktZmx1aWQtc2l6aW5nXG4vLy8gR2VuZXJhdGUgbGluZWFyIGludGVycG9sYXRlZCBzaXplIHZhbHVlcyB0aHJvdWdoIG11bHRpcGxlIGJyZWFrIHBvaW50c1xuLy8vIEBwYXJhbSAkcHJvcGVydHkgLSBBIHN0cmluZyBDU1MgcHJvcGVydHkgbmFtZVxuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcCBvZiB2aWV3cG9ydCB1bml0IGFuZCBzaXplIHZhbHVlIHBhaXJzXG4vLy8gQHJlcXVpcmVzIGZ1bmN0aW9uIGxpbmVhci1pbnRlcnBvbGF0aW9uXG4vLy8gQHJlcXVpcmVzIGZ1bmN0aW9uIG1hcC1zb3J0XG4vLy8gQGV4YW1wbGVcbi8vLyAgIEBpbmNsdWRlIHBvbHktZmx1aWQtc2l6aW5nKCdmb250LXNpemUnLCAoNTc2cHg6IDIycHgsIDc2OHB4OiAyNHB4LCA5OTJweDogMzRweCkpO1xuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQG1peGluIHBvbHktZmx1aWQtc2l6aW5nKCRwcm9wZXJ0eSwgJG1hcCkge1xuICAgIC8vIEdldCB0aGUgbnVtYmVyIG9mIHByb3ZpZGVkIGJyZWFrcG9pbnRzXG4gICAgJGxlbmd0aDogbGVuZ3RoKG1hcC1rZXlzKCRtYXApKTtcblxuICAgIC8vIEVycm9yIGlmIHRoZSBudW1iZXIgb2YgYnJlYWtwb2ludHMgaXMgPCAyXG4gICAgQGlmICgkbGVuZ3RoIDwgMikge1xuICAgICAgICBAZXJyb3IgXCJwb2x5LWZsdWlkLXNpemluZygpICRtYXAgcmVxdWlyZXMgYXQgbGVhc3QgdmFsdWVzXCI7XG4gICAgfVxuXG4gICAgLy8gU29ydCB0aGUgbWFwIGJ5IHZpZXdwb3J0IHdpZHRoIChrZXkpXG4gICAgJG1hcDogbWFwLXNvcnQoJG1hcCk7XG4gICAgJGtleXM6IG1hcC1rZXlzKCRtYXApO1xuXG4gICAgLy8gTWluaW11bSBzaXplXG4gICAgI3skcHJvcGVydHl9OiBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpO1xuXG4gICAgLy8gSW50ZXJwb2xhdGVkIHNpemUgdGhyb3VnaCBicmVha3BvaW50c1xuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRsZW5ndGggLSAxKSB7XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiBudGgoJGtleXMsJGkpKSB7XG4gICAgICAgICAgICAjeyRwcm9wZXJ0eX06IGxpbmVhci1pbnRlcnBvbGF0aW9uKFxuICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgbnRoKCRrZXlzLCAkaSk6IG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAkaSkpLFxuICAgICAgICAgICAgICAgICAgICBudGgoJGtleXMsICgkaSArIDEpKTogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsICgkaSArIDEpKSksXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE1heG1pbXVtIHNpemVcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbnRoKCRrZXlzLCRsZW5ndGgpKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsICRsZW5ndGgpKTtcbiAgICB9XG59XG5cbi8vLyBsaW5lYXItaW50ZXJwb2xhdGlvblxuLy8vIENhbGN1bGF0ZSB0aGUgZGVmaW5pdGlvbiBvZiBhIGxpbmUgYmV0d2VlbiB0d28gcG9pbnRzXG4vLy8gQHBhcmFtICRtYXAgLSBBIFNBU1MgbWFwIG9mIHZpZXdwb3J0IHdpZHRocyBhbmQgc2l6ZSB2YWx1ZSBwYWlyc1xuLy8vIEByZXR1cm5zIEEgbGluZWFyIGVxdWF0aW9uIGFzIGEgY2FsYygpIGZ1bmN0aW9uXG4vLy8gQGV4YW1wbGVcbi8vLyAgIGZvbnQtc2l6ZTogbGluZWFyLWludGVycG9sYXRpb24oKDMyMHB4OiAxOHB4LCA3NjhweDogMjZweCkpO1xuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpbmVhci1pbnRlcnBvbGF0aW9uKCRtYXApIHtcbiAgICAka2V5czogbWFwLWtleXMoJG1hcCk7XG4gICAgQGlmIChsZW5ndGgoJGtleXMpICE9IDIpIHtcbiAgICAgICAgQGVycm9yIFwibGluZWFyLWludGVycG9sYXRpb24oKSAkbWFwIG11c3QgYmUgZXhhY3RseSAyIHZhbHVlc1wiO1xuICAgIH1cbiAgICAvLyBUaGUgc2xvcGVcbiAgICAkbTogKG1hcC1nZXQoJG1hcCwgbnRoKCRrZXlzLCAyKSkgLSBtYXAtZ2V0KCRtYXAsIG50aCgka2V5cywgMSkpKSAvXG4gICAgICAgIChudGgoJGtleXMsIDIpIC0gbnRoKCRrZXlzLCAxKSk7XG5cbiAgICAvLyBUaGUgeS1pbnRlcmNlcHRcbiAgICAkYjogbWFwLWdldCgkbWFwLCBudGgoJGtleXMsIDEpKSAtICRtICogbnRoKCRrZXlzLCAxKTtcblxuICAgIC8vIERldGVybWluZSBpZiB0aGUgc2lnbiBzaG91bGQgYmUgcG9zaXRpdmUgb3IgbmVnYXRpdmVcbiAgICAkc2lnbjogJysnO1xuICAgIEBpZiAoJGIgPCAwKSB7XG4gICAgICAgICRzaWduOiAnLSc7XG4gICAgICAgICRiOiBhYnMoJGIpO1xuICAgIH1cblxuICAgIEByZXR1cm4gY2FsYygjeyRtICogMTAwfXZ3ICN7JHNpZ259ICN7JGJ9KTtcbn1cblxuLy8vIGxpc3Qtc29ydFxuLy8vIFNvcnQgYSBTQVNTIGxpc3Rcbi8vLyBAcGFyYW0gJGxpc3QgLSBBIFNBU1MgbGlzdFxuLy8vIEByZXR1cm5zIEEgc29ydGVkIFNBU1MgbGlzdFxuLy8vIEByZXF1aXJlcyBmdW5jdGlvbiBsaXN0LXJlbW92ZVxuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpc3Qtc29ydCgkbGlzdCkge1xuICAgICRzb3J0ZWRsaXN0OiAoKTtcbiAgICBAd2hpbGUgbGVuZ3RoKCRsaXN0KSA+IDAge1xuICAgICAgICAkdmFsdWU6IG50aCgkbGlzdCwgMSk7XG4gICAgICAgIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICAgICAgICAgIEBpZiAkaXRlbSA8ICR2YWx1ZSB7XG4gICAgICAgICAgICAgICAgJHZhbHVlOiAkaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAkc29ydGVkbGlzdDogYXBwZW5kKCRzb3J0ZWRsaXN0LCAkdmFsdWUsICdzcGFjZScpO1xuICAgICAgICAkbGlzdDogbGlzdC1yZW1vdmUoJGxpc3QsIGluZGV4KCRsaXN0LCAkdmFsdWUpKTtcbiAgICB9XG4gICAgQHJldHVybiAkc29ydGVkbGlzdDtcbn1cblxuLy8vIG1hcC1zb3J0XG4vLy8gU29ydCBtYXAgYnkga2V5c1xuLy8vIEBwYXJhbSAkbWFwIC0gQSBTQVNTIG1hcFxuLy8vIEByZXR1cm5zIEEgU0FTUyBtYXAgc29ydGVkIGJ5IGtleXNcbi8vLyBAcmVxdWlyZXMgZnVuY3Rpb24gbGlzdC1zb3J0XG4vLy8gQGF1dGhvciBKYWtlIFdpbHNvbiA8amFrZS5lLndpbHNvbkBnbWFpbC5jb20+XG5AZnVuY3Rpb24gbWFwLXNvcnQoJG1hcCkge1xuICAgICRrZXlzOiBsaXN0LXNvcnQobWFwLWtleXMoJG1hcCkpO1xuICAgICRzb3J0ZWRNYXA6ICgpO1xuICAgIEBlYWNoICRrZXkgaW4gJGtleXMge1xuICAgICAgICAkc29ydGVkTWFwOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAkc29ydGVkTWFwLFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICRrZXk6IG1hcC1nZXQoJG1hcCwgJGtleSksXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuICAgIEByZXR1cm4gJHNvcnRlZE1hcDtcbn1cblxuLy8vIGxpc3QtcmVtb3ZlXG4vLy8gUmVtb3ZlIGFuIGl0ZW0gZnJvbSBhIGxpc3Rcbi8vLyBAcGFyYW0gJGxpc3QgLSBBIFNBU1MgbGlzdFxuLy8vIEBwYXJhbSAkaW5kZXggLSBUaGUgbGlzdCBpbmRleCB0byByZW1vdmVcbi8vLyBAcmV0dXJucyBBIFNBU1MgbGlzdFxuLy8vIEBhdXRob3IgSmFrZSBXaWxzb24gPGpha2UuZS53aWxzb25AZ21haWwuY29tPlxuQGZ1bmN0aW9uIGxpc3QtcmVtb3ZlKCRsaXN0LCAkaW5kZXgpIHtcbiAgICAkbmV3TGlzdDogKCk7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBsZW5ndGgoJGxpc3QpIHtcbiAgICAgICAgQGlmICRpICE9ICRpbmRleCB7XG4gICAgICAgICAgICAkbmV3TGlzdDogYXBwZW5kKCRuZXdMaXN0LCBudGgoJGxpc3QsICRpKSwgJ3NwYWNlJyk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQHJldHVybiAkbmV3TGlzdDtcbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogTWl4aW5zIGZvciBmbGV4aWJsZSBjb250YWluZXJzIGRlY2xhcmF0aW9uLlxuICovXG4vKipcbiAqIERlZmluZXMgcGFnZSBjb250YWluZXIuIFRoaXMgbWl4aW4gbWFrZXMgc3VyZSB0aGF0IHRoZSBjb250ZW50IGhhcyBhbHdheXMgZXF1YWwgcGFkZGluZ1xuICogZm9yIG1vYmlsZSBzY3JlZW5zIG9uIGJvdGggc2l6ZSBvZiB0aGUgZGV2aWNlLlxuICovXG4vKipcbiAqIE5lZ2F0ZXMgcGFyZW50IGNvbnRhaW5lcidzIHBhZGRpbmcgYW5kIHNldHMgaXQgb3duLlxuICogU29tZXRoaW1lcyB0aGlzIGhhcyB0byBiZSBkb25lIHRvIG1ha2UgYmFja2dyb3VuZCBldmVuIHRvIG90aGVyIGNvbnRhaW5lcnMnIGNvbnRlbnQuXG4gKi9cbi8qKlxuICogRGVmaW5lcyBjb250YWluZXIgd3JhcHBlciB0aGF0IG1ha2VzIHN1cmUgY29udG5ldCBkb2Vzbid0IGV4dGVuZCBhYm92ZSBjZXJ0YWluIHdpZHRoIGFuZCBpcyBhbHdheXMgY2VudGVyZWQuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogVmFyaWFibGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICogSWYgeW91IGhhdmUgbW9yZSBlbGVtZW50cyBvbiB0b3AsIHlvdSBoYXZlIHRvIGluY2x1ZGUgdGhlaXIgaGVpZ2h0LlxuICovXG5AbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLyoqXG4gICAgICogU3R5bGVzIHJlbGF0ZWQgdG8gc3RpY2t5IGhlYWRlciBhbmQgdG9wYmFyIG9uIG1vYmlsZSBkZXZpY2VzLlxuICAgICAqIHRvIHByZXZlbnQgcGFnZSBqdW1waW5nIHdoZW4gb2ZmYWNudmFzIChmaXhlZCBwb3NpdGlvbmVkKSBpcyBvcGVuZWRcbiAgICAgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICBwYWRkaW5nLXRvcDogOC4zcmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLm5hdmlnYXRpb24tb2ZmY2FudmFzLW9wZW4gLnBhZ2Utd3JhcHBlci5uby1zY3JvbGwtY2hpbGQge1xuICAgIHBhZGRpbmctdG9wOiA1cmVtOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICBwb3NpdGlvbjogc3RpY2t5O1xuICAgIHotaW5kZXg6IDgwMDtcbiAgICB0b3A6IDA7XG4gICAgLyoqXG4gICAgICAgICAgICAgICAgICogRml4ZWQgcG9zaXRpb25pbmcgcmVxdWlyZWQgdG8gd29yayB3aXRoIG9mZmNhbnZhcyBlbGVtZW50cy5cbiAgICAgICAgICAgICAgICAgKi8gfVxuICAgIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuLm5vLXNjcm9sbCAuY3MtY29udGFpbmVyLS1oZWFkZXIge1xuICAgICAgcG9zaXRpb246IGZpeGVkOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLmNzLWNvbnRhaW5lci0taGVhZGVyIHtcbiAgICB0b3A6IDA7IH0gfVxuXG4uY3MtaGVhZGVyIHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBoZWlnaHQ6IDVyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogOC4zcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAuY3MtaGVhZGVyIHtcbiAgICAgIGhlaWdodDogMTByZW07IH0gfVxuICAuY3MtaGVhZGVyX19jb250ZW50IHtcbiAgICBoZWlnaHQ6IDVyZW07XG4gICAgei1pbmRleDogMzAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1heC13aWR0aDogMTAwdnc7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGhlaWdodDogOC4zcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fY29udGVudCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0O1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDgwZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IDEwcmVtOyB9IH1cbiAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGZsZXg6IDAgMSA0cmVtOyB9XG4gICAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSBwYXRoLnN0MCB7XG4gICAgICBmaWxsOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMTtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMHJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fbG9nbyB7XG4gICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAucGFnZS1wcmludCAuY3MtaGVhZGVyX19sb2dvIHtcbiAgICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDsgfVxuICAgICAgLnBhZ2UtcHJpbnQgLmNzLWhlYWRlcl9fbG9nbzphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMXJlbTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICByaWdodDogMDtcbiAgICB6LWluZGV4OiAzMDA7XG4gICAgdG9wOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX3NlYXJjaCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICBtYXJnaW4tbGVmdDogMnJlbSAhaW1wb3J0YW50O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gICAgLmNzLWhlYWRlcl9fc2VhcmNoLS1hY3RpdmUge1xuICAgICAgZGlzcGxheTogZmxleDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19zZWFyY2gge1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlcl9fc2VhcmNoIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0b3A6IGluaXRpYWw7IH0gfVxuICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZmxleDogMCAxIDMwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX191c2VyLW5hdiB7XG4gICAgICAgIGZsZXg6IDAgMSAyNSU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBwYWRkaW5nOiAwIDFyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDRyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXJfX2JhY2stYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICBmaWxsOiAjODg4O1xuICAgIGhlaWdodDogMi41cmVtOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgICAuY3MtaGVhZGVyX19iYWNrLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgaGVpZ2h0OiAycmVtOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvY29udGFpbmVyL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2RlZXAtZ2V0L2RlZXAtZ2V0LnNjc3MnO1xuXG4kaGVhZGVyX2ZvbnQtc2l6ZTogMXJlbSAhZGVmYXVsdDtcbi8vICRoZWFkZXJfYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuJGhlYWRlcl9ib3JkZXItYm90dG9tOiB1bnNldCAhZGVmYXVsdDtcblxuJGhlYWRlcl9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi8vIEhvcml6b250YWwgYWxpZ24gb2YgdGhlIHNlYXJjaGJveCBpZiBpdCdzIGRpc3BsYXllZCBhcyBhIGxheWVyIC0gYCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50YFxuJGhlYWRlcl9zZWFyY2hib3gtanVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG5cbi8vIElmIHlvdSB3YW50IHRvIGNvdmVyICdzZWFyY2gnIGl0ZW0gaW4gaGVhZGVyIGJ5IHNlYXJjaGJveCwgcHJvdmlkZSBwcm9wZXIgbmVnYXRpdmUgbWFyZ2luIGJhc2VkIG9uIHlvdXIgZGVzaWduXG4vLyBJdCB3b3JrcyBvbmx5IGlmICckZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCcgaGFzIHZhbGlkIGJyZWFrcG9pbnQgYW5kIGAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnRgID0gZmxleC1lbmRcbiRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTogLTYuOHJlbSAhZGVmYXVsdDtcblxuLy8gQ2hhbmdlIGluIGV0Yy92aWV3LnhtbCBpZiBuZWNlc3NhcnlcbiRoZWFkZXJfaXMtc3RpY2t5LW9uLW1vYmlsZTogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICB2YXJzLFxuICAgICAgICBNYWdlbnRvX1RoZW1lLFxuICAgICAgICBoZWFkZXIsXG4gICAgICAgIG1vYmlsZV9pc19zdGlja3kpICFkZWZhdWx0O1xuXG4kaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tbW9iaWxlOiAwICFkZWZhdWx0O1xuJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLXRhYmxldDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZSAhZGVmYXVsdDtcblxuLyoqXG4gKiBWYXJpYWJsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gKiB0byBwcmV2ZW50IHBhZ2UganVtcGluZyB3aGVuIG9mZmFjbnZhcyAoZml4ZWQgcG9zaXRpb25lZCkgaXMgb3BlbmVkXG4gKiBJZiB5b3UgaGF2ZSBtb3JlIGVsZW1lbnRzIG9uIHRvcCwgeW91IGhhdmUgdG8gaW5jbHVkZSB0aGVpciBoZWlnaHQuXG4gKi9cbiRzdGlja3ktaGVhZGVyLXBhZ2Utd3JhcHBlci1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0O1xuJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7XG5cbi4jeyRuc31jb250YWluZXIge1xuICAgICYtLWhlYWRlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQGlmICgkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUgYW5kICRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUgIT10cnVlKSB7XG5cbiAgICAvKipcbiAgICAgKiBTdHlsZXMgcmVsYXRlZCB0byBzdGlja3kgaGVhZGVyIGFuZCB0b3BiYXIgb24gbW9iaWxlIGRldmljZXMuXG4gICAgICogdG8gcHJldmVudCBwYWdlIGp1bXBpbmcgd2hlbiBvZmZhY252YXMgKGZpeGVkIHBvc2l0aW9uZWQpIGlzIG9wZW5lZFxuICAgICAqL1xuICAgIC5uYXZpZ2F0aW9uLW9mZmNhbnZhcy1vcGVuIC5wYWdlLXdyYXBwZXIubm8tc2Nyb2xsLWNoaWxkIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJHN0aWNreS1oZWFkZXItcGFnZS13cmFwcGVyLW9mZnNldC10YWJsZXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAkc3RpY2t5LWhlYWRlci1wYWdlLXdyYXBwZXItb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc31jb250YWluZXIge1xuICAgICAgICAmLS1oZWFkZXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiA4MDA7XG4gICAgICAgICAgICAgICAgdG9wOiAkaGVhZGVyX3N0aWNreS10b3AtcG9zaXRpb24tdGFibGV0O1xuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogRml4ZWQgcG9zaXRpb25pbmcgcmVxdWlyZWQgdG8gd29yayB3aXRoIG9mZmNhbnZhcyBlbGVtZW50cy5cbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAubmF2aWdhdGlvbi1vZmZjYW52YXMtb3Blbi5uby1zY3JvbGwgJiB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHRvcDogJGhlYWRlcl9zdGlja3ktdG9wLXBvc2l0aW9uLW1vYmlsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLiN7JG5zfWhlYWRlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBmb250LXNpemU6ICRoZWFkZXJfZm9udC1zaXplO1xuXG4gICAgQGlmICgkaGVhZGVyX2lzLXN0aWNreS1vbi1tb2JpbGUpIHtcbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGU7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtZGVza3RvcDtcbiAgICB9XG5cbiAgICAmX19jb250ZW50IHtcbiAgICAgICAgaGVpZ2h0OiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlO1xuICAgICAgICB6LWluZGV4OiAzMDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDB2dztcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRoZWFkZXJfYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb2ZmY2FudmFzLXRvZ2dsZSB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZmxleDogMCAxIDRyZW07XG4gICAgICAgIFxuICAgICAgICBwYXRoLnN0MCB7XG4gICAgICAgICAgICBmaWxsOiAkY29sb3JfcHJpbWFyeS01MDAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtbWVudS1pcy1yaWdodCkge1xuICAgICAgICAgICAgb3JkZXI6IDQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbG9nbyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDEgMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAwLjdyZW0gMCAwLjdyZW0gMHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuN3JlbSAwIDAuN3JlbSAwcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnBhZ2UtcHJpbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBjb250YWluZXItd3JhcHBlcigpO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaGVhZGVyX2JhY2tncm91bmQ7XG4gICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHotaW5kZXg6IDMwMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWlzLWJvdHRvbS1vbi1tb2JpbGUpIHtcbiAgICAgICAgICAgIGJvdHRvbTogJGdsb2JhbF9oZWFkZXItaGVpZ2h0LW1vYmlsZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogYXV0bztcbiAgICAgICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICB0b3A6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAycmVtICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFjdGl2ZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGluaXRpYWw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50IGFuZCAkaGVhZGVyX3NlYXJjaGJveC1qdXN0aWZ5LWNvbnRlbnQgPT0nZmxleC1lbmQnXG5cbiAgICAgICAgKSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJGhlYWRlcl9zZWFyY2hib3gtbWFyZ2luLXRvLWNvdmVyLXNlYXJjaC1pdGVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBAaWYgKCRoZWFkZXJfc2VhcmNoYm94LWp1c3RpZnktY29udGVudCA9PSdmbGV4LWVuZCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6ICRoZWFkZXJfc2VhcmNoYm94LW1hcmdpbi10by1jb3Zlci1zZWFyY2gtaXRlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3VzZXItbmF2IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgLy8ganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgZmxleDogMCAxIDMwJTtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMSAyNSU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCApIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleDogMCAxIDI1JTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYWNrLWJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1pbi13aWR0aDogNHJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMS41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhY2stYnV0dG9uLWljb24ge1xuICAgICAgICBmaWxsOiAkY29sb3JfYm9yZGVyLTcwMDtcbiAgICAgICAgaGVpZ2h0OiAyLjVyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItc2VhcmNoIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXNlYXJjaCB7XG4gICAgICB3aWR0aDogNjAlOyB9IH1cbiAgLmNzLWhlYWRlci1zZWFyY2gtLWluLW9mZmNhbnZhcyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDpiZWZvcmUsIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgICBsZWZ0OiAtMC41cmVtO1xuICAgICAgcmlnaHQ6IC0wLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2ZpZWxkOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgYm90dG9tOiAtMC41cmVtO1xuICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBib3R0b206IC0xcmVtO1xuICAgICAgdG9wOiAxMDAlO1xuICAgICAgei1pbmRleDogMjA5OyB9XG4gICAgLmFjdGl2ZS1wb3B1cCAuY3MtaGVhZGVyLXNlYXJjaF9fZmllbGQ6YmVmb3JlLCAuYWN0aXZlLXBvcHVwIC5jcy1oZWFkZXItc2VhcmNoX19maWVsZDphZnRlciB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGJvcmRlci1jb2xvcjogIzdlNTdjMjtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMjEwO1xuICAgIG1hcmdpbjogMDtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9faW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07IH0gfVxuICAgIC5hamF4LWxvYWRpbmcgLmNzLWhlYWRlci1zZWFyY2hfX2lucHV0OmZvY3VzICsgLmNzLWhlYWRlci1zZWFyY2hfX2FjdGlvbiAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgIG9wYWNpdHk6IDA7IH1cbiAgICAuYWpheC1sb2FkaW5nIC5jcy1oZWFkZXItc2VhcmNoX19pbnB1dDpmb2N1cyArIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24gLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19hY3Rpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIHotaW5kZXg6IDIyMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbiB7XG4gICAgd2lkdGg6IDEuNXJlbTtcbiAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBsaW5lYXI7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fY2xvc2UtaWNvbjpob3ZlciB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2Nsb3NlLWljb24gcGF0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19jbG9zZS1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWNvbnRhaW5lciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNXMgY3ViaWMtYmV6aWVyKDAsIDAuNjYsIDAuMzIsIDAuOTkpLCBvcGFjaXR5IDAuMTVzIGxpbmVhcjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24tY29udGFpbmVyLS1zZWFyY2gge1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1jb250YWluZXItLWxvYWRlciB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgd2lkdGg6IDVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMC43cmVtKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbiAqLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbiB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjNyZW0pOyB9XG4gICAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1pY29uLS1zZWFyY2gge1xuICAgICAgd2lkdGg6IDJyZW07XG4gICAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICAgIC5jcy1oZWFkZXItc2VhcmNoX19idXR0b24taWNvbi0tc2VhcmNoIHBhdGgge1xuICAgICAgICBmaWxsOiAjN2U1N2MyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtaGVhZGVyLXNlYXJjaF9fYnV0dG9uLWljb24tLWxvYWRlciB7XG4gICAgICBzdHJva2U6ICM3ZTU3YzI7XG4gICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgaGVpZ2h0OiAzLjJyZW07IH1cbiAgLmNzLWhlYWRlci1zZWFyY2hfX2J1dHRvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtaGVhZGVyLXNlYXJjaF9fYXV0b2NvbXBsZXRlIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgbGVmdDogMC41cmVtO1xuICAgIHJpZ2h0OiAwLjVyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSA1cmVtIC0gMS4yNzVlbSAtIDdyZW0pO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci1zZWFyY2hfX2F1dG9jb21wbGV0ZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIDAuMTcpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHdpZHRoOiA2MCU7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuLy8gT24gaU9TIHRoZSBzZWFyY2ggaW5wdXQgaGFzIHRvIGJlIGF0IGxlYXN0IDE2cHggbGFyZ2UsXG4vLyBvdGhlcndpc2UgaXQgd2lsbCBuZWVkbGVzc2x5IHRyaWdnZXIgcGFnZSB6b29tIG9uY2UgdGhlIGlucHV0IGlzIGZvY3VzZWQuXG4vLyAtIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI5ODkyNjMvZGlzYWJsZS1hdXRvLXpvb20taW4taW5wdXQtdGV4dC10YWctc2FmYXJpLW9uLWlwaG9uZVxuLy8gLSBodHRwczovL3d3dy53YXJyZW5jaGFuZGxlci5jb20vMjAxOS8wNC8wMi9zdG9wLWlwaG9uZXMtZnJvbS16b29taW5nLWluLW9uLWZvcm0tZmllbGRzL1xuJGhlYWRlci1zZWFyY2hfZm9udC1zaXplLW1vYmlsZTogMS42cmVtICFkZWZhdWx0O1xuXG4vLyBXaWR0aCBvZiB0aGUgc2VhcmNoIGZpZWxkLiBXb3JrcyBvbmx5IGZvciBgJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnRgIGJyZWFrcG9pbnQsIGluIG90aGVyIGNhc2UgaXQncyBhbHdheXMgMTAwJVxuJGhlYWRlci1zZWFyY2gtd2lkdGgtYXMtbGF5ZXI6IDYwJSAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcblxuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXdpZHRoOiA1cmVtICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLWJvcmRlci1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgwLjdyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tc2VhcmNoLWNvbG9yLWhvdmVyOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlLWRhcmsgIWRlZmF1bHQ7XG4kaGVhZGVyLXNlYXJjaF9pY29uLWxvYWRlci1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0wLjNyZW0pICFkZWZhdWx0O1xuXG4kaGVhZGVyLXNlYXJjaF9idXR0b24tY29udGFpbmVyLXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzICR0cmFuc2l0aW9uLWVhc2luZ19zbG93ZG93bi05MDAsXG4gICAgb3BhY2l0eSAwLjE1cyBsaW5lYXIgIWRlZmF1bHQ7XG5cbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1ib3gtc2hhZG93OiAwIDRweCAxMHB4IDAgcmdiYSgwLCAwLCAwLCAwLjE3KSAhZGVmYXVsdDtcbiRoZWFkZXItc2VhcmNoX2F1dG9jb21wbGV0ZS1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItc2VhcmNoIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkZ2xvYmFsX2hlYWRlci1zZWFyY2hib3gtYXMtbGF5ZXItYnJlYWtwb2ludCkge1xuICAgICAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoLXdpZHRoLWFzLWxheWVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0taW4tb2ZmY2FudmFzIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgICAgICAgICAgbGVmdDogLTAuNXJlbTtcbiAgICAgICAgICAgIHJpZ2h0OiAtMC41cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgdG9wOiAtMC41cmVtO1xuICAgICAgICAgICAgYm90dG9tOiAtMC41cmVtO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgYm90dG9tOiAtMXJlbTtcbiAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgIHotaW5kZXg6IDIwOTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIC5hY3RpdmUtcG9wdXAgJiB7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pbnB1dCB7XG4gICAgICAgIEBpbmNsdWRlIGZpZWxkLWlucHV0KCk7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcblxuICAgICAgICBmb250LXNpemU6ICRoZWFkZXItc2VhcmNoX2ZvbnQtc2l6ZS1tb2JpbGU7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMjEwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkaGVhZGVyLXNlYXJjaF9mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICsjeyRyb290fV9fYWN0aW9uIHtcbiAgICAgICAgICAgICAgICAuYWpheC1sb2FkaW5nICYge1xuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWNvbnRhaW5lci0tc2VhcmNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uLWNvbnRhaW5lci0tbG9hZGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgei1pbmRleDogMjIwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkaGVhZGVyLXNlYXJjaF9idXR0b24tYm9yZGVyLXJhZGl1cztcbiAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLWljb24ge1xuICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNXJlbTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3MgbGluZWFyO1xuXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT10cnVlKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGhlYWRlci1zZWFyY2hfY2xvc2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jbG9zZS1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1jb250YWluZXIge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRyYW5zaXRpb246ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1jb250YWluZXItdHJhbnNpdGlvbjtcblxuICAgICAgICAmLS1zZWFyY2gge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbigkdHlwZTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICdvbmx5LWljb24nXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRoZWFkZXItc2VhcmNoX2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfYnV0dG9uLXRyYW5zZm9ybTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcblxuICAgICAgICAmW2Rpc2FibGVkXSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIHRyYW5zZm9ybTogJGhlYWRlci1zZWFyY2hfaWNvbi10cmFuc2Zvcm07XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXNlYXJjaF9pY29uLXNlYXJjaC1jb2xvciAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbG9hZGVyIHtcbiAgICAgICAgICAgIHN0cm9rZTogJGhlYWRlci1zZWFyY2hfaWNvbi1sb2FkZXItY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMy4ycmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAzLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hdXRvY29tcGxldGUge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gMXJlbSk7XG4gICAgICAgIGxlZnQ6IDAuNXJlbTtcbiAgICAgICAgcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC1tb2JpbGV9IC0gI3skZmllbGRfc2VsZWN0LWxpbmUtaGVpZ2h0fSAtIDdyZW0pO1xuICAgICAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItc2VhcmNoYm94LWFzLWxheWVyLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLXNlYXJjaGJveC1hcy1sYXllci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMC41cmVtO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgYm94LXNoYWRvdzogJGhlYWRlci1zZWFyY2hfYXV0b2NvbXBsZXRlLWJveC1zaGFkb3c7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgIHdpZHRoOiA2MCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59IiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkZXItdXNlci1uYXYge1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMS41cmVtO1xuICBoZWlnaHQ6IDEwMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwIDAuN3JlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZmxleDogMSAxIDI1JTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLXNlYXJjaCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQgYSB7XG4gICAgICBtYXgtd2lkdGg6IDE2MHB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50IGEge1xuICAgICAgICAgIG1pbi13aWR0aDogMTQ1cHg7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC13cmFwcGVyID4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1ldmVubHk7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMHJlbTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rOmhvdmVyIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24gcGF0aCB7XG4gICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogIzRkMmM5MTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoOmhvdmVyIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIG1hcmdpbi1yaWdodDogMTBweDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGFiZWwge1xuICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcbiAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi10b3A6IDAuM3JlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNsaXA6IGF1dG87XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgICAgIG1hcmdpbi10b3A6IDAuM3JlbTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICAgIHBhZGRpbmc6IDAgMC45cmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zczsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTFhMDk5O1xuICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMC45cyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tbWluaWNhcnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZjYjczOTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWhhdmUtaXRlbXMge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1lbXB0eTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcwJztcbiAgICAgIHdpZHRoOiAwOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWNsb25lZCB7XG4gICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICB6LWluZGV4OiAxMjAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgdHJhbnNpdGlvbjogdG9wIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLCBsZWZ0IDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICBhbmltYXRpb246IG1vdmUtcXR5LWJhZGdlIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgdG9wOiAwLjVyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMS4zcmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgIHRvcDogMy41cmVtOyB9IH1cblxuQGtleWZyYW1lcyBtb3ZlLXF0eS1iYWRnZSB7XG4gIDAlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDE1JSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfVxuICA4NSUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpOyB9XG4gIDk1JSB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAxMDAlIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFuIHtcbiAgICBtaW4td2lkdGg6IDFjaDsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC1hbW91bnQtd3JhcHBlciA+IC5taW5pY2FydC1hbW91bnQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdiAubWluaWNhcnQtYW1vdW50LXdyYXBwZXIgPiAubWluaWNhcnQtYW1vdW50LXRleHQgLm1pbmljYXJ0LWFtb3VudC10ZXh0LS1lbXB0eTo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcwLDAwIHrFgic7IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gcXR5LWNvdW50ZXJfaG9vaygkdHlwZSkge1xufVxuXG5AbWl4aW4gcXR5LWNvdW50ZXJfdHlwZS1ob29rKCR0eXBlKSB7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl9zcGFuLWhvb2soJHR5cGUpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbkBpbXBvcnQgJ2NvbXBvbmVudHMvcXR5LWNvdW50ZXIvbWl4aW4nO1xuXG4kaGVhZGVyLXVzZXItbmF2X2l0ZW1zOiAzICFkZWZhdWx0OyAvLyBudW1iZXIgb2YgaXRlbXMgaW4gaGVhZGVyIHVzZXIgbmF2ICh3aXRob3V0IHNlYXJjaCBpdGVtKVxuXG4kaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfaWNvbi1jb2xvci1ob3ZlcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9pY29uLXdpZHRoOiAyLjZyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2ljb24taGVpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2ljb24td2lkdGggIWRlZmF1bHQ7XG5cbi8vIFNldCB1cCB3aGVuIGxhYmVsIGluIGhlYWRlciB1c2VyIG5hdiBzaG91bGQgYmUgdmlzaWJsZVxuLy8gU3VwcG9ydGVkIHZhbHVlczogdHJ1ZSAoYWx3YXlzKSB8IGZhbHNlIChuZXZlcikgfCBicmVha3BvaW50XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLXZpc2libGU6ICc+PXRhYmxldCcgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9sYWJlbC10ZXh0LXRyYW5zZm9ybTogdW5zZXQgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A6IDAuM3JlbSAhZGVmYXVsdDtcblxuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHk6IGZhbHNlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5OiBmYWxzZSAhZGVmYXVsdDtcbiRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItbWluaWNhcnQtc2hvdy1lbXB0eTogZmFsc2UgIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLWFuaW1hdGlvbi1zaG93OiB0cnVlICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTogJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lICFkZWZhdWx0O1xuXG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXRvcC1vZmZzZXQ6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC1tb2JpbGU6IC0wLjVyZW0gIWRlZmF1bHQ7XG4kaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLXJpZ2h0LW9mZnNldC10YWJsZXQ6IC0xcmVtICFkZWZhdWx0O1xuJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1yaWdodC1vZmZzZXQtZGVza3RvcDogLTFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31oZWFkZXItdXNlci1uYXYge1xuICAgICRyb290OiAmO1xuXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAxLjVyZW07XG4gICAgXG4gICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ID09dHJ1ZSkge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gJGhlYWRlci11c2VyLW5hdl9pdGVtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAoJGdsb2JhbF9oZWFkZXItaGlkZS1zZWFyY2gtaXRlbS10cmlnZ2VyLWJyZWFrcG9pbnQgPT1mYWxzZSkge1xuICAgICAgICAgICAgZmxleDogMSAxICgxMDAlIC8gKCRoZWFkZXItdXNlci1uYXZfaXRlbXMgKyAxKSk7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICBmbGV4OiAxIDEgKDEwMCUgLyAoJGhlYWRlci11c2VyLW5hdl9pdGVtcyArIDEpKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoI3skZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludH0pIHtcbiAgICAgICAgICAgICAgICBmbGV4OiAwIDAgKDEwMCUgLyAkaGVhZGVyLXVzZXItbmF2X2l0ZW1zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNlYXJjaCB7XG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1oaWRlLXNlYXJjaC1pdGVtLXRyaWdnZXItYnJlYWtwb2ludCA9PXRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRnbG9iYWxfaGVhZGVyLWhpZGUtc2VhcmNoLWl0ZW0tdHJpZ2dlci1icmVha3BvaW50ICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS1hY2NvdW50IHtcbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxNjBweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNDVweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubWluaWNhcnQtd3JhcHBlcj4uY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMHJlbTtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fbGFiZWwge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tc2VhcmNoIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24td3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMTBweDtcbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgd2lkdGg6ICRoZWFkZXItdXNlci1uYXZfaWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkaGVhZGVyLXVzZXItbmF2X2ljb24taGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICBmb250LXNpemU6ICRoZWFkZXItdXNlci1uYXZfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luLXRvcDogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1tYXJnaW4tdG9wO1xuICAgICAgICBjb2xvcjogJGhlYWRlci11c2VyLW5hdl9sYWJlbC1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlID09dHJ1ZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZiAoJGhlYWRlci11c2VyLW5hdl9sYWJlbC12aXNpYmxlID09ZmFsc2UpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpOyAvLyBMYWJlbCBpcyBub3QgZGlzcGxheWVkIG9uIHNjcmVlbiBidXQgYWNjZXNzaWJsZSBmb3Igc2NyZWVuIHJlYWRlcnNcbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgjeyRoZWFkZXItdXNlci1uYXZfbGFiZWwtdmlzaWJsZX0pIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS12aXNpYmxlKCk7XG5cbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAkaGVhZGVyLXVzZXItbmF2X2xhYmVsLW1hcmdpbi10b3A7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19xdHktY291bnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyKCk7XG5cbiAgICAgICAgb3BhY2l0eTogMTtcblxuICAgICAgICBAaWYgKCRoZWFkZXItdXNlci1uYXZfcXR5LWNvdW50ZXItYW5pbWF0aW9uLXNob3cpIHtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1hbmltYXRpb24tdGltZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUoJ3dpc2hsaXN0Jyk7XG5cbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSxcbiAgICAgICAgICAgICAgICBsZWZ0IDAuOXMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbWluaWNhcnQge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnbWluaWNhcnQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgcXR5LWNvdW50ZXJfdHlwZSgnY29tcGFyZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0taGF2ZS1pdGVtcyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZW1wdHkge1xuICAgICAgICAgICAgJiN7JHJvb3R9X19xdHktY291bnRlci0td2lzaGxpc3Qge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci13aXNobGlzdC1zaG93LWVtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmI3skcm9vdH1fX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICAgICAgICAgICAgQGlmICgkaGVhZGVyLXVzZXItbmF2X3F0eS1jb3VudGVyLW1pbmljYXJ0LXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYjeyRyb290fV9fcXR5LWNvdW50ZXItLWNvbXBhcmUge1xuICAgICAgICAgICAgICAgIEBpZiAoJGhlYWRlci11c2VyLW5hdl9xdHktY291bnRlci1jb21wYXJlLXNob3ctZW1wdHkpIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnMCc7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpc2hsaXN0LWNsb25lZCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB6LWluZGV4OiAxMjAwO1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdG9wIDEuMnMgY3ViaWMtYmV6aWVyKDAuNDIsIDAuMzEsIDAuMzQsIDAuOTMpLFxuICAgICAgICAgICAgICAgIGxlZnQgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdC1hbmltYXRpbmcge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBtb3ZlLXF0eS1iYWRnZSAxLjJzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTtcbiAgICAgICAgICAgIHRvcDogMC41cmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgdG9wOiAxLjNyZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB0b3A6IDMuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBrZXlmcmFtZXMgbW92ZS1xdHktYmFkZ2Uge1xuICAgICAgICAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTUlIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIH1cblxuICAgICAgICA4NSUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgICAgfVxuXG4gICAgICAgIDk1JSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgMTAwJSB7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgICAgICBAaW5jbHVkZSBxdHktY291bnRlcl9zcGFuKCk7XG4gICAgfVxuXG4gICAgLm1pbmljYXJ0LWFtb3VudC13cmFwcGVyPi5taW5pY2FydC1hbW91bnQtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtaW4td2lkdGg6IDQwcHg7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcblxuICAgICAgICAubWluaWNhcnQtYW1vdW50LXRleHQtLWVtcHR5IHtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnMCwwMCB6xYInO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxufSIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9xdHktY291bnRlci9ob29rJztcblxuJHF0eS1jb3VudGVyX2ZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyX2ZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfaGVpZ2h0OiAxLjhlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9wYWRkaW5nOiAwIDAuOXJlbSAhZGVmYXVsdDtcbiRxdHktY291bnRlcl9ib3JkZXI6IDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1czogNTBweCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS1kZWZhdWx0LWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0tZGVmYXVsdC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLW1pbmljYXJ0LWJhY2tncm91bmQ6ICRjb2xvcl95ZWxsb3ctb3JhbmdlICFkZWZhdWx0O1xuJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWNvdW50ZXItLWNvbXBhcmUtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuJHF0eS1jb3VudGVyLS13aXNobGlzdC1iYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTUwMCAhZGVmYXVsdDtcbiRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcblxuQG1peGluIHF0eS1jb3VudGVyKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWNvdW50ZXItLWRlZmF1bHQtYmFja2dyb3VuZDtcbiAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1kZWZhdWx0LWNvbG9yO1xuICAgIGJvcmRlcjogJHF0eS1jb3VudGVyX2JvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkcXR5LWNvdW50ZXJfYm9yZGVyLXJhZGl1cztcbiAgICBwYWRkaW5nOiAkcXR5LWNvdW50ZXJfcGFkZGluZztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6ICRxdHktY291bnRlcl9mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6ICRxdHktY291bnRlcl9mb250LXdlaWdodDtcbiAgICBoZWlnaHQ6ICRxdHktY291bnRlcl9oZWlnaHQ7XG5cbiAgICBAaW5jbHVkZSBxdHktY291bnRlcl9ob29rKCR0eXBlKTtcbn1cblxuQG1peGluIHF0eS1jb3VudGVyX3R5cGUoJHR5cGU6ICdkZWZhdWx0Jykge1xuICAgIEBpZiAoJHR5cGUgPT0nd2lzaGxpc3QnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0td2lzaGxpc3QtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRxdHktY291bnRlci0td2lzaGxpc3QtY29sb3I7XG4gICAgfVxuXG4gICAgQGlmICgkdHlwZSA9PSdtaW5pY2FydCcpIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1taW5pY2FydC1jb2xvcjtcbiAgICB9XG5cbiAgICBAaWYgKCR0eXBlID09J2NvbXBhcmUnKSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktY291bnRlci0tY29tcGFyZS1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJHF0eS1jb3VudGVyLS1jb21wYXJlLWNvbG9yO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3R5cGUtaG9vaygkdHlwZSk7XG59XG5cbkBtaXhpbiBxdHktY291bnRlcl9zcGFuKCR0eXBlOiAnZGVmYXVsdCcpIHtcbiAgICBtaW4td2lkdGg6IDFjaDtcblxuICAgIEBpbmNsdWRlIHF0eS1jb3VudGVyX3NwYW4taG9vaygkdHlwZSk7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1oZWFkbGluZSB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgY2xlYXI6IGJvdGg7XG4gIHBhZGRpbmc6IDAgMCAyZW0gMDtcbiAgbWFyZ2luOiAwIDAgMmVtIDA7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwIDAgM3JlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1oZWFkbGluZSB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLWhlYWRsaW5lLS1za2lwLXNwYWNpbmcge1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtaGVhZGxpbmVfX3RpdGxlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyLjZlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRsaW5lX190aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YmVmb3JlLCAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2RjZGNkYzsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRsaW5lX190aXRsZTpiZWZvcmUsIC5jcy1oZWFkbGluZV9fdGl0bGU6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5jcy1oZWFkbGluZV9fdGl0bGU6YmVmb3JlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMC42ZW07IH1cbiAgICAuY3MtaGVhZGxpbmVfX3RpdGxlOmFmdGVyIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjZlbTsgfVxuICAuY3MtaGVhZGxpbmVfX3N1YnRpdGxlIHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWhlYWRsaW5lX19zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiIsIi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG5AbWl4aW4gaGVhZGxpbmUtaG9vaygpIHtcbn1cblxuQG1peGluIGhlYWRsaW5lLXRpdGxlLWhvb2soKSB7XG59XG5cbkBtaXhpbiBoZWFkbGluZS1zdWJ0aXRsZS1ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkbGluZS9taXhpbic7XG5cbi4jeyRuc31oZWFkbGluZSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoKTtcblxuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuXG4gICAgQGluY2x1ZGUgY29tcG9uZW50LXNwYWNpbmcoKTtcblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUtdGl0bGUoKTtcbiAgICB9XG5cbiAgICAmX19zdWJ0aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lLXN1YnRpdGxlKCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkbGluZS9ob29rJztcblxuJGhlYWRsaW5lX3RpdGxlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kaGVhZGxpbmVfdGl0bGUtZm9udC1zaXplOiAyLjZlbSAhZGVmYXVsdDtcbiRoZWFkbGluZV90aXRsZS1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG4vLyBTaG93IGZsZXhpYmxlIGRlY29yYXRpb24gbGluZXMgYXQgdGhlIHNpZGVzIG9mIHRoZSB0aXRsZS5cbiRoZWFkbGluZV90aXRsZS1saW5lcy1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuJGhlYWRsaW5lX3N1YnRpdGxlLWNvbG9yOiAkY29sb3JfYm9yZGVyLTcwMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXNpemU6IDJlbSAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJGhlYWRsaW5lX3N1YnRpdGxlLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRoZWFkbGluZV9zdWJ0aXRsZS1wYWRkaW5nOiAycmVtIDAgIWRlZmF1bHQ7XG5cbkBtaXhpbiBoZWFkbGluZSB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICAgIGNsZWFyOiBib3RoO1xuICAgIHBhZGRpbmc6IDAgMCAyZW0gMDtcbiAgICBtYXJnaW46IDAgMCAyZW0gMDtcblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lLWhvb2soKTtcbn1cblxuQG1peGluIGhlYWRsaW5lLXRpdGxlKFxuICAgICRjb2xvcjogJGhlYWRsaW5lX3RpdGxlLWNvbG9yLFxuICAgICRmb250LXNpemU6ICRoZWFkbGluZV90aXRsZS1mb250LXNpemUsXG4gICAgJGZvbnQtd2VpZ2h0OiAkaGVhZGxpbmVfdGl0bGUtZm9udC13ZWlnaHQsXG4gICAgJHRleHQtdHJhbnNmb3JtOiAkaGVhZGxpbmVfdGl0bGUtdGV4dC10cmFuc2Zvcm0sXG4gICAgJGxpbmVzLWVuYWJsZWQ6ICRoZWFkbGluZV90aXRsZS1saW5lcy1lbmFibGVkLFxuICAgICRsaW5lcy1jb2xvcjogJGhlYWRsaW5lX3RpdGxlLWxpbmVzLWNvbG9yXG4pIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRleHQtdHJhbnNmb3JtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cblxuICAgIEBpZiAkbGluZXMtZW5hYmxlZCB7XG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgZmxleC1ncm93OiAxO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmVzLWNvbG9yO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC42ZW07XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjZlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lLXRpdGxlLWhvb2soKTtcbn1cblxuQG1peGluIGhlYWRsaW5lLXN1YnRpdGxlKFxuICAgICRjb2xvcjogJGhlYWRsaW5lX3N1YnRpdGxlLWNvbG9yLFxuICAgICRmb250LXNpemU6ICRoZWFkbGluZV9zdWJ0aXRsZS1mb250LXNpemUsXG4gICAgJGZvbnQtd2VpZ2h0OiAkaGVhZGxpbmVfc3VidGl0bGUtZm9udC13ZWlnaHQsXG4gICAgJHRleHQtdHJhbnNmb3JtOiAkaGVhZGxpbmVfc3VidGl0bGUtdGV4dC10cmFuc2Zvcm1cbiAgICBcbikge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkZm9udC13ZWlnaHQ7XG4gICAgdGV4dC10cmFuc2Zvcm06ICR0ZXh0LXRyYW5zZm9ybTtcbiAgICBtYXJnaW46ICRoZWFkbGluZV9zdWJ0aXRsZS1tYXJnaW47XG4gICAgcGFkZGluZzogJGhlYWRsaW5lX3N1YnRpdGxlLXBhZGRpbmc7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGhlYWRsaW5lLXN1YnRpdGxlLWhvb2soKTtcbn1cbiIsIi5sYXp5bG9hZCxcbi5sYXp5bG9hZGluZyxcbi5zd2lwZXItbGF6eSB7XG4gICAgLy8gQWRkZWQgdG8gcHJldmVudCBsYXp5U2l6ZXMgZnJvbSBkZWxheWluZyBpbWFnZXMgbG9hZC5cbiAgICBvcGFjaXR5OiAwLjAwMTtcbn1cblxuLmxhenlsb2FkW2RhdGEtYmddIHtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4ubGF6eWxvYWRlZCxcbi5zd2lwZXItbGF6eS1sb2FkZWQge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzO1xufVxuXG4vLyBJbWFnZSB0ZWFzZXIgaW1hZ2VzIGdldCAxMDAlIGV2ZW4gYmVmb3JlIGxvYWRpbmcsXG4vLyB3aGljaCByZXN1bHRzIGluIGJpZyBwbGFjZWhvbGRlciBpbWFnZSBhbmQgZW1wdHkgc3BhY2UgYmVsb3cgdGVhc2VyXG4vLyBUbyBwcmV2ZW50IGJpZyBwbGFjZWhvbGRlciBpbWFnZXMgMXB4IGhlaWdodCBpcyBmb3JjZWQgb24gbm90IHllc3QgbG9hZGVkIGltYWdlc1xuLmNzLWltYWdlLXRlYXNlcl9faW1hZ2UubGF6eWxvYWQ6bm90KC5sYXp5bG9hZGVkKSB7XG4gICAgaGVpZ2h0OiAxcHg7XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICB3aWR0aDogMTAwJTsgfVxuICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAuY3MtbGlua3MtYmxvY2stYWRkdG8ge1xuICAgIG1hcmdpbi10b3A6IDFyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkb24gLmNzLWxpbmtzLWJsb2NrLWFkZHRvIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG8tLWNlbnRlcmVkIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0ge1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSArIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlLS1saXN0IC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSArIC5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM0ZDJjOTE7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbiB7XG4gICAgd2lkdGg6IDEuMzc1ZW07XG4gICAgaGVpZ2h0OiAxLjM3NWVtO1xuICAgIG1hcmdpbi1yaWdodDogMC40cmVtOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzg4ODsgfVxuICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19faWNvbi0td2lzaGxpc3QgcGF0aCB7XG4gICAgICBmaWxsOiAjZTQxZjEyOyB9XG4gICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19pY29uLS1jb21wYXJlIHBhdGgge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiRsaW5rcy1ibG9jay1hZGR0b193aXNobGlzdC1pY29uLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjogJGxpbmstY29sb3JfYmFzZSAhZGVmYXVsdDtcbiRsaW5rcy1ibG9jay1hZGR0b19jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJGxpbmtzLWJsb2NrLWFkZHRvX2ljb24td2lkdGg6IDEuMzc1ZW0gIWRlZmF1bHQ7XG4kbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ6IDEuMzc1ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31saW5rcy1ibG9jay1hZGR0byB7XG4gICAgJHJvb3Q6ICY7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAmIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICB9XG5cbiAgICAuI3skbnN9cHJvZHVjdC10aWxlX19hZGRvbiAmIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxuXG4gICAgJi0tY2VudGVyZWQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICsgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAgICAgLiN7JG5zfXByb2R1Y3QtdGlsZS0tbGlzdCAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkbGlua3MtYmxvY2stYWRkdG9fZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yO1xuICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJGxpbmtzLWJsb2NrLWFkZHRvX2hvdmVyLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAkbGlua3MtYmxvY2stYWRkdG9faWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkbGlua3MtYmxvY2stYWRkdG9faWNvbi1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC40cmVtO1xuXG4gICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogJGNvbG9yX2dyYXk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS13aXNobGlzdCB7XG4gICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkbGlua3MtYmxvY2stYWRkdG9fd2lzaGxpc3QtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWNvbXBhcmUge1xuICAgICAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJGxpbmtzLWJsb2NrLWFkZHRvX2NvbXBhcmUtaWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1sb2dvIHtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC5jcy1sb2dvX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAxMDAlOyB9XG4gICAgLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtbG9nb19faW1hZ2UtLWRlc2t0b3Age1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWxvZ29fX2ltYWdlLS1kZXNrdG9wIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLmNzLWxvZ29fX2ltYWdlLS1tb2JpbGUge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1sb2dvX19pbWFnZS0tbW9iaWxlIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAuY3MtbG9nb19faW1hZ2UtLW1vYmlsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLiN7JG5zfWxvZ28ge1xuICAgIGhlaWdodDogMTAwJTtcblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlOyAvLyBGaXhlcyBoZWlnaHQ6IGF1dG8gYnVnIG9uIGNocm9tZS5cblxuICAgICAgICAmLS1kZXNrdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIC5jaGVja291dC1pbmRleC1pbmRleCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbW9iaWxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNoZWNrb3V0LWluZGV4LWluZGV4ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ubWVzc2FnZXMge1xuICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87IH1cblxuLmNzLW1lc3NhZ2VzX19tZXNzYWdlLFxuLm1lc3NhZ2Uge1xuICBtYXJnaW46IDFyZW0gMDtcbiAgcGFkZGluZzogMS4ycmVtIDFyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxLjJyZW0gY2VudGVyO1xuICBiYWNrZ3JvdW5kLXNpemU6IDJyZW0gMnJlbTtcbiAgcGFkZGluZy1sZWZ0OiA0LjNyZW07IH1cblxuLm1lc3NhZ2UuZ2xvYmFsLmRlbW8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMi40cmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgY29sb3I6IHdoaXRlO1xuICBiYWNrZ3JvdW5kOiByZWQ7XG4gIHBhZGRpbmc6IDJyZW0gMXJlbTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLXN1Y2Nlc3MsXG4ubWVzc2FnZS5zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2Q1ZWZkNztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24tc3VjY2Vzcy5zdmdcIik7XG4gIGJvcmRlcjogbm9uZTsgfVxuXG4uY3MtbWVzc2FnZXNfX21lc3NhZ2UtLW5vdGljZSxcbi5tZXNzYWdlLndhcm5pbmcge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNGNhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi13YXJuaW5nLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0taW5mbyxcbi5tZXNzYWdlLmluZm8sXG4ubWVzc2FnZS5ub3RpY2Uge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmRmNGNhO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWVzc2FnZXMvaWNvbi1pbmZvLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fbWVzc2FnZS0tZXJyb3IsXG4ubWVzc2FnZS5lcnJvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGQwY2U7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2Z1wiKTtcbiAgYm9yZGVyOiBub25lOyB9XG5cbi5jcy1tZXNzYWdlc19fdGV4dCxcbi5tZXNzYWdlIHNwYW4ge1xuICBjb2xvcjogIzY5Njk2OTtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLmNzLW1lc3NhZ2VzLS1zcGFjZS10b3Age1xuICBtYXJnaW4tdG9wOiAxLjVyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3N1Y2Nlc3MtMjAwICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2luZm8tYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3dhcm5pbmctMjAwICFkZWZhdWx0O1xuJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2FybmluZy0yMDAgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2Vycm9yLTIwMCAhZGVmYXVsdDtcblxuJG1lc3NhZ2VzX3N1Y2Nlc3MtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX2luZm8tYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1lc3NhZ2VzX25vdGljZS1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kbWVzc2FnZXNfZXJyb3ItYm9yZGVyOiBub25lICFkZWZhdWx0O1xuXG4kbWVzc2FnZXNfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRtZXNzYWdlc19wYWRkaW5nOiAxLjJyZW0gMXJlbSAxcmVtICFkZWZhdWx0O1xuJG1lc3NhZ2VzX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRtZXNzYWdlX2ljb24td2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbWVzc2FnZV9pY29uLWhlaWdodDogJG1lc3NhZ2VfaWNvbi13aWR0aCAhZGVmYXVsdDtcblxuLm1lc3NhZ2VzIHtcbiAgICBtYXgtd2lkdGg6ICRwYWdlX21heC13aWR0aDtcbiAgICBtYXJnaW46IDAgYXV0bztcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLFxuLm1lc3NhZ2Uge1xuICAgIG1hcmdpbjogMXJlbSAwO1xuICAgIHBhZGRpbmc6ICRtZXNzYWdlc19wYWRkaW5nO1xuICAgIGJvcmRlci1yYWRpdXM6ICRtZXNzYWdlc19ib3JkZXItcmFkaXVzO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMS4ycmVtIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRtZXNzYWdlX2ljb24td2lkdGggJG1lc3NhZ2VfaWNvbi1oZWlnaHQ7XG4gICAgcGFkZGluZy1sZWZ0OiA0LjNyZW07XG59XG4ubWVzc2FnZS5nbG9iYWwuZGVtb3tcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyLjRyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgY29sb3I6IHdoaXRlO1xuICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICBwYWRkaW5nOiAycmVtIDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1zdWNjZXNzLFxuLm1lc3NhZ2Uuc3VjY2VzcyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX3N1Y2Nlc3MtYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLXN1Y2Nlc3Muc3ZnJyk7XG4gICAgYm9yZGVyOiAkbWVzc2FnZXNfc3VjY2Vzcy1ib3JkZXI7XG59XG5cbi4jeyRuc31tZXNzYWdlc19fbWVzc2FnZS0tbm90aWNlLFxuLm1lc3NhZ2Uud2FybmluZyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJG1lc3NhZ2VzX25vdGljZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24td2FybmluZy5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19ub3RpY2UtYm9yZGVyO1xufVxuXG4uI3skbnN9bWVzc2FnZXNfX21lc3NhZ2UtLWluZm8sXG4ubWVzc2FnZS5pbmZvLFxuLm1lc3NhZ2Uubm90aWNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfaW5mby1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL21lc3NhZ2VzL2ljb24taW5mby5zdmcnKTtcbiAgICBib3JkZXI6ICRtZXNzYWdlc19pbmZvLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX19tZXNzYWdlLS1lcnJvcixcbi5tZXNzYWdlLmVycm9yIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbWVzc2FnZXNfZXJyb3ItYmFja2dyb3VuZC1jb2xvcjtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9tZXNzYWdlcy9pY29uLWVycm9yLnN2ZycpO1xuICAgIGJvcmRlcjogJG1lc3NhZ2VzX2Vycm9yLWJvcmRlcjtcbn1cblxuLiN7JG5zfW1lc3NhZ2VzX190ZXh0LFxuLm1lc3NhZ2Ugc3BhbiB7XG4gICAgY29sb3I6ICRtZXNzYWdlc190ZXh0LWNvbG9yO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xufVxuXG4uI3skbnN9bWVzc2FnZXMge1xuICAgICRyb290OiAmO1xuXG4gICAgJi0tc3BhY2UtdG9wIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBSYWRpbyBhbmQgY2hlY2tib3ggc3R5bGluZyAqL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW1pbmljYXJ0LXByb2R1Y3Qge1xuICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19pbWFnZS1jb250YWluZXIgaW1nIHtcbiAgICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faW1hZ2Uge1xuICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX292ZXJ2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGJhc2VsaW5lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19kZXRhaWxzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYnJhbmQtd3JhcHBlciB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYnJhbmQge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4OyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgZmxleC1iYXNpczogMTAwJSAhaW1wb3J0YW50OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19uYW1lLXdyYXBwZXIge1xuICAgICAgICBmbGV4LWJhc2lzOiA3MCU7IH0gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fbmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6dmlzaXRlZCwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX25hbWU6aG92ZXIge1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faXRlbS1wcmljaW5nLS13aXRoLXNwZWNpYWwge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2l0ZW0tcHJpY2luZy0td2l0aC1zcGVjaWFsIC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjNyZW07XG4gICAgICAgIGNvbG9yOiAjYThiMWI3OyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9faXRlbS1wcmljaW5nLS13aXRoLXNwZWNpYWwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcHJpY2UgLnByaWNlLWV4Y2x1ZGluZy10YXgge1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19wcmljZSAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3ByaWNlLWxhYmVsLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1zdWJ0aXRsZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM0ODQ4NDg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGVbYXJpYS1leHBhbmRlZD0ndHJ1ZSddID4gLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5pdGlhbDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGhlaWdodDogMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGN1YmljLWJlemllcigwLCAwLjY2LCAwLjMyLCAwLjk5KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi10b3A6IC0wLjRyZW07XG4gICAgZmxleC1iYXNpczogMTAwJTtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWdyb3VwIHtcbiAgICBtYXJnaW46IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtZ3JvdXAtLXF0eSB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXdyYXBwZXIgKyAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1ncm91cC0tcXR5IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLWNvbnRlbnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtbGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcbiAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy1sYWJlbDphZnRlciB7XG4gICAgICBjb250ZW50OiAnOic7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGNvbG9yOiAjODg4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZV9fdmFsdWUge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy12YWx1ZV9fdmFsdWUgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDEuMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLXdyYXBwZXIge1xuICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHksXG4gIC5jcy1taW5pY2FydC1wcm9kdWN0IC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXg6IDEgMCA5cmVtO1xuICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktbGFiZWwge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dCB7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgd2lkdGg6IDRyZW07XG4gICAgbWF4LXdpZHRoOiA0cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktaW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dDo6cGxhY2Vob2xkZXIge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAjODg4OyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1pbnB1dFtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogM3JlbTtcbiAgICBoZWlnaHQ6IDNyZW07XG4gICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX3F0eS1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fcXR5LWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLXNwYW4ge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgei1pbmRleDogMTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1taW5pY2FydC1wcm9kdWN0X19xdHktYnV0dG9uLWljb24ge1xuICAgIG1heC13aWR0aDogMWVtO1xuICAgIG1heC1oZWlnaHQ6IDEuOHJlbTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAwLjFlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19vcHRpb25zLXRpdGxlLXN2ZyAqLFxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uOmhvdmVyIC5jcy1taW5pY2FydC1wcm9kdWN0X19hY3Rpb24taWNvbiAqLCAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKixcbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGU6aG92ZXIgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uICoge1xuICAgIGZpbGw6ICM0ZDJjOTE7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1pY29uIHtcbiAgICB3aWR0aDogMS42cmVtO1xuICAgIGhlaWdodDogMS42cmVtO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fYWN0aW9uLWljb24gKiwgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX29wdGlvbnMtdGl0bGUtc3ZnICoge1xuICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLW1pbmljYXJ0LXByb2R1Y3RfX2FjdGlvbi1sYWJlbCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZTpob3ZlciAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzQ1NWE2NDsgfVxuICAuY3MtbWluaWNhcnQtcHJvZHVjdF9fb3B0aW9ucy10aXRsZS1zdmcgKiB7XG4gICAgZmlsbDogIzQ1NWE2NDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJG1pbmljYXJ0LW9mZmNhbnZhczogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZW50b19DaGVja291dCxcbiAgICBtaW5pY2FydF9vZmZjYW52YXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLS1ob3ZlcjogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9icmFuZC1hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1wYWRkaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9uYW1lLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWxhYmVsLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLXZhbHVlLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdC1vcHRpb25zX3RvZ2dsZS1kaXNhYmxlOiBmYWxzZSAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9vcHRpb25zLXRpdGxlLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtbGFiZWwtZm9udC1zaXplOiAxLjFyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnQtb2ZmY2FudmFzLXByb2R1Y3Qtb3B0aW9ucy1sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0LW9wdGlvbnMtbGFiZWwtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU6IDJyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3ByaWNlLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9zaG93LXNwZWNpYWwtcHJpY2U6IHRydWUgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1lbmFibGU6IHRydWUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0OiAzcmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1wcm9kdWN0X3F0eS1idXR0b24taWNvbi1wb3M6ICdvbmx5LWljb24nICFkZWZhdWx0O1xuXG4uI3skbnN9bWluaWNhcnQtcHJvZHVjdCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgJl9faW1hZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19vdmVydmlldyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7XG4gICAgfVxuXG4gICAgJl9fZGV0YWlscyB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgICZfX2JyYW5kLXdyYXBwZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiAkbWluaWNhcnQtcHJvZHVjdF9icmFuZC1hbGlnbm1lbnQ7XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X2JyYW5kLWNvbG9yO1xuICAgIH1cblxuICAgICZfX25hbWUtd3JhcHBlciB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtcGFkZGluZztcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vdmVydmlldy1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDcwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9uYW1lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogJG1pbmljYXJ0LXByb2R1Y3RfbmFtZS1mb250LXdlaWdodDtcblxuICAgICAgICAmOnZpc2l0ZWQsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X25hbWUtY29sb3ItaG92ZXI7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtLXByaWNpbmcge1xuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBvcmRlcjogMztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtcHJvZHVjdF9zaG93LXNwZWNpYWwtcHJpY2Uge1xuICAgICAgICAgICAgJi0td2l0aC1zcGVjaWFsIHtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpY2Vfb2xkLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3ByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJpY2Vfc3BlY2lhbC1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiBub3QgJG1pbmljYXJ0LXByb2R1Y3Rfc2hvdy1zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmljZSB7XG4gICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3RfcHJpY2UtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5wcmljZS1leGNsdWRpbmctdGF4IHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X292ZXJ2aWV3LWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJpY2UtbGFiZWwsXG4gICAgJl9fb3B0aW9ucy1zdWJ0aXRsZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9uc190b2dnbGUtZGlzYWJsZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0LW9wdGlvbnMtdGl0bGUtY29sb3I7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtdGl0bGUtZm9udC1zaXplO1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLXRpdGxlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICB3aWR0aDogMXJlbTtcbiAgICAgICAgaGVpZ2h0OiAxcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lXG4gICAgICAgICAgICAkdHJhbnNpdGlvbi1lYXNpbmdfc2xvd2Rvd24tOTAwO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIH1cblxuICAgICZfX29wdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBtYXJnaW4tdG9wOiAtMC40cmVtO1xuICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zX3RvZ2dsZS1wYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fb3B0aW9ucy1ncm91cCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgJi0tcXR5IHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtd3JhcHBlciArICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtY29udGVudCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3Qtb3B0aW9uc190b2dnbGUtZGlzYWJsZSkge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vcHRpb25zLWxhYmVsIHtcbiAgICAgICAgZm9udC1zaXplOiAkbWluaWNhcnQtcHJvZHVjdF9vcHRpb25zLWZvbnQtc2l6ZTtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtbGFiZWwtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNXJlbTtcblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X29wdGlvbnMtbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdC1vcHRpb25zLWxhYmVsLWNvbG9yO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX29wdGlvbnMtdmFsdWUge1xuICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X29wdGlvbnMtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9ucy12YWx1ZS1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJl9fdmFsdWUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkbWluaWNhcnQtcHJvZHVjdF9wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogJG1pbmljYXJ0LXByb2R1Y3Rfb3B0aW9uc190b2dnbGUtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19hY3Rpb24td3JhcHBlciB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgIH1cblxuICAgIEBpZiAoJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWVuYWJsZSkge1xuICAgICAgICAmX19xdHksXG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4OiAxIDAgOXJlbTtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcXR5LWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktaW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcblxuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0O1xuICAgICAgICAgICAgd2lkdGg6IDRyZW07XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDRyZW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRtaW5pY2FydC1wcm9kdWN0X3F0eS1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19xdHktYnV0dG9uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAkbWluaWNhcnQtcHJvZHVjdF9xdHktaGVpZ2h0O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24tc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfX3F0eS1idXR0b24taWNvbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0LXByb2R1Y3RfcXR5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICAmX19xdHksXG4gICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb24sXG4gICAgJl9fb3B0aW9ucy10aXRsZSB7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgI3skcm9vdH1fX29wdGlvbnMtdGl0bGUtc3ZnLFxuICAgICAgICAgICAgI3skcm9vdH1fX2FjdGlvbi1pY29uIHtcbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LXByb2R1Y3RfYWN0aW9uLWljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWljb24ge1xuICAgICAgICB3aWR0aDogMS42cmVtO1xuICAgICAgICBoZWlnaHQ6IDEuNnJlbTtcblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICB3aWR0aDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLXNpemU7XG4gICAgICAgICAgICBoZWlnaHQ6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1zaXplO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWljb24sXG4gICAgJl9fb3B0aW9ucy10aXRsZS1zdmcge1xuICAgICAgICAqIHtcbiAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uLWxhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAmX19vcHRpb25zLXRpdGxlIHtcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICN7JHJvb3R9X19vcHRpb25zLXRpdGxlLXN2ZyB7XG4gICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG1pbmljYXJ0LW9mZmNhbnZhcy1wcm9kdWN0X2FjdGlvbi1pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfX29wdGlvbnMtdGl0bGUtc3ZnIHtcbiAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgIGZpbGw6ICRtaW5pY2FydC1vZmZjYW52YXMtcHJvZHVjdF9hY3Rpb24taWNvbi1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKipcbiAqIEhpZGUgbmF0aXZlIGJyb3dzZXIncyBzY3JvbGxiYXJcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHByZXR0aWVyLWlnbm9yZSAqL1xuLmNzLW1pbmljYXJ0X19jbG9zZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGJvcmRlcjogMDtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogLTEuNXJlbTtcbiAgd2lkdGg6IDVyZW07XG4gIGhlaWdodDogNXJlbTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICByaWdodDogMC41cmVtOyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2U6Zm9jdXMsIC5jcy1taW5pY2FydF9fY2xvc2U6YWN0aXZlLCAuY3MtbWluaWNhcnRfX2Nsb3NlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7IH1cblxuLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICBsZWZ0OiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ODQ4NDg7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZS1vdXQsIG9wYWNpdHkgMC4xNXMgZWFzZS1vdXQsIGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyO1xuICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb246aG92ZXI6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjpiZWZvcmUsIC5jcy1taW5pY2FydF9fY2xvc2UtaWNvbjphZnRlciB7XG4gICAgcmlnaHQ6IDEuNXJlbTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW1pbmljYXJ0X19jbG9zZS1pY29uOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSg5MGRlZykgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApIHJvdGF0ZSgtOTBkZWcpICFpbXBvcnRhbnQ7XG4gICAgb3BhY2l0eTogMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nsb3NlLWljb25bYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCkgcm90YXRlKDApICFpbXBvcnRhbnQ7IH1cblxuLmNzLW1pbmljYXJ0X19jbG9zZS10ZXh0IHtcbiAgYm9yZGVyOiAwO1xuICBjbGlwOiByZWN0KDAsIDAsIDAsIDApO1xuICBoZWlnaHQ6IDFweDtcbiAgbWFyZ2luOiAtMXB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBwYWRkaW5nOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdpZHRoOiAxcHg7IH1cblxuLmNzLW1pbmljYXJ0X190aXRsZS13cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAycmVtIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gIGZvbnQtc2l6ZTogMi4xcmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfVxuXG4uY3MtbWluaWNhcnRfX2l0ZW1zLXRvdGFsIHtcbiAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcbiAgY29sb3I6ICM2OTY5Njk7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbDpub3QoLmNzLW1pbmljYXJ0X19pdGVtcy10b3RhbC0tZW1wdHkpOmJlZm9yZSB7XG4gICAgY29udGVudDogJygnOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWw6bm90KC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5KTphZnRlciB7XG4gICAgY29udGVudDogJyknOyB9XG4gIC5jcy1taW5pY2FydF9faXRlbXMtdG90YWwtLWVtcHR5IC5jb3VudCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3MtbWluaWNhcnRfX2VkaXQtbGluayB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgLmNzLW1pbmljYXJ0X19lZGl0LWxpbmsgLmNzLWxpbmtfX2ljb24ge1xuICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cblxuLmNzLW1pbmljYXJ0X19jb250ZW50IHtcbiAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtbWluaWNhcnRfX2NvbnRlbnQgLmxvYWQuaW5kaWNhdG9yOmJlZm9yZSB7XG4gICAgaGVpZ2h0OiB1bnNldDsgfVxuXG4uY3MtbWluaWNhcnRfX2xpc3Qge1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1taW5pY2FydF9fbGlzdC0tc2Nyb2xsIHtcbiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzZyZW0pO1xuICAgIG92ZXJmbG93LXk6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDNyZW0pOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19saXN0LS1zY3JvbGwge1xuICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMzhyZW0pOyB9IH1cblxuLmNzLW1pbmljYXJ0X19saXN0LWl0ZW0ge1xuICBwYWRkaW5nOiAxLjVyZW07XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtYXJnaW4tYm90dG9tOiAwO1xuICBwYWRkaW5nOiAxLjVyZW0gMnJlbTsgfVxuICAuY3MtbWluaWNhcnRfX2xpc3QtaXRlbTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lOyB9XG5cbi5jcy1taW5pY2FydF9fYWN0aW9ucy13cmFwcGVyIHtcbiAgcGFkZGluZzogMnJlbSAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEuNXJlbSAycmVtO1xuICBib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHggcmdiYSgwLCAwLCAwLCAwLjI3KTsgfVxuXG4uY3MtbWluaWNhcnRfX2FjdGlvbnMge1xuICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gIC5jcy1taW5pY2FydF9fYWN0aW9uczpmaXJzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXRvcDogMDsgfVxuXG4uY3MtbWluaWNhcnRfX2VtcHR5IHtcbiAgcGFkZGluZzogMnJlbSAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS40cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLmNzLW1pbmljYXJ0X19zdWJ0b3RhbCB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1ib3R0b206IDEuMnJlbTsgfVxuXG4uY3MtbWluaWNhcnRfX3N1YnRvdGFsLXByaWNlIC5wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMi4xcmVtICFpbXBvcnRhbnQ7IH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXIsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmZvY3VzLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpiZWZvcmUsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtMXB4O1xuICAgIGJvdHRvbTogLTFweDtcbiAgICByaWdodDogLTFweDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpiZWZvcmUge1xuICAgIHdpZHRoOiAzLjRlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDIwMHB4IDIwMHB4IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphZnRlciB7XG4gICAgd2lkdGg6IDNlbTtcbiAgICBtaW4td2lkdGg6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjI1cyBsaW5lYXI7XG4gICAgei1pbmRleDogLTI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6aG92ZXI6YWZ0ZXIge1xuICAgIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQsIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OnZpc2l0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dCAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDp2aXNpdGVkICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNoZWNrb3V0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2hlY2tvdXRbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dC1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jaGVja291dC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6OmJlZm9yZSwgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6OmFmdGVyIHtcbiAgICBjb250ZW50OiBub25lOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQsIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0ICosIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtbWluaWNhcnRfX2J1dHRvbi12aWV3Y2FydDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmaWxsOiAjZmZmOyB9XG4gIC5jcy1taW5pY2FydF9fYnV0dG9uLXZpZXdjYXJ0W2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA0ZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tdmlld2NhcnQtaWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtO1xuICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqLyB9XG5cbi5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBtYXJnaW46IDNyZW0gMDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDo6YmVmb3JlLCAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbCwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzdlNTdjMjtcbiAgICBjb2xvcjogIzdlNTdjMjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWwgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWw6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1taW5pY2FydF9fYnV0dG9uLWNhcm91c2VsOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLW1pbmljYXJ0X19idXR0b24tY2Fyb3VzZWxbZGlzYWJsZWRdIHtcbiAgICBvcGFjaXR5OiAwLjY1O1xuICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTtcbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi8gfVxuICAuY3MtbWluaWNhcnRfX2J1dHRvbi1jYXJvdXNlbC1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHJpZ2h0OiAxZW07XG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovIH1cblxuLmNzLW1pbmljYXJ0X19tZXNzYWdlcyB7XG4gIHBhZGRpbmc6IDAgMnJlbTsgfVxuXG4uY3MtbWluaWNhcnQtb2ZmY2FudmFzX193cmFwcGVyIHtcbiAgcGFkZGluZzogMDsgfVxuXG4vKiBwcmV0dGllci1pZ25vcmUgKi9cbi5jcy1taW5pY2FydF9fY2Fyb3VzZWwge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDEwOyB9XG4gIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcyBlYXNlLWluO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLXJlYWR5IC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB0b3A6IDUwJTtcbiAgICByaWdodDogY2FsYyg0MHJlbSArIDJyZW0pO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICB3aWR0aDogY2FsYygxMDB2dyAtICg0MHJlbSArICgyICogMnJlbSkpKTtcbiAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlci0tbG9hZGluZywgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyLS1yZWFkeSB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87IH1cbiAgICAuZHJhd2VyLS12aXNpYmxlIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIHtcbiAgICAgICAgcmlnaHQ6IGNhbGMoNDByZW0gKyAoMiAqIDJyZW0pKTtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoNDByZW0gKyAoNCAqIDJyZW0pKSk7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwtd3JhcHBlciAuY3MtaGVhZGxpbmUge1xuICAgICAgbWFyZ2luOiAwIDAgMnJlbTtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMCAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC13cmFwcGVyIC5jcy1oZWFkbGluZV9fdGl0bGUge1xuICAgICAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cbiAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgd2lkdGg6IDExcmVtO1xuICAgIGhlaWdodDogMTFyZW07XG4gICAgcGFkZGluZzogMnJlbSAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzIGVhc2UtaW47IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsLXdyYXBwZXItLWxvYWRpbmcgLmNzLW1pbmljYXJ0X19jYXJvdXNlbC1zcGlubmVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB6LWluZGV4OiAxMDsgfVxuICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgLS1nYXA6IDAuOHJlbTtcbiAgICAtLWJhc2Utc2l6ZTogY2FsYygxMDAlIC0gMC44cmVtKTtcbiAgICAtLXNpemU6IHZhcigtLWJhc2Utc2l6ZSk7XG4gICAgLyoqXG4gICAgICogY2xhc3MtYmFzZWQgY29sdW1ucyBjb25maWcgcmVsYXRlcyB0byBjbGFzc25hbWVzLCBsaWtlICctLWl0ZW1zLWluLXJvdy00J1xuICAgICAqIHdoaWNoIGFyZSBhZGRlZCB0byBlbGVtZW50cywgZGVwZW5kaW5nIG9uIHRoZSBDQyBDb21wb25lbnRzIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgMiAtXG4gICAgICAgICAgICAgICAgMSAqXG4gICAgICAgICAgICAgICAgdmFyKC0tZ2FwKSAvXG4gICAgICAgICAgICAgICAgMlxuICAgICAgICApO1xuICAgIC8qICBjb250YWluZXIgcGFkZGluZyBmaXggICovXG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODEuODc1ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIC0tYmFzZS1zaXplOiBjYWxjKDEyOHJlbSAtIDAuOHJlbSk7IH1cbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLXVzZS13aG9sZS1zY3JlZW4ge1xuICAgICAgICAtLWJhc2Utc2l6ZTogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLXVzZS13aG9sZS1zY3JlZW4gLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAxMjhyZW0pIC8gMik7XG4gICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtIDEyOHJlbSkgLyAyKTtcbiAgICAgICAgICBzY3JvbGwtbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gMTI4cmVtKSAvIDIpO1xuICAgICAgICAgIHNjcm9sbC1tYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gMTI4cmVtKSAvIDIpOyB9IH1cbiAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSBhbmQgKG1pbi13aWR0aDogODEuODc1ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwtLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICAgIC0tYmFzZS1zaXplOiAxMjhyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tZ2FwOiAwLjhyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDIgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDIpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gMiAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gMilcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgICAtLXNpemU6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIHZhcigtLWJhc2Utc2l6ZSkgLyAzIC0gKChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKiB2YXIoLS1nYXApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAzKVxuICAgICAgICAgICAgICAgICk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvIDMgLSAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMiAqIHZhcigtLWdhcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSAvIDMpXG4gICAgICAgICAgICAgICAgKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gNCAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gNClcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMTIwZW0pIHtcbiAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIHtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICB2YXIoLS1iYXNlLXNpemUpIC8gNCAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gNClcbiAgICAgICAgICAgICAgICApOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogODEuODEyNWVtKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsLS1jb250YWluZXItd2lkdGggLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxLjVyZW07XG4gICAgICAgIHNjcm9sbC1wYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgc2Nyb2xsLXBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiBuby1wcmVmZXJlbmNlKSB7XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7IH0gfVxuICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMtd3JhcHBlciB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgZ2FwOiAwO1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBwYWRkaW5nOiB2YXIoLS1nYXApIDA7XG4gICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgb3ZlcnNjcm9sbC1iZWhhdmlvci1pbmxpbmU6IGNvbnRhaW47XG4gICAgICBzY3JvbGxiYXItd2lkdGg6IHRoaW47IH1cbiAgICAgIEBzdXBwb3J0cyAoc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGgpIHtcbiAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG4gICAgICAgICAgb3ZlcmZsb3c6IC1tb3otc2Nyb2xsYmFycy1ub25lO1xuICAgICAgICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgfVxuICAgICAgICAgIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1taW5pY2FydF9fY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyB9XG4gICAgICAgICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDsgfSB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZmxleDogMCAwIHZhcigtLXNpemUpO1xuICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0O1xuICAgICAgbWluLXdpZHRoOiAwOyB9XG4gICAgICAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCAuY3MtbWluaWNhcnRfX2Nhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGU6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gICAgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwgLmNzLW1pbmljYXJ0X19jYXJvdXNlbCAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX2ltYWdlIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi5taW5pY2FydC13cmFwcGVyIC51aS1kaWFsb2cge1xuICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB9XG4iLCIvKioqXG4gKiBIaWRlIG5hdGl2ZSBicm93c2VyJ3Mgc2Nyb2xsYmFyXG4gKi9cblxuQG1peGluIGhpZGUtc2Nyb2xsYmFyIHtcbiAgICBvdmVyZmxvdzogLW1vei1zY3JvbGxiYXJzLW5vbmU7XG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuXG4gICAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAmOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgaGVpZ2h0OiAwO1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3BzZXVkb2ljb24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRtaW5pY2FydC1vZmZjYW52YXM6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9vZmZjYW52YXMtd3JhcHBlcjogMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtcGFkZGluZzogMS41cmVtIDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLXRpdGxlLXBhZGRpbmc6IDFyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtaXRlbS1wYWRkaW5nOiAxLjVyZW0gMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtZnJlZS1zaGlwcGluZy1pbmRpY2F0b3I6IGZhbHNlICFkZWZhdWx0O1xuJG1pbmljYXJ0X29mZmNhbnZhcy1vZmZzZXQtaXBob25lLWZpeDogNDByZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9fY2xvc2UtaW5jbHVkZS1wc2V1ZG9pY29uOiB0cnVlICFkZWZhdWx0O1xuJG1pbmljYXJ0X19jbG9zZS1wc2V1ZG9pY29uLXR5cGU6ICdwbHVzJyAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2Utd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfX2Nsb3NlLWxpbmUtd2lkdGg6IDAuMnJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXI6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmc6IDJyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXBvc2l0aW9uOiAnY2VudGVyJyAhZGVmYXVsdDsgLy8gRGVmYXVsdCB2YWx1ZTogY2VudGVyLiBQb3NzaWJsZSB2YWx1ZXM6IGNlbnRlciAvIHRvcCAvIGJvdHRvbVxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ6ICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZyAhZGVmYXVsdDtcbiRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uOiAnY2VudGVyJyAhZGVmYXVsdDsgLy8gRGVmYXVsdCB2YWx1ZTogY2VudGVyLiBQb3NzaWJsZSB2YWx1ZXM6IGNlbnRlciAvIGxlZnQgLyByaWdodFxuJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJ1dHRvbi1zcGFjaW5nOiAzcmVtICFkZWZhdWx0O1xuLyogcHJldHRpZXItaWdub3JlICovXG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lIGVhc2UtaW4gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTogMTFyZW0gIWRlZmF1bHQ7XG4kbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNob3ctYnJlYWtwb2ludDogJz49bGFwdG9wJyAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X3BhZGRpbmc6IDJyZW0gMCAhZGVmYXVsdDtcblxuJG1pbmljYXJ0X2Nsb3NlLWJ1dHRvbi1jb2xvcjogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfaXRlbS1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9pdGVtLWhlYWRsaW5lLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfaXRlbS1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYm94LXNoYWRvdzogMCAwIDIxcHggMCByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF93aWR0aDogNDByZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9jb250ZW50LWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtaW5pY2FydF9hY3Rpb24td3JhcHBlcl9ib3gtc2hhZG93OiAwIC01cHggNXB4IC01cHhcbiAgICByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4yNykgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWw6IGRlZXAtZ2V0KFxuICAgICR2aWV3LXhtbCxcbiAgICB2YXJzLFxuICAgIE1hZ2VudG9fQ2hlY2tvdXQsXG4gICAgbWluaWNhcnRfb2ZmY2FudmFzLFxuICAgIHByb2R1Y3RzX2Nhcm91c2VsLFxuICAgIGVuYWJsZWRcbikgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfaXRlbS1wZXItcm93OiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X29mZmNhbnZhcyxcbiAgICBwcm9kdWN0c19jYXJvdXNlbCxcbiAgICBqcyxcbiAgICBjb2x1bW5zQ29uZmlnXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnRfbWVzc2FnZS10eXBlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NoZWNrb3V0LFxuICAgIG1pbmljYXJ0X21lc3NhZ2VzXG4pICFkZWZhdWx0O1xuXG4kbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX21vYmlsZS1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfZGVza3RvcC1nYXA6IDAuOHJlbSAhZGVmYXVsdDtcbiRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlOiAwLjhyZW0gIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31taW5pY2FydCB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19jbG9zZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICByaWdodDogLTEuNXJlbTtcbiAgICAgICAgd2lkdGg6IDVyZW07XG4gICAgICAgIGhlaWdodDogNXJlbTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZlLFxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICByaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2xvc2UtaWNvbiB7XG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X19jbG9zZS1pbmNsdWRlLXBzZXVkb2ljb24pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBzZXVkb2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9fY2xvc2UtcHNldWRvaWNvbi10eXBlLFxuICAgICAgICAgICAgICAgICRjb2xvcjogJG1pbmljYXJ0X19jbG9zZS1jb2xvcixcbiAgICAgICAgICAgICAgICAkY29sb3ItaG92ZXI6ICRtaW5pY2FydF9fY2xvc2UtY29sb3ItaG92ZXIsXG4gICAgICAgICAgICAgICAgJHdpZHRoOiAkbWluaWNhcnRfX2Nsb3NlLXdpZHRoLFxuICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRtaW5pY2FydF9fY2xvc2UtbGluZS13aWR0aFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgICZfX2Nsb3NlLXRleHQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICB9XG5cbiAgICAmX190aXRsZS13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfcGFkZGluZztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgY29sb3I6ICRtaW5pY2FydF9pdGVtLWhlYWRsaW5lLWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9vZmZjYW52YXMtdGl0bGUtcGFkZGluZztcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi4xcmVtO1xuICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRtaW5pY2FydF9pdGVtLWJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW1zLXRvdGFsIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAmOm5vdCgjeyRyb290fV9faXRlbXMtdG90YWwtLWVtcHR5KSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1lbXB0eSB7XG4gICAgICAgICAgICAuY291bnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtNTAwO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2VkaXQtbGluayB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgLiN7JG5zfWxpbmtfX2ljb24ge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG1pbmljYXJ0X2NvbnRlbnQtYmFja2dyb3VuZDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgIC5sb2FkLmluZGljYXRvcjpiZWZvcmUge1xuICAgICAgICAgICAgaGVpZ2h0OiB1bnNldDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuXG4gICAgICAgICYtLXNjcm9sbCB7XG4gICAgICAgICAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzNnJlbSk7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQzcmVtKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAzOHJlbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnRfb2ZmY2FudmFzLWZyZWUtc2hpcHBpbmctaW5kaWNhdG9yIHtcbiAgICAgICAgICAgICAgICAvKiBpUGhvbmUgWCBhbmQgWHMgTWF4ICovXG4gICAgICAgICAgICAgICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgICAgICAgICAgICAgQG1lZGlhIG9ubHkgc2NyZWVuXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLXdpZHRoOiAzNzVweClcbiAgICAgICAgICAgICAgICBhbmQgKG1pbi1kZXZpY2UtaGVpZ2h0OiA4MTJweClcbiAgICAgICAgICAgICAgICBhbmQgKC13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvOiAzKVxuICAgICAgICAgICAgICAgIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAjeyRtaW5pY2FydF9vZmZjYW52YXMtb2Zmc2V0LWlwaG9uZS1maXh9KSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qIGlQaG9uZSBYUiAqL1xuICAgICAgICAgICAgICAgIC8qIHByZXR0aWVyLWlnbm9yZSAqL1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlblxuICAgICAgICAgICAgICAgIGFuZCAobWluLWRldmljZS13aWR0aDogNDE0cHgpXG4gICAgICAgICAgICAgICAgYW5kIChtaW4tZGV2aWNlLWhlaWdodDogODk2cHgpXG4gICAgICAgICAgICAgICAgYW5kICgtd2Via2l0LWRldmljZS1waXhlbC1yYXRpbzogMilcbiAgICAgICAgICAgICAgICBhbmQgKG9yaWVudGF0aW9uOiBwb3J0cmFpdCkge1xuICAgICAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gI3skbWluaWNhcnRfb2ZmY2FudmFzLW9mZnNldC1pcGhvbmUtZml4fSkgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfaXRlbS1wYWRkaW5nO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbWluaWNhcnRfaXRlbS1ib3JkZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWl0ZW0tcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FjdGlvbnMtd3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGlmICRtaW5pY2FydC1vZmZjYW52YXMge1xuICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1wYWRkaW5nO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogJG1pbmljYXJ0X2FjdGlvbi13cmFwcGVyX2JveC1zaGFkb3c7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6ICRtaW5pY2FydF9wYWRkaW5nO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gICAgfVxuXG4gICAgJl9fc3VidG90YWwtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgIEBpZiAkbWluaWNhcnQtb2ZmY2FudmFzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuMXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWNoZWNrb3V0IHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2hlY2tvdXQtdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICYtc3BhbiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC10eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1pbmljYXJ0X2J1dHRvbi1jaGVja291dC1pY29uLXBvc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9pY29uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNoZWNrb3V0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tdmlld2NhcnQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi12aWV3Y2FydC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLXZpZXdjYXJ0LWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tdmlld2NhcnQtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1jYXJvdXNlbCB7XG4gICAgICAgICYtd3JhcHBlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZztcbiAgICAgICAgICAgIG1hcmdpbjogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tc3BhY2luZyAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tYm9yZGVyO1xuXG4gICAgICAgICAgICBAaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1idXR0b24tcG9zaXRpb24gPT0gJ2xlZnQnIHtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgICAgICB9IEBlbHNlIGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtYnV0dG9uLXBvc2l0aW9uID09ICdyaWdodCcge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJG1pbmljYXJ0X2J1dHRvbi1jYXJvdXNlbC10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgJi1zcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbWluaWNhcnRfYnV0dG9uLWNhcm91c2VsLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIH1cblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtaW5pY2FydF9idXR0b24tY2Fyb3VzZWwtaWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMCAycmVtO1xuXG4gICAgICAgIEBpZiAoJG1pbmljYXJ0X21lc3NhZ2UtdHlwZSA9PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkbWluaWNhcnRfbWVzc2FnZS10eXBlID09ICdmaXhlZCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogNHJlbTtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiA5OTk5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi1vZmZjYW52YXNfX3dyYXBwZXIge1xuICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLXdyYXBwZXI7XG4gICAgfVxufVxuXG5AaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyBhbmQgJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbCB7XG4gICAgLyogcHJldHRpZXItaWdub3JlICovXG4gICAgLiN7JG5zfW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gICAgICAgICRyb290OiAmO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuXG4gICAgICAgICYtY29udGFpbmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLWJhY2tncm91bmQ7XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLXJlYWR5ICYge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLXdyYXBwZXIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogY2FsYygjeyRtaW5pY2FydF93aWR0aH0gKyAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwdncgLSAoI3skbWluaWNhcnRfd2lkdGh9ICsgKDIgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKSk7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDEyMHJlbTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcblxuICAgICAgICAgICAgJi0tbG9hZGluZyxcbiAgICAgICAgICAgICYtLXJlYWR5IHtcbiAgICAgICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAYXQtcm9vdCAuZHJhd2VyLS12aXNpYmxlICYge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm1pbmljYXJ0LW9mZmNhbnZhcy1vcGVuICYge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICAgICAnI3skbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNob3ctYnJlYWtwb2ludH0nXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGMoI3skbWluaWNhcnRfd2lkdGh9ICsgKDIgKiAjeyRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtc3BhY2luZ30pKTtcbiAgICAgICAgICAgICAgICB3aWR0aDogY2FsYygxMDB2dyAtICgjeyRtaW5pY2FydF93aWR0aH0gKyAoNCAqICN7JG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nfSkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGlmICRtaW5pY2FydF9vZmZjYW52YXMtY2Fyb3VzZWwtcG9zaXRpb24gPT0gJ3RvcCcge1xuICAgICAgICAgICAgICAgIHRvcDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgICAgIH0gQGVsc2UgaWYgJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbiA9PSAnYm90dG9tJyB7XG4gICAgICAgICAgICAgICAgdG9wOiBhdXRvO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1wb3NpdGlvbi1vZmZzZXQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfWhlYWRsaW5lIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMCAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmc7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGFjaW5nIDAgMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLiN7JG5zfWhlYWRsaW5lX190aXRsZSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi1zcGlubmVyIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgIHdpZHRoOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwaW5uZXItc2l6ZTtcbiAgICAgICAgICAgIGhlaWdodDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1zcGlubmVyLXNpemU7XG4gICAgICAgICAgICBwYWRkaW5nOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXNwYWNpbmcgMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAkbWluaWNhcnRfb2ZmY2FudmFzLWNhcm91c2VsLXRyYW5zaXRpb247XG5cbiAgICAgICAgICAgICN7JHJvb3R9LXdyYXBwZXItLWxvYWRpbmcgJiB7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC4jeyRuc31wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgICAgICAgICAkcm9vdDogJjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgc2xpZGVyKFxuICAgICAgICAgICAgICAgICRjb2x1bW5zLWNvbmZpZzogJG1pbmljYXJ0LW9mZmNhbnZhcy1jYXJvdXNlbF9pdGVtLXBlci1yb3csXG4gICAgICAgICAgICAgICAgJG0tZ2FwOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX21vYmlsZS1nYXAsXG4gICAgICAgICAgICAgICAgJGQtZ2FwOiAkbWluaWNhcnQtb2ZmY2FudmFzLWNhcm91c2VsX2Rlc2t0b3AtZ2FwLFxuICAgICAgICAgICAgICAgICRuZXh0LXZpc2libGU6ICRtaW5pY2FydC1vZmZjYW52YXMtY2Fyb3VzZWxfbmV4dC1zbGlkZS12aXNpYmxlLFxuICAgICAgICAgICAgICAgICRyb290OiAkcm9vdFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJG1pbmljYXJ0X29mZmNhbnZhcy1jYXJvdXNlbC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufSBAZWxzZSB7XG4gICAgLiN7JG5zfW1pbmljYXJ0X19jYXJvdXNlbCB7XG4gICAgICAgICYtc3Bpbm5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AaWYgJG1pbmljYXJ0LW9mZmNhbnZhcyAhPSB0cnVlIHtcbiAgICAubWluaWNhcnQtd3JhcHBlciB7XG4gICAgICAgIC51aS1kaWFsb2cge1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiAxMDAlO1xuICAgICAgICAgICAgcmlnaHQ6IDAuNXJlbTtcbiAgICAgICAgICAgIHotaW5kZXg6IDk5OTk5O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IC0xcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wID4gJGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldCkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRnbG9iYWxfaGVhZGVyLWhlaWdodC1kZXNrdG9wfSAtICN7JGdsb2JhbF9oZWFkZXItaGVpZ2h0LXRhYmxldH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgLyAyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ibG9jay1taW5pY2FydCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkbWluaWNhcnRfYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6ICRtaW5pY2FydF9ib3gtc2hhZG93O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgd2lkdGg6IDMxcmVtO1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDJyZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6ICRtaW5pY2FydF93aWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS41cmVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRtaW5pY2FydF9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB0b3A6IC0wLjhyZW07XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICByaWdodDogNC41cmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0gQGVsc2Uge1xuICAgIC5taW5pY2FydC13cmFwcGVyIHtcbiAgICAgICAgLnVpLWRpYWxvZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ3V0aWxzL3N0cmlwLXVuaXQnO1xuQGltcG9ydCAndXRpbHMvaGlkZS1zY3JvbGxiYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy9fc2xpZGVyL2hvb2tzJztcblxuLy8gQ2FsY3VsYXRlIGNvbnRhaW5lciBicmVha3BvaW50ICsgMiAqIGVkZ2UgZ3V0dGVyIGFuZCB0cmFuc2Zvcm0gdG8gJ2VtJyB1bml0IGZvciBtZWRpYSBxdWVyeVxuJGNvbnRhaW5lckJyZWFrcG9pbnRQeDogKFxuICAgICAgICBzdHJpcC11bml0KCRwYWdlX21heC13aWR0aCkgKyAyICogc3RyaXAtdW5pdCgkcGFnZV9lZGdlLWd1dHRlcilcbiAgICApICogMTA7XG4kY29udGFpbmVyQnJlYWtwb2ludEVtOiAkY29udGFpbmVyQnJlYWtwb2ludFB4IC8gMTYgKiAxZW07XG4kdG9Db250YWluZXJCcmVha3BvaW50RW06ICgkY29udGFpbmVyQnJlYWtwb2ludFB4IC0gMSkgLyAxNiAqIDFlbTtcblxuQG1peGluIGl0LWdyaWQoJG0tZ2FwOiAwLjhyZW0sICRkLWdhcDogMC44cmVtKSB7XG4gICAgJHJvb3Q6ICY7XG4gICAgLS1nYXA6ICN7JG0tZ2FwfTtcblxuICAgICY6bm90KC4jeyRuc31jb250YWluZXItLXVzZS13aG9sZS13aWR0aCkgJiB7XG4gICAgICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19zbGlkZXMtd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc2xpZGVzIHtcbiAgICAgICAgLS1jb2x1bW5zOiAxO1xuXG4gICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgIGdhcDogdmFyKC0tZ2FwKTtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQodmFyKC0tY29sdW1ucyksIG1pbm1heCgwLCAxZnIpKTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICN7JHJvb3R9LS1pdGVtcy1pbi1yb3ctbW9iaWxlLTIgJiB7XG4gICAgICAgICAgICAtLWNvbHVtbnM6IDI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zbGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogY2FsYyh2YXIoLS1nYXApIC8gMiArIDIpO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDAuNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogb3V0bGluZS1vZmZzZXQgMC4yNXMgZWFzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BpY3R1cmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgLS0gc3R5bGVsaW50IGRvZXNuJ3Qga25vdyB0aGlzIG1lZGlhIHF1ZXJ5IHlldC4gKi9cbiAgICAgICAgQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtZGF0YTogcmVkdWNlKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgKi9cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX2JhY2tncm91bmQtNTAwO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgLS1nYXA6ICN7JGQtZ2FwfTtcblxuICAgICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAgICAgICAgICAgJi0taXRlbXMtaW4tcm93LSN7JGl9ICN7JHJvb3R9X19zbGlkZXMge1xuICAgICAgICAgICAgICAgIC0tY29sdW1uczogI3skaX07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgJi0taXRlbXMtaW4tcm93LTQ6bm90KCN7JHJvb3R9LS1pY29uKSAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgIC0tY29sdW1uczogMjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIGl0LWdyaWQtaG9vaygkbS1nYXAsICRkLWdhcCk7XG59XG5cbkBtaXhpbiBzbGlkZXItZXNzZW50aWFscygkcm9vdDogJHJvb3QpIHtcbiAgICAjeyRyb290fV9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgICAgZ2FwOiAwO1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgcGFkZGluZzogdmFyKC0tZ2FwKSAwO1xuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgICAgICBvdmVyc2Nyb2xsLWJlaGF2aW9yLWlubGluZTogY29udGFpbjtcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuXG4gICAgICAgIEBzdXBwb3J0cyAoc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGgpIHtcbiAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5O1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgQGluY2x1ZGUgaGlkZS1zY3JvbGxiYXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICN7JHJvb3R9X19zbGlkZSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZsZXg6IDAgMCB2YXIoLS1zaXplKTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1nYXApO1xuICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7XG4gICAgICAgIG1pbi13aWR0aDogMDtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjeyRyb290fV9faW1hZ2Uge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBzbGlkZXItZXNzZW50aWFscy1ob29rKCRyb290KTtcbn1cblxuQG1peGluIHNsaWRlcihcbiAgICAkY29sdW1ucy1jb25maWc6ICdjbGFzcy1iYXNlZCcsXG4gICAgJG0tZ2FwOiAwLjhyZW0sXG4gICAgJGQtZ2FwOiAwLjhyZW0sXG4gICAgJG5leHQtdmlzaWJsZTogMy4ycmVtLFxuICAgICRyb290OiAnJidcbikge1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtICN7JG5leHQtdmlzaWJsZX0pO1xuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICN7JGNvbnRhaW5lckJyZWFrcG9pbnRFbX0pIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgLS1iYXNlLXNpemU6IGNhbGMoI3skcGFnZV9tYXgtd2lkdGh9IC0gI3skbmV4dC12aXNpYmxlfSk7XG4gICAgICAgIH1cblxuICAgICAgICAmI3skcm9vdH0tLXVzZS13aG9sZS1zY3JlZW46bm90KCN7JHJvb3R9LS1mdWxsLXdpZHRoLXNsaWRlcikge1xuICAgICAgICAgICAgLS1iYXNlLXNpemU6IDEwMCU7XG5cbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeCBwcm94aW1pdHk7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBjYWxjKCgxMDAlIC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IGNhbGMoKDEwMCUgLSAjeyRwYWdlX21heC13aWR0aH0pIC8gMik7XG4gICAgICAgICAgICAgICAgc2Nyb2xsLXBhZGRpbmctbGVmdDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogY2FsYygoMTAwJSAtICN7JHBhZ2VfbWF4LXdpZHRofSkgLyAyKTtcbiAgICAgICAgICAgICAgICBzY3JvbGwtbWFyZ2luLWxlZnQ6IGNhbGMoKDEwMHZ3IC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgICAgIHNjcm9sbC1tYXJnaW4tcmlnaHQ6IGNhbGMoKDEwMHZ3IC0gI3skcGFnZV9tYXgtd2lkdGh9KSAvIDIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkgYW5kIChtaW4td2lkdGg6ICN7JGNvbnRhaW5lckJyZWFrcG9pbnRFbX0pIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgLS1iYXNlLXNpemU6ICN7JHBhZ2VfbWF4LXdpZHRofTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC0tc2l6ZTogdmFyKC0tYmFzZS1zaXplKTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgLS1nYXA6ICN7JGQtZ2FwfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbGFzcy1iYXNlZCBjb2x1bW5zIGNvbmZpZyByZWxhdGVzIHRvIGNsYXNzbmFtZXMsIGxpa2UgJy0taXRlbXMtaW4tcm93LTQnXG4gICAgICogd2hpY2ggYXJlIGFkZGVkIHRvIGVsZW1lbnRzLCBkZXBlbmRpbmcgb24gdGhlIENDIENvbXBvbmVudHMgY29uZmlndXJhdGlvbi5cbiAgICAgKi9cbiAgICBAaWYgJGNvbHVtbnMtY29uZmlnID09ICdjbGFzcy1iYXNlZCcge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoIDgge1xuICAgICAgICAgICAgICAgICYjeyRyb290fS0taXRlbXMtaW4tcm93LSN7JGl9IHtcbiAgICAgICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgI3skaX0gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoI3skaSAtIDF9ICogdmFyKC0tZ2FwKSkgLyAjeyRpfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICYjeyRyb290fS0taXRlbXMtaW4tcm93LTQ6bm90KCN7JHJvb3R9LS1pY29uKSB7XG4gICAgICAgICAgICAgICAgLS1zaXplOiBjYWxjKHZhcigtLWJhc2Utc2l6ZSkgLyAyIC0gKDEgKiB2YXIoLS1nYXApIC8gMikpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgICRiYXNlSXRlbXNQZXJSb3c6IG1hcC1nZXQoJGNvbHVtbnMtY29uZmlnLCAncGhvbmUnKTtcbiAgICAgICAgLS1zaXplOiBjYWxjKFxuICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvXG4gICAgICAgICAgICAgICAgI3skYmFzZUl0ZW1zUGVyUm93fSAtXG4gICAgICAgICAgICAgICAgI3skYmFzZUl0ZW1zUGVyUm93IC1cbiAgICAgICAgICAgICAgICAxfSAqXG4gICAgICAgICAgICAgICAgdmFyKC0tZ2FwKSAvXG4gICAgICAgICAgICAgICAgI3skYmFzZUl0ZW1zUGVyUm93fVxuICAgICAgICApO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGNvbHVtbnMtY29uZmlnIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PSN7JGJyZWFrcG9pbnR9Jykge1xuICAgICAgICAgICAgICAgIC0tc2l6ZTogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgdmFyKC0tYmFzZS1zaXplKSAvICN7JGl0ZW1zUGVyUm93fSAtICgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRpdGVtc1BlclJvdyAtIDF9ICogdmFyKC0tZ2FwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIC8gI3skaXRlbXNQZXJSb3d9KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiAgY29udGFpbmVyIHBhZGRpbmcgZml4ICAqL1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyR0b0NvbnRhaW5lckJyZWFrcG9pbnRFbX0pIHtcbiAgICAgICAgJiN7JHJvb3R9LS1jb250YWluZXItd2lkdGgge1xuICAgICAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IG5vLXByZWZlcmVuY2UpIHtcbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBzY3JvbGwtYmVoYXZpb3I6IHNtb290aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIHNsaWRlci1lc3NlbnRpYWxzKCRyb290KTtcblxuICAgIEBpbmNsdWRlIHNsaWRlci1ob29rKCRjb2x1bW5zLWNvbmZpZywgJG0tZ2FwLCAkZC1nYXAsICRuZXh0LXZpc2libGUsICRyb290KTtcbn1cblxuQG1peGluIHNsaWRlci1tb2JpbGUoJG0tZ2FwOiAwLjhyZW0sICRuZXh0LXZpc2libGU6IDMuMnJlbSwgJHJvb3Q6ICcmJykge1xuICAgIC0tZ2FwOiAjeyRtLWdhcH07XG4gICAgLS1iYXNlLXNpemU6IGNhbGMoMTAwJSAtICN7JG5leHQtdmlzaWJsZX0pO1xuICAgIC0tc2l6ZTogdmFyKC0tYmFzZS1zaXplKTtcblxuICAgICYjeyRyb290fS0tY29udGFpbmVyLXdpZHRoIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0jeyRwYWdlX2VkZ2UtZ3V0dGVyfTtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtI3skcGFnZV9lZGdlLWd1dHRlcn07XG5cbiAgICAgICAgI3skcm9vdH1fX3NsaWRlcyB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRwYWdlX2VkZ2UtZ3V0dGVyO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogJHBhZ2VfZWRnZS1ndXR0ZXI7XG4gICAgICAgICAgICBzY3JvbGwtcGFkZGluZy1sZWZ0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgICAgIHNjcm9sbC1wYWRkaW5nLXJpZ2h0OiAkcGFnZV9lZGdlLWd1dHRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogbm8tcHJlZmVyZW5jZSkge1xuICAgICAgICAjeyRyb290fV9fc2xpZGVzIHtcbiAgICAgICAgICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc2xpZGVyLWVzc2VudGlhbHMoJHJvb3QpO1xuXG4gICAgQGluY2x1ZGUgc2xpZGVyLW1vYmlsZS1ob29rKCRtLWdhcCwgJG5leHQtdmlzaWJsZSwgJHJvb3QpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi5tb2RhbC1zbGlkZS5jb25maXJtIC5tb2RhbC1pbm5lci13cmFwLFxuLm1vZGFsLXBvcHVwLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAsXG4ubW9kYWwtY3VzdG9tLmNvbmZpcm0gLm1vZGFsLWlubmVyLXdyYXAge1xuICBtYXgtd2lkdGg6IDUwcmVtOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1wb3B1cCAubW9kYWwtaW5uZXItd3JhcCxcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWlubmVyLXdyYXAge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiBub25lO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBib3JkZXI6IG5vbmU7IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1jb250ZW50LFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtY29udGVudCB7XG4gIHBhZGRpbmctdG9wOiAycmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuLm1vZGFsLXNsaWRlIC5tb2RhbC1oZWFkZXIsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLWhlYWRlcixcbi5tb2RhbC1jdXN0b20gLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4ubW9kYWwtc2xpZGUgLmFjdGlvbi1jbG9zZSxcbi5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlLFxuLm1vZGFsLWN1c3RvbSAuYWN0aW9uLWNsb3NlIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAwO1xuICB0b3A6IDA7XG4gIG1hcmdpbjogMS41cmVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvY2xvc2Uuc3ZnXCIpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogMXJlbSAxcmVtO1xuICB3aWR0aDogM3JlbTtcbiAgaGVpZ2h0OiAzcmVtO1xuICB6LWluZGV4OiAxOyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1wb3B1cCAuYWN0aW9uLWNsb3NlIHNwYW4sXG4gIC5tb2RhbC1jdXN0b20gLmFjdGlvbi1jbG9zZSBzcGFuIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5tb2RhbC1zbGlkZSAuYWN0aW9uLWNsb3NlOmJlZm9yZSxcbiAgLm1vZGFsLXBvcHVwIC5hY3Rpb24tY2xvc2U6YmVmb3JlLFxuICAubW9kYWwtY3VzdG9tIC5hY3Rpb24tY2xvc2U6YmVmb3JlIHtcbiAgICBjb250ZW50OiBub25lOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyLFxuLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4ubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAycmVtO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIHtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6dmlzaXRlZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5ICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTp2aXNpdGVkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAucHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXByaW1hcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAucHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5LFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSBzcGFuLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnByaW1hcnkgc3BhbixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1wcmltYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5wcmltYXJ5IHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7XG4gICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5W2Rpc2FibGVkXSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSxcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDsgfSB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbixcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5IHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cbiAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgbWluLXdpZHRoOiAxMnJlbTsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTo6LW1vei1mb2N1cy1pbm5lciwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTp2aXNpdGVkLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQsIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5LCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsgfVxuICAgICAgICBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6dmlzaXRlZCAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTp2aXNpdGVkICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5ICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OnZpc2l0ZWQgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OnZpc2l0ZWQgKiB7XG4gICAgICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4IC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSksIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnk6Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnk6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgYm9keS5jaGVja291dC1pbmRleC1pbmRleCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeVtkaXNhYmxlZF0sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnlbZGlzYWJsZWRdLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeVtkaXNhYmxlZF0ge1xuICAgICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnkgc3BhbiwgYm9keS5jaGVja291dC1pbmRleC1pbmRleFxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciAuc2Vjb25kYXJ5IHNwYW4sIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXhcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciAuYWN0aW9uLXNlY29uZGFyeSBzcGFuLCBib2R5LmNoZWNrb3V0LWluZGV4LWluZGV4XG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgLnNlY29uZGFyeSBzcGFuIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkLFxuICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBtaW4td2lkdGg6IDEycmVtOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOnZpc2l0ZWQgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkICosXG4gICAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQgKixcbiAgICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5tb2RhbC1jdXN0b20gLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAubW9kYWwtcG9wdXAgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLXBvcHVwIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGRbZGlzYWJsZWRdLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkW2Rpc2FibGVkXSxcbiAgICAubW9kYWwtY3VzdG9tIC5tb2RhbC1mb290ZXIgYnV0dG9uOm9ubHktY2hpbGRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAubW9kYWwtc2xpZGUgLm1vZGFsLWZvb3RlciBidXR0b246b25seS1jaGlsZCBzcGFuLFxuICAgIC5tb2RhbC1wb3B1cCAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHNwYW4sXG4gICAgLm1vZGFsLWN1c3RvbSAubW9kYWwtZm9vdGVyIGJ1dHRvbjpvbmx5LWNoaWxkIHNwYW4ge1xuICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIHotaW5kZXg6IDE7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG5cbi5tb2RhbC1zbGlkZSAubW9kYWwtdGl0bGUsXG4ubW9kYWwtcG9wdXAgLm1vZGFsLXRpdGxlLFxuLm1vZGFsLWN1c3RvbSAubW9kYWwtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgcGFkZGluZzogMnJlbTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG4gIG1hcmdpbjogMDsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAubW9kYWwtcG9wdXAubW9kYWwtc2xpZGUgLm1vZGFsLWlubmVyLXdyYXBbY2xhc3NdIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5hY3Rpb24tcHJpbWFyeSxcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLnByaW1hcnkge1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLm1vZGFsLXNsaWRlIC5tb2RhbC1mb290ZXIgLmFjdGlvbi1zZWNvbmRhcnksXG4gIC5tb2RhbC1zbGlkZSAubW9kYWwtZm9vdGVyIC5zZWNvbmRhcnkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50OyB9IH1cblxuLm1vZGFsLXBvcHVwIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTsgfVxuXG4ucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXBvcHVwOm5vdCguX2lubmVyLXNjcm9sbCkge1xuICBwb2ludGVyLWV2ZW50czogYXV0bzsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAucGFnZS1sYXlvdXQtY2hlY2tvdXQgLm1vZGFsLXNsaWRlIHtcbiAgICB3aWR0aDogODAlO1xuICAgIG1heC13aWR0aDogNjVyZW07XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfSB9XG5cbi5tb2RhbHMtb3ZlcmxheSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43KTsgfVxuXG5ib2R5Ll9oYXMtbW9kYWwubW9kYWwtbm8tc2Nyb2xsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB3aWR0aDogMTAwdnc7XG4gIGhlaWdodDogMTAwdmg7XG4gIG92ZXJmbG93OiBpbml0aWFsOyB9XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4kbW9kYWxfdGl0bGUtZm9udC1zaXplOiAkZm9udC1zaXplX2hlYWRsaW5lLTMgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zOiAnbm8taWNvbicgIWRlZmF1bHQ7XG4kbW9kYWxfaW5zaWRlLWJvcmRlcnM6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRtb2RhbF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kbW9kYWxfc2xpZGUtbW9iaWxlLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRtb2RhbF9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJG1vZGFsX2JvcmRlci1yYWRpdXM6IDAgIWRlZmF1bHQ7XG4kbW9kYWwtYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJG1vZGFsX3RleHQtZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcbiRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZTogJ3NlY29uZGFyeScgIWRlZmF1bHQ7XG4kbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBuby1kZXNjZW5kaW5nLXNwZWNpZmljaXR5ICovXG5cbi5tb2RhbC1zbGlkZSxcbi5tb2RhbC1wb3B1cCxcbi5tb2RhbC1jdXN0b20ge1xuICAgICYuY29uZmlybSB7XG4gICAgICAgIC5tb2RhbC1pbm5lci13cmFwIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogNTByZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtaW5uZXItd3JhcCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRtb2RhbF9iYWNrZ3JvdW5kO1xuICAgICAgICBib3gtc2hhZG93OiAkbW9kYWxfYm94LXNoYWRvdztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJG1vZGFsX2JvcmRlci1yYWRpdXM7XG4gICAgICAgIGJvcmRlcjogJG1vZGFsLWJvcmRlcjtcbiAgICB9XG5cbiAgICAubW9kYWwtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAkbW9kYWxfdGV4dC1mb250LXNpemU7XG4gICAgfVxuXG4gICAgLm1vZGFsLWhlYWRlciB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuYWN0aW9uLWNsb3NlIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIG1hcmdpbjogMS41cmVtO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9jbG9zZS5zdmcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDFyZW0gMXJlbTtcbiAgICAgICAgd2lkdGg6IDNyZW07XG4gICAgICAgIGhlaWdodDogM3JlbTtcbiAgICAgICAgei1pbmRleDogMTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5tb2RhbC1mb290ZXIge1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBib3JkZXItdG9wOiAkbW9kYWxfaW5zaWRlLWJvcmRlcnM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLXByaW1hcnksXG4gICAgICAgIC5wcmltYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3ByaW1hcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tc2Vjb25kYXJ5LFxuICAgICAgICAuc2Vjb25kYXJ5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLWljb24tcG9zXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9zZWNvbmRhcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJG1vZGFsX3NlY29uZGFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBTdHlsZSBmb3IgY2hlY2tvdXQgbW9kYWxzIGhhdmUgdmVyeSBoaWdoIHNwZWNpZmljaXR5IGluIG1hZ2VudG9cbiAgICAgICAgICAgIGJvZHkuY2hlY2tvdXQtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3NlY29uZGFyeS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMnJlbTtcblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfc2Vjb25kYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJ1dHRvbjpvbmx5LWNoaWxkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICAgICAkdHlwZTogJG1vZGFsX3ByaW1hcnktYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkbW9kYWxfcHJpbWFyeS1idXR0b24taWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24tc3BhbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi10eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRtb2RhbF9wcmltYXJ5LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubW9kYWwtdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRtb2RhbF90aXRsZS1mb250LXNpemUpO1xuICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICBib3JkZXItYm90dG9tOiAkbW9kYWxfaW5zaWRlLWJvcmRlcnM7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG59XG5cbi5tb2RhbC1wb3B1cC5tb2RhbC1zbGlkZSB7XG4gICAgLm1vZGFsLWlubmVyLXdyYXBbY2xhc3NdIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbW9kYWxfc2xpZGUtbW9iaWxlLWJhY2tncm91bmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5tb2RhbC1zbGlkZSB7XG4gICAgLm1vZGFsLWZvb3RlciB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24tcHJpbWFyeSxcbiAgICAgICAgLnByaW1hcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi1zZWNvbmRhcnksXG4gICAgICAgIC5zZWNvbmRhcnkge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEuNXJlbSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBGaXggYnVnIHdpdGggbm8gY2xvc2luZyBvdmVybGF5IG9uIG1vYmlsZS4gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9tYWdlbnRvL21hZ2VudG8yL2lzc3Vlcy83Mzk5IGZvciBkZXRhaWxzXG4ubW9kYWwtcG9wdXAge1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRvdWNoLWFjdGlvbjogbm9uZTtcbn1cblxuLnBhZ2UtbGF5b3V0LWNoZWNrb3V0IHtcbiAgICAubW9kYWwtcG9wdXA6bm90KC5faW5uZXItc2Nyb2xsKSB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cblxuICAgIC5tb2RhbC1zbGlkZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA4MCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDY1cmVtO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ubW9kYWxzLW92ZXJsYXkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtb2RhbHNfb3ZlcmxheS1iYWNrZ3JvdW5kO1xufVxuXG5ib2R5Ll9oYXMtbW9kYWwubW9kYWwtbm8tc2Nyb2xsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgd2lkdGg6IDEwMHZ3O1xuICAgIGhlaWdodDogMTAwdmg7XG4gICAgb3ZlcmZsb3c6IGluaXRpYWw7XG59XG5cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIi8qKipcbiAqIFVzaW5nIHBzdWVkbyBlbGVtZW50cyB0byBtYWludGFpbiBhbiBlbGVtZW50cyBhc3BlY3QgcmF0aW8sIGV2ZW4gYXMgaXQgc2NhbGVzXG4gKiBJdCdzIHVzaW5nIG9ubHkgZm9yIElFMTEgYW5kIEVkZ2UgKHZlcnNpb24gd2hpY2ggZG9lc24ndCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCkgYnJvd3NlcnNcbiAqIEZvciBicm93c2VycyB3aGljaCBzdXBwb3J0IG5hdGl2ZSBDU1MgZ3JpZCwgd2UgYXJlIHVzaW5nIG1peGlucyBjb250YWluIGByZXNldGAgaW4gbWl4aW4gbmFtZVxuICogdG8gb3ZlcnJpZGUgZGVmYXVsdCBtaXhpbnMgKHByb2dyZXNzaXZlIGVuaGFuY2VtZW50KVxuICogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9zYXNzL21haW50YWluLWFzcGVjdC1yYXRpby1taXhpbi9cbiAqIEBwYXJhbSB7bnVtYmVyfSAkd2lkdGg6IHdpZHRoIG9mIHRoZSBlbGVtZW50O1xuICogQHBhcmFtIHtudW1iZXJ9ICRoZWlnaHQ6IGhlaWdodCBvZiB0aGUgZWxlbWVudDtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkY29udGVudENsYXNzOiBjbGFzcyBvZiB0aGUgZGlyZWN0IGNoaWxkIGVsZW1lbnQgdG8gYmUgcG9zaXRpb25lZCBhYnNvbHV0ZWx5O1xuICogQHBhcmFtIHtib29sZWFufSAkYXV0b3Bvc2l0aW9uOiB0ZWxscyBpZiBpdGVtIHNoYWxsIHRha2UgMTAwJSBvZiBwYXJlbnQgc2l6ZSBvciBpZiBpdCBjYW4gYmUgd2lkZXIvaGlnaGVyIGlmIG5lZWRlZDtcbiAqL1xuXG5AZnVuY3Rpb24gZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCkge1xuICAgIEByZXR1cm4gKCRoZWlnaHQgLyAkd2lkdGgpICogMTAwJTtcbn1cblxuQG1peGluIGFzcGVjdC1yYXRpbygkd2lkdGgsICRoZWlnaHQsICRjaGlsZENsYXNzLCAkYXV0b3Bvc2l0aW9uOiB0cnVlKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tcmVzZXQoJGNoaWxkQ2xhc3MsICRhdXRvcG9zaXRpb246IHRydWUpIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuXG4gICAgLiN7JGNoaWxkQ2xhc3N9IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IGF1dG87XG4gICAgICAgIGxlZnQ6IGF1dG87XG5cbiAgICAgICAgQGlmICRhdXRvcG9zaXRpb24ge1xuICAgICAgICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBib3R0b206IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tY2hpbGQtcG9zaXRpb24oJGF1dG9wb3NpdGlvbjogdHJ1ZSkge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcblxuICAgIEBpZiAkYXV0b3Bvc2l0aW9uIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBhc3BlY3QtcmF0aW8tb3ZlcnJpZGUoJHdpZHRoLCAkaGVpZ2h0KSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBwYWRkaW5nLXRvcDogZ2V0LWFzcGVjdC1yYXRpby1wYWRkaW5nLXZhbHVlKCR3aWR0aCwgJGhlaWdodCk7XG4gICAgfVxufVxuXG5AbWl4aW4gYXNwZWN0LXJhdGlvLW92ZXJyaWRlLXJlc2V0KCkge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9hc3BlY3QtcmF0aW8nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG5hdmlnYXRpb25fZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9sdmwtMS1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uX2x2bC0yLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuXG4kbmF2aWdhdGlvbl9vdmVybGF5LXNob3c6IGZhbHNlICFkZWZhdWx0O1xuLy8gQm94IHNoYWRvdyBlZmZlY3QgYXBwbGllZCBmb3IgdGhlIGZseW91dC5cbiRuYXZpZ2F0aW9uX2ZseW91dC1ib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKCRjb2xvcl9iYWNrZ3JvdW5kLTgwMCwgMC4xNSkgIWRlZmF1bHQ7XG4vLyBGbHlvdXQgYmFja2dyb3VuZCBjb2xvci5cbiRuYXZpZ2F0aW9uX2ZseW91dC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4vLyBDb2xvciBvZiB0aGUgbGluay5cbiRuYXZpZ2F0aW9uX2xpbmstY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbi8vIENvbG9yIG9mIHRoZSBsaW5rIGluIHRoZSBmbHlvdXQgb24gaG92ZXIuXG4kbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4vLyBCb3R0b20gYm9yZGVyIGNvbmZpZ3VyYXRpb24gZm9yIGZseW91dCBjYXRlZ29yeSBsaW5rcy5cbiRuYXZpZ2F0aW9uX2xpbmstYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saXN0cy1tYXJrLXBhcmVudC1vbi1ob3ZlcjogdHJ1ZSAhZGVmYXVsdDtcblxuJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg6IDJyZW0gIWRlZmF1bHQ7XG4kbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS1oZWlnaHQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoICFkZWZhdWx0O1xuLy8gd29ya3Mgb25seSBmb3Igc3ZnIGljb25zXG4kbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3I6ICRjb2xvcl90ZXh0LTYwMCAhZGVmYXVsdDtcbiRuYXZpZ2F0aW9uX2xpbmstaWNvbi1jb2xvci0taG92ZXI6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfW5hdmlnYXRpb24ge1xuICAgICRyb290OiAmO1xuXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2ZvbnQtc2l6ZTtcblxuICAgICZfX2xpc3Qge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi0tbWFpbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWlue1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDYpe1xuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL3RoZW1lLXBhcGlsYXJ0L3BsX1BML2ltYWdlcy9pY29ucy9wZGYuc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jcy1uYXZpZ2F0aW9uX19pdGVtLS1tYWlue1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDcpe1xuICAgICAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICM3Qjk2NDM7XG4gICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKCcuLi8uLi8uLi90aGVtZS1wYXBpbGFydC9wbF9QTC9pbWFnZXMvaWNvbnMvcGRmLWdyZWVuLnN2ZycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjN0I5NjQzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tYWxsLWNhdGVnb3JpZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBjb2x1bW5zOiBhdXRvIDE7XG4gICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGNvbHVtbnM6IGF1dG8gMTtcbiAgICAgICAgICAgICAgICBjb2x1bW4tZ2FwOiAwO1xuICAgICAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzIge1xuICAgICAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmKy4jeyRuc31uYXZpZ2F0aW9uX19leHRyYXMge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tbm8tY2hpbGRyZW4ge1xuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxcmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgZm9udC1zaXplOiAkbmF2aWdhdGlvbl9mb250LXNpemU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkbmF2aWdhdGlvbl9saXN0cy1tYXJrLXBhcmVudC1vbi1ob3Zlcikge1xuXG4gICAgICAgICAgICAmLS1hY3RpdmUsXG4gICAgICAgICAgICAmLmFjdGl2ZSxcbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICY6bm90KFtkYXRhLWNhdGVnb3J5LWlkZW50aWZpZXI9J2FsbC1jYXRlZ29yaWVzJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgJi0tbWFpbiB7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgICAgICYuYWN0aXZlLFxuICAgICAgICAgICAgICAgICYjeyRyb290fV9faXRlbS0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAgICAgJjpub3QoW2RhdGEtY2F0ZWdvcnktaWRlbnRpZmllcj0nYWxsLWNhdGVnb3JpZXMnXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNmVtO1xuXG4gICAgICAgICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgID4jeyRyb290fV9fbGluazpub3QoI3skcm9vdH1fX2xpbmstLXdpdGgtaWNvbikge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgPiN7JHJvb3R9X19saW5rIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgICAgICAgICAvKiBUaGVvcmV0aWNhbGx5IEZGIDIwKyAqL1xuICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAvKiBJRSAxMSAqL1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1sZXZlbCB7XG4gICAgICAgICAgICAmXzEge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgLy8gUHJldmVudHMgZWxlbWVudCBicmVha2luZyBiZWNhdXNlIG9mIGNvbHVtbiBsYXlvdXQuXG4gICAgICAgICAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICAgICAgICAgIC8qIFRoZW9yZXRpY2FsbHkgRkYgMjArICovXG4gICAgICAgICAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZC1jb2x1bW47XG4gICAgICAgICAgICAgICAgLyogSUUgMTEgKi9cbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMXJlbSA0cmVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRuYXZpZ2F0aW9uX2xpbmstY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiAkbmF2aWdhdGlvbl9saW5rLWNvbG9yLWhvdmVyO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbGluay1pY29uLS1zdmcge1xuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkbmF2aWdhdGlvbl9saW5rLWljb24tY29sb3ItLWhvdmVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1haW4ge1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjZlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxldmVsIHtcbiAgICAgICAgICAgICZfMSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG5hdmlnYXRpb25fbGluay1ib3JkZXI7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2x2bC0xLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl8yIHtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRuYXZpZ2F0aW9uX2x2bC0yLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXdpdGgtaWNvbiB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRuYXZpZ2F0aW9uX2xpbmstaWNvbi1zaXplLXdpZHRoICsgMXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbi13cmFwcGVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHdpZHRoOiAkbmF2aWdhdGlvbl9saW5rLWljb24tc2l6ZS13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0O1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuOGVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgIGhlaWdodDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtd2lkdGg7XG4gICAgICAgICAgICB3aWR0aDogJG5hdmlnYXRpb25fbGluay1pY29uLXNpemUtaGVpZ2h0O1xuXG4gICAgICAgICAgICAjeyRyb290fV9fbGluay0tY2F0ZWdvcnkgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tc3ZnIHtcbiAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJG5hdmlnYXRpb25fbGluay1pY29uLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtcHJvZHVjdHMtcXR5IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vU3R5bGluZyBmb3IgY2F0ZWdvcmllcyBsZXZlbF8xIHdpdGggbm8gc3ViY2F0ZWdvcmllc1xuICAgICN7JHJvb3R9X19pdGVtLS1uby1jaGlsZHJlbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgI3skcm9vdH1fX2l0ZW0tLW5vLWNoaWxkcmVuPiN7JHJvb3R9X19saW5rLS1sZXZlbF8xIHtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4xMmVtO1xuICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICBwYWRkaW5nOiAwLjllbSAxLjVlbTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19mbHlvdXQge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQ6ICRuYXZpZ2F0aW9uX2ZseW91dC1iYWNrZ3JvdW5kO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICAgIHotaW5kZXg6IDEwMDE7IC8vIE1ha2Ugc3VyZSBmbHlvdXRzIGNvdmVyIGdhbGxlcnkgbmF2LlxuICAgICAgICBib3gtc2hhZG93OiAkbmF2aWdhdGlvbl9mbHlvdXQtYm94LXNoYWRvdztcbiAgICAgICAgbWFyZ2luLXRvcDogLTFweDtcblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIH1cblxuICAgICAgICBzdmcge1xuICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBAc3VwcG9ydHMgKC1tcy1pbWUtYWxpZ246IGF1dG8pIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVFBQUFDMUhBd0NBQUFBQzBsRVFWUjQybU5rWUFBQUFBWUFBakNCMEM4QUFBQUFTVVZPUks1Q1lJST0pO1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2V4dHJhcyB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmX190ZWFzZXIge1xuICAgICAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxZW0gMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuXG4gICAgICAgICYtLWhpZGRlbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdHMge1xuICAgICAgICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gICAgICAgIG1pbi13aWR0aDogMjRyZW07XG5cbiAgICAgICAgJi1oZWFkZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBjb2xvcjogJG5hdmlnYXRpb25fbGluay1jb2xvcjtcbiAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkbmF2aWdhdGlvbl9saW5rLWJvcmRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuMWVtIDEuMDVlbSAxLjU1ZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOWVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1saXN0IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJvZHVjdCB7XG4gICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpbygkd2lkdGg6ICR0aWxlX2FzcGVjdC1yYXRpby13aWR0aCxcbiAgICAgICAgICAgICRoZWlnaHQ6ICR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQsXG4gICAgICAgICAgICAkY2hpbGRDbGFzczogI3skbnN9cHJvZHVjdC10aWxlLFxuICAgICAgICAgICAgJGF1dG9wb3NpdGlvbjogdHJ1ZSk7XG4gICAgfVxuXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgei1pbmRleDogMTAwMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAzcmVtLCAwKTtcbiAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjE1cyBsaW5lYXIsXG4gICAgICAgICAgICB0cmFuc2Zvcm0gMC4ycyBjdWJpYy1iZXppZXIoMCwgMC45NywgMC4wNSwgMC45OSk7XG5cbiAgICAgICAgQGlmICRuYXZpZ2F0aW9uX292ZXJsYXktc2hvdyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aXNpYmxlIHtcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuODtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucGFnZS1wcmludCAmIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICBAc3VwcG9ydHMgKGRpc3BsYXk6IGdyaWQpIGFuZCAoZ3JpZC1hdXRvLWZsb3c6IHJvdykge1xuICAgICAgICAmX19wcm9kdWN0IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGFzcGVjdC1yYXRpby1yZXNldCgkY2hpbGRDbGFzczogI3skbnN9cHJvZHVjdC10aWxlLFxuICAgICAgICAgICAgICAgICRhdXRvcG9zaXRpb246IHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qXG4gKiBGdW5jdGlvbiB0byBnZXQgdmFsdWUgZnJvbSBhIGxpc3Qgb2YgdmFsdWVzLCBiYXNlZCBvbiBzaWRlXG4gKiBAcGFyYW0ge3N0cmluZ30gJHZhcmlhYmxlOiB2YXJpYWJsZSB3aXRoIGEgbGlzdCBvZiB2YWx1ZXMgKGxpa2UgcGFkZGluZ3MsIG1hcmdpbnMgZXRjLik7XG4gKiBAcGFyYW0ge3N0cmluZ30gJHNpZGU6IHNpZGUgKHVwIC8gcmlnaHQgLyBkb3duIC8gbGVmdCkgZm9yIHdoaWNoIHdlIHdhbnQgdG8gZ2V0IHZhbHVlXG4gKiBFeGFtcGxlOlxuICogJGNvbXBvbmVudF9wYWRkaW5nOiAxcmVtIDJyZW0gM3JlbTtcbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAncmlnaHQnKSAvLyAycmVtXG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ2JvdHRvbScpIC8vIDNyZW1cbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1uZXdzbGV0dGVyIHtcbiAgbWFyZ2luOiAwO1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1uZXdzbGV0dGVyIHtcbiAgICAgIHBhZGRpbmc6IDAgMS41cmVtOyB9IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2Zvcm0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAzNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1uZXdzbGV0dGVyX19mb3JtIHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2Zvcm0td3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWJhc2lzOiAxMDAlOyB9XG4gIC5jcy1uZXdzbGV0dGVyX19maWVsZCB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfVxuICAuY3MtbmV3c2xldHRlcl9faW5wdXQge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2xhYmVsIHtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gIC5jcy1uZXdzbGV0dGVyX19hY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGhlaWdodDogNHJlbTsgfVxuICAuY3MtbmV3c2xldHRlcl9fYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMCAhaW1wb3J0YW50OyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiAqLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1uZXdzbGV0dGVyX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtbmV3c2xldHRlcl9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1uZXdzbGV0dGVyX19idXR0b25bZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMC4xZW07XG4gICAgd2lkdGg6IDAuOGVtO1xuICAgIGhlaWdodDogMC44ZW07XG4gICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5cbiRpbnB1dF9wYWRkaW5nOiAwLjcxNWVtIDFlbSAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYWx0byAhZGVmYXVsdDtcbiRpbnB1dF9ib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlICFkZWZhdWx0O1xuXG4kbmV3c2xldHRlcl9tYXJnaW46IDAgIWRlZmF1bHQ7XG4kbmV3c2xldHRlcl9wYWRkaW5nOiAwIDEuNXJlbSAhZGVmYXVsdDtcblxuJG5ld3NsZXR0ZXJfZm9ybS1tYXgtd2lkdGg6IDM0cmVtICFkZWZhdWx0O1xuJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ6IDRyZW0gIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXBvczogJ29ubHktaWNvbicgIWRlZmF1bHQ7XG5cbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLXdpZHRoOiAwLjhlbSAhZGVmYXVsdDtcbiRuZXdzbGV0dGVyX2J1dHRvbi1pY29uLWhlaWdodDogMC44ZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31uZXdzbGV0dGVyIHtcbiAgICBtYXJnaW46ICRuZXdzbGV0dGVyX21hcmdpbjtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBwYWRkaW5nOiAkbmV3c2xldHRlcl9wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRuZXdzbGV0dGVyX2Zvcm0tbWF4LXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZm9ybS13cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICB9XG5cbiAgICAmX19maWVsZCB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9faW5wdXQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICB9XG5cbiAgICAmX19hY3Rpb25zIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfZm9ybS1oZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmX19idXR0b24taWNvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1pY29uKFxuICAgICAgICAgICAgJHR5cGU6ICRuZXdzbGV0dGVyX2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkbmV3c2xldHRlcl9idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICB3aWR0aDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24td2lkdGg7XG4gICAgICAgIGhlaWdodDogJG5ld3NsZXR0ZXJfYnV0dG9uLWljb24taGVpZ2h0O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBvdmVyZmxvdy15OiBzY3JvbGw7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0IHtcbiAgICB6LWluZGV4OiAxO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIG92ZXJmbG93LXg6IGhpZGRlbjtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzA6bGFzdC1jaGlsZCBhW2RhdGEtY2F0ZWdvcnktaWQ9XCIyOTNcIl0ge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMDpsYXN0LWNoaWxkIGFbZGF0YS1jYXRlZ29yeS1pZD1cIjI5M1wiXTo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiLi4vLi4vLi4vdGhlbWUtcGFwaWxhcnQvcGxfUEwvaW1hZ2VzL2ljb25zL3BkZi5zdmdcIik7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDE0cHg7XG4gICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cHg7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1jdXJyZW50LCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWN1cnJlbnQge1xuICAgICAgb3ZlcmZsb3cteTogYXV0bzsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tY3VycmVudCA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3Qge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgbGVmdDogMTA1JTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHRvcDogMDtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgdG9wOiAxNCU7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWFjdGl2ZSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTA1JSk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSArIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbSB7XG4gICAgICBib3JkZXItdG9wOiAxcHggI2RjZGNkYyBzb2xpZDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faXRlbTpsYXN0LW9mLXR5cGUge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4ICNkY2RjZGMgc29saWQ7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2l0ZW0tLXdpdGgtaWNvbiAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX3RleHQge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG4gIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcGFkZGluZzogMi40cmVtIDJyZW07XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbms6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluazpob3ZlciB7XG4gICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbiwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLW91dCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1pbjp2aXNpdGVkLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0LCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0OnZpc2l0ZWQge1xuICAgICAgICBjb2xvcjogIzdlNTdjMjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluOmhvdmVyLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0OmhvdmVyIHtcbiAgICAgICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1zaWduLWluOmhvdmVyIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0OmhvdmVyIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiBwYXRoIHtcbiAgICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24tb3V0IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICAgIHdpZHRoOiAyLjNyZW07XG4gICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXNpZ24taW4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tc2lnbi1vdXQgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgge1xuICAgICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXBhcmVudCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24sIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9faWNvbiB7XG4gICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgaGVpZ2h0OiAwLjFyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXBhcmVudCB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiA1cmVtOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXBhcmVudCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2ljb24ge1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcmV0dXJuIHtcbiAgICAgIHBhZGRpbmctbGVmdDogNXJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1yZXR1cm4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICAgICAgbGVmdDogMnJlbTsgfVxuICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDpiZWZvcmUsIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB3aWR0aDogMC43cmVtO1xuICAgICAgICBoZWlnaHQ6IDAuMXJlbTtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHRbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjODg4OyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLW5leHQ6YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTM1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIDAsIDApO1xuICAgICAgICByaWdodDogMnJlbTsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDJyZW07XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDUwJSwgMCwgMCk7IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tbmV4dFthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTpiZWZvcmUge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgyMjVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1uZXh0W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IDJyZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXYge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDAuN3JlbTtcbiAgICAgICAgaGVpZ2h0OiAwLjFyZW07XG4gICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2W2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCg1MCUsIC01MCUsIDApO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoNTAlLCA1MCUsIDApOyB9XG4gICAgICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpbmstLXByZXZbYXJpYS1leHBhbmRlZD1cInRydWVcIl06YmVmb3JlIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IGF1dG87IH1cbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluay0tcHJldlthcmlhLWV4cGFuZGVkPVwidHJ1ZVwiXTphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC0xMzVkZWcpIHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgICAgICByaWdodDogMDsgfVxuICAgICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmJlZm9yZSwgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saW5rLS1wcmV2OmFmdGVyIHtcbiAgICAgICAgbGVmdDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb24gLmFjdGl2ZSA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGluayB7XG4gICAgY29sb3I6ICM3ZTU3YzI7IH1cbiAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gICAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2NhdGVnb3J5LWljb24td3JhcHBlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHdpZHRoOiAycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2NhdGVnb3J5LWljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgbWF4LWhlaWdodDogMnJlbTsgfVxuICAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX3NlYXJjaCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDIuNHJlbSAycmVtO1xuICAgIGJvcmRlci1ib3R0b206IDFweCAjZGNkY2RjIHNvbGlkOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9nZXQtdmFsdWUtZnJvbS1saXN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYmFja2dyb3VuZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2JhY2tncm91bmQgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faXRlbS1ib3JkZXI6IDFweCAkY29sb3JfYWx0byBzb2xpZCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX1RoZW1lLFxuICAgIGhlYWRlcixcbiAgICBtb2JpbGVfc2VhcmNoX2luX29mZmNhbnZhc1xuKSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkLWxpc3QtbGV2ZWwxLXRvcC1wb3NpdGlvbjogMTQlICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1jb2xvciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXNpZ24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yOiAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nOiAyLjRyZW0gMnJlbSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tdXNlLXBzZXVkb2ljb24taW5zdGVhZC1zdmc6IHRydWUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi13aWR0aDogMC43cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24taGVpZ2h0OiAwLjFyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tY29sb3ItLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvciAhZGVmYXVsdDtcbi8vIEJlbG93IG5hdmlnYXRpb25faWNvbiBzZXR0aW5ncyBhcmUgdXNhYmxlIG9ubHkgaWYgeW91IHVzZSBwc2V1ZG9pY29uXG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi10eXBlOiAnYXJyb3cnICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dDogJ3JpZ2h0JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWRlZmF1bHQtLXByZXY6ICdsZWZ0JyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWFuaW1hdGlvbjogZmFsc2UgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1hcnJvdy1sZWZ0LW9mZnNldDogMCAhZGVmYXVsdDtcblxuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXNpZ24tY29sb3IgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi4jeyRuc31vZmZjYW52YXMtbmF2aWdhdGlvbiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9iYWNrZ3JvdW5kO1xuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtaW4td2lkdGg6IDEwMCU7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYmFja2dyb3VuZDtcbiAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICYtLWxldmVsXzB7XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgYVtkYXRhLWNhdGVnb3J5LWlkPVwiMjkzXCJde1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy4uLy4uLy4uL3RoZW1lLXBhcGlsYXJ0L3BsX1BML2ltYWdlcy9pY29ucy9wZGYuc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWxfMCxcbiAgICAgICAgJi0tbGV2ZWxfMSxcbiAgICAgICAgJi0tY3VycmVudCxcbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGV2ZWxfMCxcbiAgICAgICAgJi0tbGV2ZWxfMSxcbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tY3VycmVudCB7XG4gICAgICAgICAgICA+ICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICA+ICN7JHJvb3R9X19saXN0IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJiAmIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIGxlZnQ6IDEwNSU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcblxuICAgICAgICAgICAgLy8gUHJldmVudCBvdmVybGFwcGluZyBvZiBzZWFyY2ggb24gbmF2aWdhdGlvbiBsaXN0XG4gICAgICAgICAgICBAaWYgKCRvZmZjYW52YXMtbmF2aWdhdGlvbl9zZWFyY2gtZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX3NlYXJjaC1lbmFibGVkLWxpc3QtbGV2ZWwxLXRvcC1wb3NpdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTEwNSUpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJiArICYge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2l0ZW0tYm9yZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0td2l0aC1pY29uIHtcbiAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHBhZGRpbmc6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmc7XG4gICAgICAgIGZvbnQtc2l6ZTogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC1zaXplO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXdlaWdodDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstZm9udC13ZWlnaHQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAmLFxuICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgY29sb3I6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLWNvbG9yO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstY29sb3ItLWhvdmVyO1xuXG4gICAgICAgICAgICBAaWYgbm90KCRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXVzZS1wc2V1ZG9pY29uLWluc3RlYWQtc3ZnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yLS1ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNpZ24taW4sXG4gICAgICAgICYtLXNpZ24tb3V0IHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDVyZW07XG5cbiAgICAgICAgICAgICYsXG4gICAgICAgICAgICAmOnZpc2l0ZWQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1zaWduLWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstc2lnbi1jb2xvci0taG92ZXI7XG5cbiAgICAgICAgICAgICAgICAjeyRyb290fV9faWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tc2lnbi1jb2xvci0taG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMi4zcmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMi43cmVtO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgICAgICAgICBmaWxsOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1zaWduLWNvbG9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBhcmVudCxcbiAgICAgICAgJi0tcmV0dXJuIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGg7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1oZWlnaHQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXJlbnQge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNXJlbTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJldHVybiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVyZW07XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19pY29uIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBnZXQtdmFsdWUtZnJvbS1saXN0KFxuICAgICAgICAgICAgICAgICAgICAkb2ZmY2FudmFzLW5hdmlnYXRpb25fbGluay1wYWRkaW5nLFxuICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi11c2UtcHNldWRvaWNvbi1pbnN0ZWFkLXN2Zykge1xuICAgICAgICAgICAgJi0tbmV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tbmV4dCxcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGdldC12YWx1ZS1mcm9tLWxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmlnaHQnXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi0tcHJldiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRhbmltYXRlZDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYW5pbWF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAkYXJyb3ctZGVmYXVsdDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tZGVmYXVsdC0tcHJldixcbiAgICAgICAgICAgICAgICAgICAgJGFycm93LW9mZnNldDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24tYXJyb3ctbGVmdC1vZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgICR3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2ljb24td2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvcixcbiAgICAgICAgICAgICAgICAgICAgJGNvbG9yLWhvdmVyOiAkb2ZmY2FudmFzLW5hdmlnYXRpb25faWNvbi1jb2xvci0taG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICRwb3NpdGlvbi1zaWRlLW9mZnNldDogYXV0b1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICRvZmZjYW52YXMtbmF2aWdhdGlvbl9saW5rLXBhZGRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aXZlIHtcbiAgICAgICAgPiAjeyRyb290fV9fbGluayB7XG4gICAgICAgICAgICBjb2xvcjogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstYWN0aXZlLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGw6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pY29uLWNvbG9yO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbi13cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2NhdGVnb3J5LWljb25fbWF4LWhlaWdodDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAkb2ZmY2FudmFzLW5hdmlnYXRpb25fY2F0ZWdvcnktaWNvbl9tYXJnaW4tcmlnaHQ7XG4gICAgfVxuXG4gICAgJl9fY2F0ZWdvcnktaWNvbiB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICAgIG1heC1oZWlnaHQ6ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9jYXRlZ29yeS1pY29uX21heC1oZWlnaHQ7XG4gICAgfVxuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICAmX19zZWFyY2gge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgcGFkZGluZzogJG9mZmNhbnZhcy1uYXZpZ2F0aW9uX2xpbmstcGFkZGluZztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206ICRvZmZjYW52YXMtbmF2aWdhdGlvbl9pdGVtLWJvcmRlcjtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoXG4gICAgICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLWhlYWRlci11c2VyLW5hdiB7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAxLjVyZW07XG4gIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjMuMTE1ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDAgMC43cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IHtcbiAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICBmbGV4OiAxIDEgMjUlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0ge1xuICAgICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tc2VhcmNoIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudCBhIHtcbiAgICAgIG1heC13aWR0aDogMTYwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQgYSB7XG4gICAgICAgICAgbWluLXdpZHRoOiAxNDVweDsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXYgLm1pbmljYXJ0LXdyYXBwZXIgPiAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rIHtcbiAgICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4OyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWV2ZW5seTtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAwcmVtOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbms6aG92ZXIgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbiBwYXRoIHtcbiAgICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3ZlciAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgICAgIGNvbG9yOiAjNGQyYzkxOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fbGluay0tc2VhcmNoIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmstLXNlYXJjaCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDsgfSB9XG4gICAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19saW5rLS1zZWFyY2g6aG92ZXIge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faWNvbi13cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMHB4OyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2ljb24ge1xuICAgIHdpZHRoOiAyLjZyZW07XG4gICAgaGVpZ2h0OiAyLjZyZW07XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19pY29uIHBhdGgge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3MtaGVhZGVyLXVzZXItbmF2X19sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVuc2V0O1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLXRvcDogMC4zcmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBtYXJnaW46IC0xcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgLyogMSAqLyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgY2xpcDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLXRvcDogMC4zcmVtOyB9IH1cbiAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMCAwLjlyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBoZWlnaHQ6IDEuOGVtO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMxMWEwOTk7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIHRyYW5zaXRpb246IHRvcCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKSwgbGVmdCAwLjlzIGN1YmljLWJlemllcigwLjQyLCAwLjMxLCAwLjM0LCAwLjkzKTsgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS1taW5pY2FydCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmNiNzM5O1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0tY29tcGFyZSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTFhMDk5O1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0taGF2ZS1pdGVtcyB7XG4gICAgICBvcGFjaXR5OiAxOyB9XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLWVtcHR5OjpiZWZvcmUge1xuICAgICAgY29udGVudDogJzAnO1xuICAgICAgd2lkdGg6IDA7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtY2xvbmVkIHtcbiAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgIHotaW5kZXg6IDEyMDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45MyksIGxlZnQgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci0td2lzaGxpc3QtYW5pbWF0aW5nIHtcbiAgICAgIGFuaW1hdGlvbjogbW92ZS1xdHktYmFkZ2UgMS4ycyBjdWJpYy1iZXppZXIoMC40MiwgMC4zMSwgMC4zNCwgMC45Myk7XG4gICAgICB0b3A6IDAuNXJlbTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAxLjNyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0LWFuaW1hdGluZyB7XG4gICAgICAgICAgdG9wOiAzLjVyZW07IH0gfVxuXG5Aa2V5ZnJhbWVzIG1vdmUtcXR5LWJhZGdlIHtcbiAgMCUge1xuICAgIG9wYWNpdHk6IDE7IH1cbiAgMTUlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIDg1JSB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuNSk7IH1cbiAgOTUlIHtcbiAgICBvcGFjaXR5OiAxOyB9XG4gIDEwMCUge1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxKTsgfSB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLXNwYW4ge1xuICAgIG1pbi13aWR0aDogMWNoOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXYgLm1pbmljYXJ0LWFtb3VudC13cmFwcGVyID4gLm1pbmljYXJ0LWFtb3VudC10ZXh0IHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1pbi13aWR0aDogNDBweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgICAuY3MtaGVhZGVyLXVzZXItbmF2IC5taW5pY2FydC1hbW91bnQtd3JhcHBlciA+IC5taW5pY2FydC1hbW91bnQtdGV4dCAubWluaWNhcnQtYW1vdW50LXRleHQtLWVtcHR5OjpiZWZvcmUge1xuICAgICAgY29udGVudDogJzAsMDAgesWCJzsgfVxuXG4uY3Mtb2ZmY2FudmFzLXRvZ2dsZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgYm9yZGVyOiAwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgcGFkZGluZzogMS41cmVtO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xuICB3aWR0aDogNS41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZSwgLmNzLW9mZmNhbnZhcy10b2dnbGU6YWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZTpmb2N1cywgLmNzLW9mZmNhbnZhcy10b2dnbGU6aG92ZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7IH1cbiAgLmNzLW9mZmNhbnZhcy10b2dnbGU6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDApO1xuICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdDsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmFjdGl2ZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTpmb2N1cywgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZTpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogIzdlNTdjMjsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlOmFmdGVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7IH1cbiAgICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZS0tYWN0aXZlIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmJlZm9yZSwgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YWZ0ZXIge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOyB9XG4gIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjpiZWZvcmUsIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIHRyYW5zZm9ybSAwLjNzOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlLCAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlOyB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb246YmVmb3JlIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMjUwJSk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC0yNTAlLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19pY29uOmFmdGVyIHtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTAlKTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX2ljb24ge1xuICAgICAgICBkaXNwbGF5OiBibG9jazsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGUtLWFjdGl2ZSAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9faWNvbiB7XG4gICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fdGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogMC41cmVtO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMC44cmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4zczsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX3RleHQge1xuICAgICAgICBib3R0b206IDJyZW07IH0gfVxuICAuY3Mtb2ZmY2FudmFzLXRvZ2dsZV9fbWVudS1zZWFyY2gtaWNvbiB7XG4gICAgZmlsbDogIzdlNTdjMjtcbiAgICB3aWR0aDogMi42cmVtO1xuICAgIGhlaWdodDogMi42cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlX19tZW51LXNlYXJjaC1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgLmNzLW9mZmNhbnZhcy10b2dnbGVfX21lbnUtc2VhcmNoLWljb246aG92ZXIge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgIC5jcy1vZmZjYW52YXMtdG9nZ2xlLS1hY3RpdmUgLmNzLW9mZmNhbnZhcy10b2dnbGVfX21lbnUtc2VhcmNoLWljb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9oZWFkZXIvdXNlci1uYXYvdXNlci1uYXYnO1xuXG4kb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvci1hY3RpdmU6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lOiAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV9hbmltYXRpb24tZGlyZWN0aW9uOiAnbGVmdCcgIWRlZmF1bHQ7IC8vICdsZWZ0JyBvciAncmlnaHQnXG4kb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yLWFjdGl2ZTogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJG9mZmNhbnZhcy10b2dnbGVfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuLiN7JG5zfW9mZmNhbnZhcy10b2dnbGUge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICAgIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICgkZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcykge1xuICAgICAgICB3aWR0aDogNS41cmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgJz49I3skZ2xvYmFsX2hlYWRlci1tb2JpbGUtc2VhcmNoLWluLW9mZmNhbnZhcy1icmVha3BvaW50fSdcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYsXG4gICAgJjphY3RpdmUsXG4gICAgJjpmb2N1cyxcbiAgICAmOmhvdmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1iYWNrZ3JvdW5kLWFjdGl2ZTtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQGlmICgkb2ZmY2FudmFzLXRvZ2dsZV9hbmltYXRpb24tZGlyZWN0aW9uID09ICdyaWdodCcpIHtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogcmlnaHQ7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGxlZnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1hY3RpdmUge1xuICAgICAgICAmLFxuICAgICAgICAmOmFjdGl2ZSxcbiAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLWJhY2tncm91bmQtYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX2ljb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1ZGVnKTtcblxuICAgICAgICAgICAgJixcbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhcy10b2dnbGVfaWNvbi1jb2xvci1hY3RpdmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YmVmb3JlLFxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDAuMnJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tY29sb3I7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRvZmZjYW52YXMtdG9nZ2xlX2ljb24tdHJhbnNpdGlvbi10aW1lLFxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybSAkb2ZmY2FudmFzLXRvZ2dsZV9pY29uLXRyYW5zaXRpb24tdGltZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTI1MCUpO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtMjUwJSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyNTAlKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMjUwJSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYShcbiAgICAgICAgICAgICAgICAnPj0jeyRnbG9iYWxfaGVhZGVyLW1vYmlsZS1zZWFyY2gtaW4tb2ZmY2FudmFzLWJyZWFrcG9pbnR9J1xuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBib3R0b206IDAuNXJlbTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogJG9mZmNhbnZhcy10b2dnbGVfdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIHRyYW5zaXRpb246IGNvbG9yIDAuM3M7XG5cbiAgICAgICAgI3skcm9vdH0tLWFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGNvbG9yOiAkb2ZmY2FudmFzLXRvZ2dsZV90ZXh0LWNvbG9yLWFjdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMpIHtcbiAgICAgICAgJl9fbWVudS1zZWFyY2gtaWNvbiB7XG4gICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3I7XG4gICAgICAgICAgICB3aWR0aDogMi42cmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyLjZyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKFxuICAgICAgICAgICAgICAgICc+PSN7JGdsb2JhbF9oZWFkZXItbW9iaWxlLXNlYXJjaC1pbi1vZmZjYW52YXMtYnJlYWtwb2ludH0nXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkaGVhZGVyLXVzZXItbmF2X2ljb24tY29sb3ItaG92ZXI7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICN7JHJvb3R9LS1hY3RpdmUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1vZmZjYW52YXMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDMwMDsgfVxuICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgdG9wOiA1cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlciwgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICAgIHRvcDogOC4zcmVtO1xuICAgICAgICBib3R0b206IDA7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIsIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fZHJhd2VyLCAuY3Mtb2ZmY2FudmFzLS1taW5pLWNhcnQgLmNzLW9mZmNhbnZhc19fb3ZlcmxheSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRvcDogMDsgfVxuICAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDVyZW0pO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcywgdHJhbnNmb3JtIDFtcyAwLjNzO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMCk7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1vZmZjYW52YXNfX292ZXJsYXkge1xuICAgICAgICBoZWlnaHQ6IDEwMCU7IH0gfVxuICAgIC5jcy1vZmZjYW52YXMtLW1pbmktY2FydCAuY3Mtb2ZmY2FudmFzX19vdmVybGF5IHtcbiAgICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3Mtb2ZmY2FudmFzIC5vdmVybGF5LS12aXNpYmxlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC43KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3M7IH1cbiAgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogNDByZW07IH1cbiAgICAuY3Mtb2ZmY2FudmFzLS1zaWRlX2xlZnQgLmNzLW9mZmNhbnZhc19fZHJhd2VyIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICByaWdodDogYXV0bztcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApOyB9XG4gICAgLmNzLW9mZmNhbnZhcy0tc2lkZV9yaWdodCAuY3Mtb2ZmY2FudmFzX19kcmF3ZXIge1xuICAgICAgbGVmdDogYXV0bztcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgxMDUlLCAwLCAwKTsgfVxuICAgIC5jcy1vZmZjYW52YXNfX2RyYXdlci0tbmF2aWdhdGlvbiB7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgcmlnaHQ6IGF1dG87XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC0xMDUlLCAwLCAwKTsgfVxuICAuY3Mtb2ZmY2FudmFzIC5kcmF3ZXItLXZpc2libGUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCkgIWltcG9ydGFudDsgfVxuICAuY3Mtb2ZmY2FudmFzX19zcGlubmVyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDZyZW07XG4gICAgaGVpZ2h0OiA2cmVtO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDIwJTtcbiAgICBtYXJnaW4tbGVmdDogLTNyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJG9mZmNhbnZhc192ZXJ0aWNhbC1vZmZzZXQtbW9iaWxlOiAkZ2xvYmFsX2hlYWRlci1oZWlnaHQtbW9iaWxlICFkZWZhdWx0OyAvLyBNb3ZlIGJlbG93IHRoZSBuYXZpZ2F0aW9uIG9uIG1vYmlsZS5cbiRvZmZjYW52YXNfdG9wLW9mZnNldC10YWJsZXQ6ICRnbG9iYWxfaGVhZGVyLWhlaWdodC10YWJsZXQgIWRlZmF1bHQ7IC8vIE1vdmUgYmVsb3cgdGhlIG5hdmlnYXRpb24gb24gdGFibGV0LlxuJG9mZmNhbnZhc190cmFuc2l0aW9uLXRpbWU6ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSAhZGVmYXVsdDtcblxuJG9mZmNhbnZhc19vdmVybGF5LWJhY2tncm91bmQ6ICRtb2RhbHNfb3ZlcmxheS1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kb2ZmY2FudmFzX2RyYXdlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRvZmZjYW52YXNfc3Bpbm5lci1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9b2ZmY2FudmFzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAzMDA7XG5cbiAgICAmX19kcmF3ZXIsXG4gICAgJl9fb3ZlcmxheSB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG5cbiAgICAgICAgQGlmICgkZ2xvYmFsX2hlYWRlci1pcy1ib3R0b20tb24tbW9iaWxlKSB7XG4gICAgICAgICAgICBib3R0b206ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICB0b3A6ICRvZmZjYW52YXNfdmVydGljYWwtb2Zmc2V0LW1vYmlsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHRvcDogJG9mZmNhbnZhc190b3Atb2Zmc2V0LXRhYmxldDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tbWluaS1jYXJ0ICYge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gI3skb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGV9KTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIC8vIFNldHRpbmcgMW1zIGJlY2F1c2UgMCBkb2Vzbid0IHNlZW0gdG8gd29yayBhbmQgd2UgbmVlZCBzZWFtbGVzcyB0cmFuc2l0aW9uIGZvciBzY2FsZSBoZXJlLlxuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lLFxuICAgICAgICAgICAgdHJhbnNmb3JtIDFtcyAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9LS1taW5pLWNhcnQgJiB7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3ZlcmxheSB7XG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRvZmZjYW52YXNfb3ZlcmxheS1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkb2ZmY2FudmFzX3RyYW5zaXRpb24tdGltZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2RyYXdlciB7XG4gICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgYmFja2dyb3VuZDogJG9mZmNhbnZhc19kcmF3ZXItYmFja2dyb3VuZDtcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtICRvZmZjYW52YXNfdHJhbnNpdGlvbi10aW1lO1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDQwcmVtO1xuXG4gICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItaXMtYm90dG9tLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgYm90dG9tOiAkb2ZmY2FudmFzX3ZlcnRpY2FsLW9mZnNldC1tb2JpbGU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc2lkZV9sZWZ0ICYge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtMTA1JSwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fS0tc2lkZV9yaWdodCAmIHtcbiAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1uYXZpZ2F0aW9uIHtcbiAgICAgICAgICAgIEBpZiAoJGdsb2JhbF9oZWFkZXItbW9iaWxlLW1lbnUtaXMtcmlnaHQpIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTA1JSwgMCwgMCk7XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTEwNSUsIDAsIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmRyYXdlciB7XG4gICAgICAgICYtLXZpc2libGUge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3Bpbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDZyZW07XG4gICAgICAgIGhlaWdodDogNnJlbTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDIwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0zcmVtO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1wYWdlLWJvdHRvbSB7XG4gIHBhZGRpbmc6IDEuNXJlbSAwO1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcGFnZS1ib3R0b20ge1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcGFnZS1ib3R0b20ge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH0gfVxuICAucGFnZS1wcmludCAuY3MtcGFnZS1ib3R0b20ge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXBhZ2UtYm90dG9tX19pbWFnZSB7XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19pbWFnZS0tY2lyY2xlIHtcbiAgICAgIHdpZHRoOiA0LjdyZW07XG4gICAgICBoZWlnaHQ6IDQuN3JlbTtcbiAgICAgIG1pbi13aWR0aDogNC43cmVtO1xuICAgICAgbWluLWhlaWdodDogNC43cmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDAuNnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fdGV4dC0tc21hbGwge1xuICAgICAgZm9udC1zaXplOiAxcmVtOyB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgZmxleC1zaHJpbms6IDE7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cCB7XG4gICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1iYXNpczogNDAlO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMS41cmVtOyB9XG4gICAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0taW5mbyAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1pbmZvIHtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAxNyU7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfVxuICAgICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLWluZm8gLmNzLXBhZ2UtYm90dG9tX190ZXh0IHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTsgfSB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tc2hpcHBpbmcge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1iYXNpczogNTUlO1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogMS41cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXNoaXBwaW5nIHtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAzMyU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgIGZsZXgtYmFzaXM6IDUwJTsgfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCAuY3MtcGFnZS1ib3R0b21fX3RleHQge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgZmxleC1iYXNpczogMTAwJTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1wYXltZW50IHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZywgLmNzLXBhZ2UtYm90dG9tX19ncm91cC0tcGF5bWVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgICAuY3MtcGFnZS1ib3R0b21fX2dyb3VwLS1zaGlwcGluZzpiZWZvcmUsIC5jcy1wYWdlLWJvdHRvbV9fZ3JvdXAtLXBheW1lbnQ6YmVmb3JlIHtcbiAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogMXJlbTtcbiAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICB3aWR0aDogMC4ycmVtO1xuICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZGNkY2RjO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfSB9XG4gIC5jcy1wYWdlLWJvdHRvbV9fbG9nbyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXNocmluazogMTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvIHtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0taGVybWVzIHtcbiAgICAgIHdpZHRoOiAxMi4ycmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1kaGwge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgIG1pbi13aWR0aDogOC42cmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4OyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1wYXlwYWwge1xuICAgICAgd2lkdGg6IDYuMnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tdmlzYSB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAycmVtO1xuICAgICAgbWluLXdpZHRoOiA1LjVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLW1hc3RlcmNhcmQge1xuICAgICAgd2lkdGg6IDMuM3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0ta2xhcm5hLXNvZm9ydCB7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXgtaGVpZ2h0OiAyLjVyZW07XG4gICAgICBtaW4taGVpZ2h0OiAyLjVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWtsYXJuYSB7XG4gICAgICB3aWR0aDogN3JlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tZ2xzIHtcbiAgICAgIHdpZHRoOiA1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvLS1naXJvcGF5IHtcbiAgICAgIHdpZHRoOiA0LjhyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLWVjIHtcbiAgICAgIHdpZHRoOiAxLjhyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXBheWRpcmVrdCB7XG4gICAgICB3aWR0aDogNnJlbTsgfVxuICAgIC5jcy1wYWdlLWJvdHRvbV9fbG9nby0tbGFzdHNjaHJpZnQge1xuICAgICAgd2lkdGg6IDYuMTVyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXZvcmthc3NlIHtcbiAgICAgIHdpZHRoOiA4LjNyZW07IH1cbiAgICAuY3MtcGFnZS1ib3R0b21fX2xvZ28tLXJlY2hudW5nIHtcbiAgICAgIHdpZHRoOiA2LjE1cmVtOyB9XG4gICAgLmNzLXBhZ2UtYm90dG9tX19sb2dvOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLmNzLWNvbnRhaW5lci0tcGFnZS1ib3R0b20ge1xuICBtYXgtd2lkdGg6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHBhZ2UtYm90dG9tX3RleHQtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRwYWdlLWJvdHRvbV9kaXZpZGVyLWNvbG9yOiAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcblxuLiN7JG5zfXBhZ2UtYm90dG9tIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHBhZGRpbmc6IDEuNXJlbSAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIH1cblxuICAgIC5wYWdlLXByaW50ICYge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICB3aWR0aDogYXV0bztcblxuICAgICAgICAmLS1jaXJjbGUge1xuICAgICAgICAgICAgd2lkdGg6IDQuN3JlbTtcbiAgICAgICAgICAgIGhlaWdodDogNC43cmVtO1xuICAgICAgICAgICAgbWluLXdpZHRoOiA0LjdyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0LjdyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgICAgIGNvbG9yOiAkcGFnZS1ib3R0b21fdGV4dC1jb2xvcjtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjZyZW07XG5cbiAgICAgICAgJi0tc21hbGwge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZ3JvdXAge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAxO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmZvIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDQwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAyMHJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAxNyU7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9X190ZXh0IHtcbiAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDU1JTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGZsZXgtYmFzaXM6IDMzJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1wYXltZW50IHtcbiAgICAgICAgICAgIGZsZXgtYmFzaXM6IDUwJTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgI3skcm9vdH1fX3RleHQge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1iYXNpczogMTAwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXNoaXBwaW5nLFxuICAgICAgICAmLS1wYXltZW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnZS1ib3R0b21fZGl2aWRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ28ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXNocmluazogMTtcbiAgICAgICAgaGVpZ2h0OiAycmVtO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oZXJtZXMge1xuICAgICAgICAgICAgd2lkdGg6IDEyLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kaGwge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMnJlbTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogOC42cmVtO1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGF5cGFsIHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAmLS12aXNhIHtcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDJyZW07XG4gICAgICAgICAgICBtaW4td2lkdGg6IDUuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW1hc3RlcmNhcmQge1xuICAgICAgICAgICAgd2lkdGg6IDMuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWtsYXJuYS1zb2ZvcnQge1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMi41cmVtO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMi41cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0ta2xhcm5hIHtcbiAgICAgICAgICAgIHdpZHRoOiA3cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2xzIHtcbiAgICAgICAgICAgIHdpZHRoOiA1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZ2lyb3BheSB7XG4gICAgICAgICAgICB3aWR0aDogNC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZWMge1xuICAgICAgICAgICAgd2lkdGg6IDEuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBheWRpcmVrdCB7XG4gICAgICAgICAgICB3aWR0aDogNnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhc3RzY2hyaWZ0IHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tdm9ya2Fzc2Uge1xuICAgICAgICAgICAgd2lkdGg6IDguM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLXJlY2hudW5nIHtcbiAgICAgICAgICAgIHdpZHRoOiA2LjE1cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1wYWdlLWJvdHRvbSB7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnBhZ2UtdGl0bGUge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXdlaWdodDogNjAwOyB9XG4gIC5wYWdlLXRpdGxlX19oZWFkbGluZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAucGFnZS10aXRsZV9fc3BhbiB7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBwYWRkaW5nOiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdHlwb2dyYXBoeS9taXhpbic7XG5cbiRwYWdlLXRpdGxlX2ZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0xICFkZWZhdWx0O1xuJHBhZ2UtdGl0bGVfdGV4dC10cmFuc2Zvcm06IG5vbmUgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9mb250LXdlaWdodDogNjAwICFkZWZhdWx0O1xuXG4kcGFnZS10aXRsZV9zcGFuLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9zcGFuLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kcGFnZS10aXRsZV9zcGFuLXBhZGRpbmc6IDAgIWRlZmF1bHQ7XG5cbi5wYWdlLXRpdGxlIHtcbiAgICBAaW5jbHVkZSBoZWFkbGluZSgkbGV2ZWw6ICRwYWdlLXRpdGxlX2ZvbnQtc2l6ZSk7XG4gICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06ICRwYWdlLXRpdGxlX3RleHQtdHJhbnNmb3JtO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnZS10aXRsZV9mb250LXdlaWdodDtcblxuICAgICZfX2hlYWRsaW5lIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgIH1cblxuICAgICZfX3NwYW4ge1xuICAgICAgICBjb2xvcjogJHBhZ2UtdGl0bGVfc3Bhbi1jb2xvcjtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwYWdlLXRpdGxlX3NwYW4tZm9udC13ZWlnaHQ7XG4gICAgICAgIHBhZGRpbmc6ICRwYWdlLXRpdGxlX3NwYW4tcGFkZGluZztcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogQmVjYXVzZSBwcmljZS1ib3ggaXMgdXNlZCBpbiBtdWx0aXBsZSBjb21wb25lbnRzIGxpa2UgdGlsZSwgYnV5Ym94IGV0YyxcbiAqIHdlIG5lZWQgdG8gbW92ZSB2YXJpYWJsZXMgdG8gc2VwYXJhdGUgZmlsZSB0byBoYXZlIHBvc3NpYmlsaXR5IHRvIGluY2x1ZGUgdGhlbVxuICogaW4gZWFjaCBjb21wb25lbnQgd2l0aG91dCBnZW5lcmF0ZSBwcmljZS1ib3ggY29tcG9uZW50IHN0eWxlcyBtdWx0aXBsZSB0aW1lc1xuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5wcmljZS1ib3gge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLnByaWNlLWJveCAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgZm9udC1zaXplOiAwLjY1cmVtO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoOyB9XG4gIC5wcmljZS1ib3ggLm9sZC1wcmljZS5uby1kaXNwbGF5IHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNGVtOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlIHtcbiAgICBjb2xvcjogIzdlNTdjMjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wcmljZS1ib3ggLnByaWNlLWxhYmVsIHtcbiAgICAgIGNvbG9yOiAjMzI0ZGNmO1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICBtYXJnaW46IDAgMC4zcmVtIDAuM3JlbSAwOyB9XG4gICAgICAucHJpY2UtYm94IC5wcmljZS1sYWJlbDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAgICAgYm9keVxucFxuLnByaWNlLWJveCAucHJpY2UtbGFiZWwge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gIC5wcmljZS1ib3ggLm5vcm1hbC1wcmljZSAucHJpY2UtbGFiZWwge1xuICAgIGRpc3BsYXk6IGlubGluZTsgfVxuICAucHJpY2UtYm94IC5wcmljZS13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20sXG4gIC5wcmljZS1ib3ggLnByaWNlLXRvIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tID4gLnByaWNlLWNvbnRhaW5lcixcbiAgICAucHJpY2UtYm94IC5wcmljZS10byA+IC5wcmljZS1jb250YWluZXIge1xuICAgICAgZm9udC1zaXplOiAxLjFyZW07IH1cbiAgICAucHJpY2UtYm94IC5wcmljZS1mcm9tIC5wcmljZS1sYWJlbCxcbiAgICAucHJpY2UtYm94IC5wcmljZS10byAucHJpY2UtbGFiZWwge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgcGFkZGluZzogMDsgfVxuICAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IGxpbmUtdGhyb3VnaDtcbiAgICBjb2xvcjogI2E4YjFiNztcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNzAwOyB9XG4gIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgY29sb3I6ICNlNDFmMTI7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlLmFjdGl2ZSAucHJpY2Uge1xuICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWZyb20ge1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAuY3MtcHJpY2UtLXBkcF9kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3g6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lci5wcmljZS1maW5hbF9wcmljZTpub3QoOm9ubHktY2hpbGQpIC5wcmljZSB7XG4gICAgY29sb3I6ICNlNDFmMTI7IH1cblxuLmNzLWJ1bmRsZS1ib3hfX2FkZCAucHJpY2UtYXMtY29uZmlndXJlZCB7XG4gIG1hcmdpbjogMXJlbSAwIDA7IH1cblxuLm1pbmltYWwtcHJpY2UtbGluayB7XG4gIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAubWluaW1hbC1wcmljZS1saW5rOmFmdGVyIHtcbiAgICBjb2xvcjogIzMyNGRjZjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjb250ZW50OiAnLSc7XG4gICAgcmlnaHQ6IC0xcmVtO1xuICAgIHRvcDogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxuXG4kY29uZmlndXJhYmxlLXByb2R1Y3RzLXNob3ctZnJvbS1wcmljZS1sYWJlbDogdHJ1ZSAhZGVmYXVsdDtcblxuLnByaWNlLWJveCB7XG4gICAgJHJvb3Q6ICY7XG4gICAgQGluY2x1ZGUgcHJpY2VCb3goKTtcblxuICAgIC5wcmljZSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgJi1sYWJlbCB7XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9sYWJlbC1jb2xvcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfbGFiZWwtZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgbWFyZ2luOiAwICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luICRwcmljZS1ib3hfbGFiZWwtbWFyZ2luIDA7XG5cbiAgICAgICAgICAgIEBpZiAoJHByaWNlLWJveF9sYWJlbC1kaXNwbGF5LWNvbG9uKSB7XG4gICAgICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICc6JztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJvZHk6bm90KC5wYWdlLXByb2R1Y3QtYnVuZGxlLCAucGFnZS1wcm9kdWN0LWdyb3VwZWQpXG4gICAgICAgICAgICAgICAgcDpub3QoLnByaWNlLWZyb20sIC5wcmljZS10bylcbiAgICAgICAgICAgICAgICAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkY29uZmlndXJhYmxlLXByb2R1Y3RzLXNob3ctZnJvbS1wcmljZS1sYWJlbCB7XG4gICAgICAgIC5ub3JtYWwtcHJpY2Uge1xuICAgICAgICAgICAgLnByaWNlLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20sXG4gICAgLnByaWNlLXRvIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgPiAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByaWNlLWJveF9sYWJlbC1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAucHJpY2UtbGFiZWwge1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkcHJpY2UtYm94X29sZC1wcmljZS10ZXh0LWRlY29yYXRpb247XG4gICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9vbGQtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfb2xkLXByaWNlLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICBmb250LXNpemU6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHByaWNlLWJveF9zcGVjaWFsLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByaWNlLWZyb20ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRwcmljZS1ib3hfc3BhY2UtYmV0d2Vlbi1wcmljZXM7XG4gICAgfVxuXG4gICAgLiN7JG5zfXByaWNlLS1wZHBfZGFpbHlkZWFsLWNvdW50ZG93biAmIHtcbiAgICAgICAgJjpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wcmljZS1jb250YWluZXIucHJpY2UtZmluYWxfcHJpY2Uge1xuICAgICAgICAmOm5vdCg6b25seS1jaGlsZCkgLnByaWNlIHtcbiAgICAgICAgICAgIGNvbG9yOiAkcHJpY2UtYm94X3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi4jeyRuc31idW5kbGUtYm94X19hZGQge1xuICAgIC5wcmljZS1hcy1jb25maWd1cmVkIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICB9XG59XG5cbi5taW5pbWFsLXByaWNlLWxpbmsge1xuICAgIG1hcmdpbi10b3A6IDAgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29sb3I6ICRwcmljZS1ib3hfbm9ybWFsLXByaWNlLWNvbG9yO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29udGVudDogJy0nO1xuICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cbn1cbiIsIi8vIHByaWNlLWJveFxuLy8gVGhpcyBjb21wb25lbnQgaXMgcmVzcG9uc2libGUgZm9yIHN0eWxpbmcgcHJpY2VzIGJ5IG1hcmt1cCBwcm92aWRlZCBieSBNYWdlbnRvMlxuLy9cbi8vIFNlZSBodHRwOi8vd2FycHNwaXJlLmNvbS9rc3MvIGZvciBkb2N1bWVudGF0aW9uIGd1aWRlbGluZXMuXG4vLyBWZXJzaW9uIDAuMC4xXG5AbWl4aW4gcHJpY2VCb3goKSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gICAgLnByaWNlIHtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub2xkLXByaWNlIHtcbiAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42NXJlbTtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT2xkIHByaWNlIHNob3VsZCBub3QgYmUgZGlzcGxheWVkIGZvciBwcmljZXMgd2hlcmUgbm9ybWFsIHByaWNlIGlzIFwiQXMgbG93IGFzIHtwcmljZX1cIlxuICAgICAgICAmLm5vLWRpc3BsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC40ZW07XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qXG4gKiBCZWNhdXNlIHByaWNlLWJveCBpcyB1c2VkIGluIG11bHRpcGxlIGNvbXBvbmVudHMgbGlrZSB0aWxlLCBidXlib3ggZXRjLFxuICogd2UgbmVlZCB0byBtb3ZlIHZhcmlhYmxlcyB0byBzZXBhcmF0ZSBmaWxlIHRvIGhhdmUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSB0aGVtXG4gKiBpbiBlYWNoIGNvbXBvbmVudCB3aXRob3V0IGdlbmVyYXRlIHByaWNlLWJveCBjb21wb25lbnQgc3R5bGVzIG11bHRpcGxlIHRpbWVzXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4gKiBTdHJpbmcgdG8gbnVtYmVyIGNvbnZlcnRlclxuICogaHR0cHM6Ly93d3cuc2Fzc21laXN0ZXIuY29tL2dpc3QvOWZhMTlkMjU0ODY0ZjMzZDRhODBcbiAqIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuICogQHBhcmFtIHtTdHJpbmcgfCBOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGJlIHBhcnNlZFxuICogQHJldHVybiB7TnVtYmVyfVxuICovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5jcy1wcm9kdWN0LXRpbGUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xuICBhc3BlY3QtcmF0aW86IDMwMC80MDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlIHtcbiAgICAgIGFzcGVjdC1yYXRpbzogMzAwLzM1MDsgfSB9XG4gIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAuY3MtcHJvZHVjdC10aWxlOmhvdmVyIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7IH0gfVxuICAuY3MtcHJvZHVjdC10aWxlLS1jbGlja2FibGU6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAuY3MtcHJvZHVjdC10aWxlLS1oaWRkZW4gLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuICFpbXBvcnRhbnQ7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fY29udGFpbmVyIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsIHtcbiAgICBwYWRkaW5nOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fdGh1bWJuYWlsLWxpbmsge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3RodW1ibmFpbC1saW5rOmhvdmVyLCAuY3MtcHJvZHVjdC10aWxlX190aHVtYm5haWwtbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2ZpZ3VyZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWFnZSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtYXgtaGVpZ2h0OiAxMDAlO1xuICAgIG1hcmdpbjogYXV0bzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19pbWcge1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWF4LWhlaWdodDogMTAwJTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2ltZ1tzcmMqPSdwbGFjZWhvbGRlciddIHtcbiAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19jb250ZW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbWFpbiB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSA0cmVtO1xuICAgIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdiYWRnZXMgYWRkdG8nICdzd2F0Y2hlcyBzd2F0Y2hlcycgJ2JyYW5kIGJyYW5kJyAnbmFtZSBuYW1lJyAnZGVzY3JpcHRpb24gZGVzY3JpcHRpb24nICdwcmljZSBwcmljZScgJ3JldmlldyAgYWRkdG9jYXJ0JyAnc3RvY2sgYWRkdG9jYXJ0JyAnd2lzaGxpc3QtaWNvbnMgd2lzaGxpc3QtaWNvbnMnOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3N3YXRjaGVzIHtcbiAgICBncmlkLWFyZWE6IHN3YXRjaGVzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luOiAycmVtIDAgMXJlbTtcbiAgICBtaW4taGVpZ2h0OiAyLjZyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyxcbiAgICAuY3MtcHJvZHVjdC10aWxlX19zd2F0Y2hlcyAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kIHtcbiAgICBncmlkLWFyZWE6IGJyYW5kO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JyYW5kLS1lbXB0eSB7XG4gICAgICBoZWlnaHQ6IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYnJhbmQtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZSB7XG4gICAgZ3JpZC1hcmVhOiBuYW1lO1xuICAgIGxpbmUtaGVpZ2h0OiAycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDQuMnJlbTtcbiAgICBtYXJnaW46IDAgMCAwLjVyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19uYW1lLWxpbmsge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIC8qIGRpc2FibGVkIGJlY2F1c2UgYXV0b3ByZWZpeGVyIGNhbid0IGJ1aWxkIHRoaXMgKi9cbiAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDtcbiAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgLXdlYmtpdC1saW5lLWNsYW1wOiAyO1xuICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICBsaW5lLWNsYW1wOiAyO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAvKiBzdHlsZWxpbnQtZW5hYmxlIHByb3BlcnR5LW5vLXZlbmRvci1wcmVmaXggKi8gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX25hbWUtbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fbmFtZS1saW5rOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIHtcbiAgICBncmlkLWFyZWE6IHByaWNlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2Uge1xuICAgICAgICBvcmRlcjogLTE7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlIC5wcmljZS1ib3ggLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19wcmljZSAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcHJpY2UtLWRhaWx5ZGVhbC1jb3VudGRvd24gLnByaWNlLWJveDpub3QoLnByaWNlLWZpbmFsX3ByaWNlX3dpdGhvdXRfZGFpbHlfZGVhbCkge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX3ByaWNlLS1kYWlseWRlYWwtY291bnRkb3duIC5wcmljZS1ib3gucHJpY2UtYm94LS12aXNpYmxlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3IHtcbiAgICBncmlkLWFyZWE6IHJldmlldztcbiAgICBtYXJnaW46IDFyZW0gMCAwOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fcmV2aWV3OmVtcHR5IHtcbiAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50OyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3N0b2NrIHtcbiAgICBncmlkLWFyZWE6IHN0b2NrO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS4xcmVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zdG9jay0taW4ge1xuICAgICAgY29sb3I6ICMzN2I4NDE7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19zdG9jay0tb3V0IHtcbiAgICAgIGNvbG9yOiAjZTQxZjEyOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCB7XG4gICAgZ3JpZC1hcmVhOiBhZGR0b2NhcnQ7XG4gICAgbWFyZ2luOiAwIDAgMDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19idXR0b24ge1xuICAgICAgbWluLWhlaWdodDogNHJlbTsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2J1dHRvbjo6YmVmb3JlLCAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fYnV0dG9uOjphZnRlciB7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAvKiAxICovIH1cbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fYnV0dG9uLWxhYmVsLCAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fc3VjY2Vzcy1sYWJlbCwgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2ZhaWwtbGFiZWwge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgICAgIGhlaWdodDogMXB4O1xuICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMXB4O1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIC8qIDEgKi8gfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbiwgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uIHtcbiAgICAgIHJpZ2h0OiBhdXRvO1xuICAgICAgbGVmdDogNTAlO1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGU6bm90KC5jcy1wcm9kdWN0LXRpbGUtLWxpc3QpIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvY2FydC5jcy1hZGR0b2NhcnQtLWxvYWRpbmcgLmNzLWFkZHRvY2FydF9fbG9hZGluZyB7XG4gICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpIHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApOyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZTpub3QoLmNzLXByb2R1Y3QtdGlsZS0tbGlzdCkgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0LmNzLWFkZHRvY2FydC0tbG9hZGluZyAuY3MtYWRkdG9jYXJ0X19idXR0b24taWNvbixcbiAgICAuY3MtcHJvZHVjdC10aWxlOm5vdCguY3MtcHJvZHVjdC10aWxlLS1saXN0KSAuY3MtcHJvZHVjdC10aWxlX19hZGR0b2NhcnQuY3MtYWRkdG9jYXJ0LS1sb2FkaW5nIC5jcy1hZGR0b2NhcnRfX2NvbmZpZ3VyZS1pY29uIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgd2lkdGg6IDRyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYWRkdG8ge1xuICAgIGdyaWQtYXJlYTogYWRkdG87XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWFyZ2luOiAxcmVtIDAgMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxLjVyZW07XG4gICAgcmlnaHQ6IDEuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluayB7XG4gICAgICBmb250LXNpemU6IDEuM3JlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdCAuY3MtcHJvZHVjdC10aWxlX19hZGR0byxcbiAgICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1wcm9kdWN0cy1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19hZGR0bzplbXB0eSB7XG4gICAgICBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2FkZHRvIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluay1sYWJlbCB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICBtYXJnaW46IC0xcHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHdpZHRoOiAxcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgLyogMSAqLyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBncmlkLWFyZWE6IGJhZGdlcztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMjtcbiAgICB0b3A6IDJyZW07XG4gICAgbGVmdDogMnJlbTtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZzogMCAwLjdyZW07XG4gICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBtaW4taGVpZ2h0OiAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBncmlkLWFyZWE6IGJhZGdlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiAyMy4xMjVlbSkgYW5kIChtYXgtd2lkdGg6IDI5Ljk5ZW0pIHtcbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2Uge1xuICAgIGZvbnQtc2l6ZTogMC45cmVtOyB9IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2U0MWYxMjtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRpc2NvdW50IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tZGlzY291bnQgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzExYTA5OTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tbmV3IC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICBsaW5lLWhlaWdodDogbm9ybWFsOyB9XG4gICAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1uZXcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuNXJlbTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICMzN2I4NDE7XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWZyZWUtc2hpcHBpbmcgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1mcmVlLXNoaXBwaW5nIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS0tcG9wdWxhciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdiODQxO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAvKipcbiAgICAgICAgICAgICogSW5pdGlhbGx5IGhpZGUgcG9wdWxhciBiYWRnZSBvbiBjYXRlZ29yeSBwcm9kdWN0cyBsaXN0LiBcbiAgICAgICAgICAgICogVGhlIGxvZ2ljIGZvciBzaG93aW5nIHRoZSBiYWRnZSBpcyBwbGFjZWQgaW4gbWFnZXN1aXRlLXByb2R1Y3QtcG9zaXRpdmUtaW5kaWNhdG9ycy92aWV3L2Zyb250ZW5kL3dlYi9qcy90aWxlLWJhZGdlLXNob3dlci5qc1xuICAgICAgICAgICAgKi8gfVxuICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLXBvcHVsYXIgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCArIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgICAgIC5wcm9kdWN0LWl0ZW1zIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1wb3B1bGFyOm5vdCgudmlzaWJsZSkge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9XG4gICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTQxZjEyO1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLS1kYWlseWRlYWwgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7IH1cbiAgICAgICAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0ICsgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtLWRhaWx5ZGVhbCAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtOyB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlLS1ncmlkIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLWl0ZW0ge1xuICAgICAgbWFyZ2luOiAwIDAgMC41cmVtO1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS1pdGVtOmVtcHR5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fYmFkZ2UtdGV4dCB7XG4gICAgbGluZS1oZWlnaHQ6IG5vcm1hbDsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2JhZGdlLXRleHQgKyAuY3MtcHJvZHVjdC10aWxlX19iYWRnZS10ZXh0IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwLjVyZW07IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fZGFpbHlkZWFsIHtcbiAgICBncmlkLWFyZWE6IGRhaWx5ZGVhbDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fcXR5IHtcbiAgICBncmlkLWFyZWE6IHF0eTtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIHdpZHRoOiAxMXJlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAuY3MtcHJvZHVjdC10aWxlX19kZXNjcmlwdGlvbiB7XG4gICAgZ3JpZC1hcmVhOiBkZXNjcmlwdGlvbjtcbiAgICBmb250LXNpemU6IDEuM3JlbTtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbWFyZ2luOiAwIDAgMXJlbTsgfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1yZW1vdmUtaWNvbiB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxLjVyZW07IH1cbiAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5jcy1wcm9kdWN0LXRpbGVfX3dpc2hsaXN0LXJlbW92ZS1pY29uLWltYWdlIHtcbiAgICB3aWR0aDogMS4ycmVtO1xuICAgIGhlaWdodDogMS4ycmVtO1xuICAgIGZpbGw6ICM4ODg7IH1cbiAgLmNzLXByb2R1Y3QtdGlsZV9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtcHJvZHVjdC10aWxlX193aXNobGlzdC1hY3Rpb25zIHtcbiAgICBncmlkLWFyZWE6IHdpc2hsaXN0LWljb25zO1xuICAgIG1hcmdpbjogMXJlbSAwIDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IH1cbiIsIi8qKlxuICogU3RyaW5nIHRvIG51bWJlciBjb252ZXJ0ZXJcbiAqIGh0dHBzOi8vd3d3LnNhc3NtZWlzdGVyLmNvbS9naXN0LzlmYTE5ZDI1NDg2NGYzM2Q0YTgwXG4gKiBAYXV0aG9yIEh1Z28gR2lyYXVkZWxcbiAqIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbiAqIEByZXR1cm4ge051bWJlcn1cbiAqL1xuXG5AZnVuY3Rpb24gdG8tbnVtYmVyKCR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgICBAcmV0dXJuICR2YWx1ZTtcbiAgICB9IEBlbHNlIGlmIHR5cGUtb2YoJHZhbHVlKSAhPSAnc3RyaW5nJyB7XG4gICAgICAgICRfOiBsb2coJ1ZhbHVlIGZvciBgdG8tbnVtYmVyYCBzaG91bGQgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcuJyk7XG4gICAgfVxuXG4gICAgJHJlc3VsdDogMDtcbiAgICAkZGlnaXRzOiAwO1xuICAgICRtaW51czogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSkgPT0gJy0nO1xuICAgICRudW1iZXJzOiAoXG4gICAgICAgICcwJzogMCxcbiAgICAgICAgJzEnOiAxLFxuICAgICAgICAnMic6IDIsXG4gICAgICAgICczJzogMyxcbiAgICAgICAgJzQnOiA0LFxuICAgICAgICAnNSc6IDUsXG4gICAgICAgICc2JzogNixcbiAgICAgICAgJzcnOiA3LFxuICAgICAgICAnOCc6IDgsXG4gICAgICAgICc5JzogOSxcbiAgICApO1xuXG4gICAgQGZvciAkaSBmcm9tIGlmKCRtaW51cywgMiwgMSkgdGhyb3VnaCBzdHItbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgICAgIEBpZiBub3QoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgQHJldHVybiB0by1sZW5ndGgoXG4gICAgICAgICAgICAgICAgaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksXG4gICAgICAgICAgICAgICAgc3RyLXNsaWNlKCR2YWx1ZSwgJGkpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgICAgICAgJGRpZ2l0czogMTtcbiAgICAgICAgfSBAZWxzZSBpZiAoJGRpZ2l0cyA9PSAwKSB7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAkZGlnaXRzOiAkZGlnaXRzICogMTA7XG4gICAgICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgbWFwLWdldCgkbnVtYmVycywgJGNoYXJhY3RlcikgLyAkZGlnaXRzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wcmljZS1ib3gvdmFyaWFibGVzLnNjc3MnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ3V0aWxzL3N0cmluZy10by1udW1iZXInO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5AaW1wb3J0ICd1dGlscy92aXN1YWxseS1oaWRkZW4nO1xuXG4vLyBHZW5lcmFsXG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXI6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2dlbmVyYWwtZm9udC1zaXplOiAxLjhyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2hvdmVyLWFuaW1hdGlvbjogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfaG92ZXItYW5pbWF0aW9uLWJyZWFrcG9pbnQ6ICc+PWxhcHRvcCcgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3BhZGRpbmc6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC10aWxlLWd1dHRlciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYWxpZ25tZW50OiBjZW50ZXIgIWRlZmF1bHQ7IC8vIGxlZnQgfCBjZW50ZXIgfCByaWdodFxuJHByb2R1Y3QtdGlsZV9pbml0aWFsLWJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS04MDAgIWRlZmF1bHQ7XG5cbi8vIElmIHByb2R1Y3QgdGlsZSBkZXNpZ24gaGFzIGEgaGlkZGVuIGJvdHRvbSBwYXJ0IHRoYXQgaXMgc2xpZGVkIHVwIG9uIGhvdmVyIHNldCBib3RoIGJlbG93IHZhcmlhYmxlc1xuJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyOiBmYWxzZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1oZWlnaHQ6ICdhdXRvJyAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfY29udGVudC1oZWlnaHQ6ICdhdXRvJyAhZGVmYXVsdDtcblxuLy8gUHJvZHVjdCBuYW1lXG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWF4LWxpbmVzLWRpc3BsYXk6IDIgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5lLWhlaWdodDogMnJlbSAhZGVmYXVsdDsgLy8gTVVTVCBCRSBhIG51bWJlciB2YWx1ZSB3aXRoIHVuaXQsIGNhbm5vdCBiZSAnaW5oZXJpdCdcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3I6ICRjb2xvcl90ZXh0LTkwMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItdmlzaXRlZDogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlcjogJGNvbG9yX3RleHQtOTAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXJnaW46IDAgMCAwLjVyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ6IGxlZnQgIWRlZmF1bHQ7XG5cbi8vIEJhZGdlc1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMtei1pbmRleDogMiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLWRpcmVjdGlvbjogJ3ZlcnRpY2FsJyAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3A6IHRvcCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfYmFkZ2VzLXgtYXNpcy1wb3NpdGlvbi1wcm9wOiBsZWZ0ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXZhbHVlOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXZhbHVlOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9iYWRnZXMtaXRlbS1tYXJnaW46IDAgMCAjeyRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1lbGVtZW50cy1ndXR0ZXIgLyA0fSAhZGVmYXVsdDtcblxuLy8gU3dhdGNoZXNcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ6IDIuNnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtbWFyZ2luOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC8gMn0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3N3YXRjaGVzLWFsaWdubWVudDogJHByb2R1Y3QtdGlsZV9hbGlnbm1lbnQgIWRlZmF1bHQ7XG5cbi8vIEJyYW5kXG4kcHJvZHVjdC10aWxlX2JyYW5kLWZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9icmFuZC1oZWlnaHQ6IDJyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2JyYW5kLWFsaWdubWVudDogbGVmdCAhZGVmYXVsdDtcblxuLy8gUmV2aWV3XG4kcHJvZHVjdC10aWxlX3Jldmlldy1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAhZGVmYXVsdDtcblxuLy8gQWRkdG9cbiRwcm9kdWRjdC10aWxlX2FkZHRvLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0by1tYXJnaW46ICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLWVsZW1lbnRzLWd1dHRlciAvIDJ9IDAgMCAhZGVmYXVsdDtcblxuLy8gUXR5IHN3aWN0aGVyXG4kcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItd2lkdGg6IDExcmVtICFkZWZhdWx0O1xuJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXNwYWNlLWJvdHRvbTogMXJlbSAhZGVmYXVsdDtcblxuLy8gQWRkdG9jYXJ0XG4kcHJvZHVjdC10aWxlX2FkZHRvY2FydC1tYXJnaW46IDAgMCAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtd2lkdGg6IDRyZW0gIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZHRvY2FydC1zaG93LW9ubHktb24taG92ZXI6IHRydWUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBTdG9ja1xuJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU6IDEuM3JlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2staW4tY29sb3I6ICRjb2xvcl9hcHBsZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2stb3V0LW9mLWNvbG9yOiAkY29sb3JfY3JpbXNvbiAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3RvY2stbWFyZ2luOiAwICFkZWZhdWx0O1xuXG4vLyBEYWlseSBEZWFsXG4kcHJvZHVjdC10aWxlX2RhaWx5ZGVhbC1tYXJnaW46IDAgIWRlZmF1bHQ7XG5cbi8vIFdpc2hsaXN0XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWNvbW1lbnQtdmlzaWJsZTogZmFsc2UgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LWNvbW1lbnQtdGV4dGFyZWEtaGVpZ2h0OiA1cmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLW1hcmdpbjogI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC9cbiAyXG59XG5cbjAgMCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtYWN0aW9ucy1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbiAhZGVmYXVsdDtcblxuJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tZmlsbDogJGNvbG9yX2JvcmRlci03MDAgIWRlZmF1bHQ7XG5cbi8vIERlc2NyaXB0aW9uXG4kcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtc2l6ZTogMS4zcmVtICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1saW5lLWhlaWdodDogMS40ICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1jb2xvcjogJGNvbG9yX2RvdmUtZ3JheSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tbWFyZ2luOiAwIDAgI3skcHJvZHVjdC10aWxlX2dlbmVyYWwtZWxlbWVudHMtZ3V0dGVyIC9cbiAyXG59XG5cbiFkZWZhdWx0O1xuXG4vLyBUaHVtYm5haWxcbiRwcm9kdWN0LXRpbGVfbGltaXQtY29udGFpbmVyLXRvLWltYWdlLXNpemU6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBQcmljZXNcbiRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWNvbG9yOiAkY29sb3JfdGV4dC05MDAgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXdlaWdodDogJHByaWNlLWJveF9ub3JtYWwtcHJpY2UtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtY29sb3I6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXNpemU6ICRwcm9kdWN0LXRpbGVfZ2VuZXJhbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ6ICRwcmljZS1ib3hfc3BlY2lhbC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWNvbG9yOiAkcHJpY2UtYm94X29sZC1wcmljZS1jb2xvciAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWZvbnQtd2VpZ2h0OiAkcHJpY2UtYm94X29sZC1wcmljZS1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjogJHByaWNlLWJveF9vbGQtcHJpY2UtdGV4dC1kZWNvcmF0aW9uICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlX3ByaWNlcy1kaXJlY3Rpb246ICdob3Jpem9udGFsJyAhZGVmYXVsdDsgLy8gdmVydGljYWwgb3IgaG9yaXpvbnRhbFxuJHByb2R1Y3QtdGlsZV9wcmljZXMtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHByb2R1Y3QtdGlsZV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcm9kdWN0LXRpbGVfcHJpY2VzLWFsaWdubWVudDogJ2xlZnQnICFkZWZhdWx0O1xuXG4kcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZTogZGVlcC1nZXQoJHZpZXcteG1sLFxuICAgICAgICBtZWRpYSxcbiAgICAgICAgaW1hZ2VzLFxuICAgICAgICBpbWFnZSxcbiAgICAgICAgY2F0ZWdvcnlfcGFnZV9ncmlkKTtcbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLXdpZHRoOiB0by1udW1iZXIoI3ttYXAtZ2V0KCRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLCB3aWR0aCl9KTtcbiRwcm9kdWN0LXRpbGUtbWFnZW50by1jYXRhbG9nLWltYWdlLWhlaWdodDogdG8tbnVtYmVyKCN7bWFwLWdldCgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZSwgaGVpZ2h0KX0pO1xuXG4uI3skbnN9cHJvZHVjdC10aWxlIHtcbiAgICAkcm9vdDogJjtcblxuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHByb2R1Y3QtdGlsZV9nZW5lcmFsLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkcHJvZHVjdC10aWxlX2luaXRpYWwtYm9yZGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWU7XG4gICAgYXNwZWN0LXJhdGlvOiAjeyR0aWxlX2FzcGVjdC1yYXRpby13aWR0aC0tbW9iaWxlfS8jeyR0aWxlX2FzcGVjdC1yYXRpby1oZWlnaHQtLW1vYmlsZX07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogI3skdGlsZV9hc3BlY3QtcmF0aW8td2lkdGh9LyN7JHRpbGVfYXNwZWN0LXJhdGlvLWhlaWdodH07XG4gICAgfVxuXG4gICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHByb2R1Y3QtdGlsZV9ob3Zlci1ib3JkZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1jbGlja2FibGUge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWhpZGRlbiB7XG4gICAgICAgICN7JHJvb3R9X19tYWluIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbiAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZzogJHByb2R1Y3QtdGlsZV9wYWRkaW5nO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9jb250ZW50LWhlaWdodCAhPSdhdXRvJyBhbmQgJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyICkge1xuICAgICAgICAgICAgQG1lZGlhIChob3ZlcjogaG92ZXIpIGFuZCAocG9pbnRlcjogZmluZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAkcHJvZHVjdC10aWxlX2NvbnRlbnQtaGVpZ2h0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fdGh1bWJuYWlsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICB9XG5cbiAgICAmX190aHVtYm5haWwtbGluayB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjp2aXNpdGVkIHtcbiAgICAgICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fZmlndXJlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2xpbWl0LWNvbnRhaW5lci10by1pbWFnZS1zaXplKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICgkcHJvZHVjdC10aWxlLW1hZ2VudG8tY2F0YWxvZy1pbWFnZS13aWR0aCAvIDEwKSAqIDFyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAoJHByb2R1Y3QtdGlsZS1tYWdlbnRvLWNhdGFsb2ctaW1hZ2UtaGVpZ2h0IC8gMTApICogMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG5cbiAgICAmX19pbWcge1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJltzcmMqPSdwbGFjZWhvbGRlciddIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogNzAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyKSB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMiAqICN7JHByb2R1Y3QtdGlsZV9nZW5lcmFsLXRpbGUtZ3V0dGVyfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZ3JpZDtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKSAkcHJvZHVjdC10aWxlX2FkZHRvY2FydC13aWR0aDtcblxuICAgICAgICBncmlkLXRlbXBsYXRlLWFyZWFzOlxuICAgICAgICAgICAgJ2JhZGdlcyBhZGR0bydcbiAgICAgICAgICAgICdzd2F0Y2hlcyBzd2F0Y2hlcydcbiAgICAgICAgICAgICdicmFuZCBicmFuZCdcbiAgICAgICAgICAgICduYW1lIG5hbWUnXG4gICAgICAgICAgICAnZGVzY3JpcHRpb24gZGVzY3JpcHRpb24nXG4gICAgICAgICAgICAncHJpY2UgcHJpY2UnXG4gICAgICAgICAgICAncmV2aWV3ICBhZGR0b2NhcnQnXG4gICAgICAgICAgICAnc3RvY2sgYWRkdG9jYXJ0J1xuICAgICAgICAgICAgJ3dpc2hsaXN0LWljb25zIHdpc2hsaXN0LWljb25zJztcbiAgICB9XG5cbiAgICAmX19zd2F0Y2hlcyB7XG4gICAgICAgIGdyaWQtYXJlYTogc3dhdGNoZXM7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1tYXJnaW47XG4gICAgICAgIG1pbi1oZWlnaHQ6ICRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtY29udGFpbmVyLW1pbi1oZWlnaHQ7XG5cbiAgICAgICAgJixcbiAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfc3dhdGNoZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZV9zd2F0Y2hlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnJhbmQge1xuICAgICAgICBncmlkLWFyZWE6IGJyYW5kO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfYnJhbmQtaGVpZ2h0O1xuICAgICAgICBtYXJnaW4tdG9wOiAkcHJvZHVjdC10aWxlX2dlbmVyYWwtdGlsZS1ndXR0ZXI7XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGVfYnJhbmQtYWxpZ25tZW50O1xuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JyYW5kLXRleHQge1xuICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfYnJhbmQtZm9udC1zaXplO1xuICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9icmFuZC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19uYW1lIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBuYW1lO1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQ7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1mb250LXNpemU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ICogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluZS1oZWlnaHQgKyAwLjI7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbWFyZ2luO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1hbGlnbm1lbnQ7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheSA9PTEpIHtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX25hbWUtbGluayB7XG4gICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1saW5rLWNvbG9yO1xuXG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvciAhPSRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWxpbmstY29sb3ItaG92ZXIgKSB7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBkaXNhYmxlZCBiZWNhdXNlIGF1dG9wcmVmaXhlciBjYW4ndCBidWlsZCB0aGlzICovXG4gICAgICAgIC8qIHN0eWxlbGludC1kaXNhYmxlIHZhbHVlLW5vLXZlbmRvci1wcmVmaXggKi9cbiAgICAgICAgLyogc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5ID4gMSkge1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7XG4gICAgICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgICAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsO1xuICAgICAgICAgICAgLyogYXV0b3ByZWZpeGVyOiBpZ25vcmUgbmV4dCAqL1xuICAgICAgICAgICAgLXdlYmtpdC1saW5lLWNsYW1wOiAkcHJvZHVjdC10aWxlX3Byb2R1Y3QtbmFtZS1tYXgtbGluZXMtZGlzcGxheTtcbiAgICAgICAgICAgIC8qIGF1dG9wcmVmaXhlcjogaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGxpbmUtY2xhbXA6ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLW1heC1saW5lcy1kaXNwbGF5O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogc3R5bGVsaW50LWVuYWJsZSB2YWx1ZS1uby12ZW5kb3ItcHJlZml4ICovXG4gICAgICAgIC8qIHN0eWxlbGludC1lbmFibGUgcHJvcGVydHktbm8tdmVuZG9yLXByZWZpeCAqL1xuXG4gICAgICAgICY6dmlzaXRlZCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci12aXNpdGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay1jb2xvci1ob3ZlcjtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHByb2R1Y3QtdGlsZV9wcm9kdWN0LW5hbWUtbGluay10ZXh0LWRlY29yYXRpb24taG92ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wcmljZSB7XG4gICAgICAgIGdyaWQtYXJlYTogcHJpY2U7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjI7XG5cbiAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX3ByaWNlcy1tYXJnaW47XG5cbiAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRwcm9kdWN0LXRpbGVfbm9ybWFsLXByaWNlLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX25vcm1hbC1wcmljZS1jb2xvcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX29sZC1wcmljZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLWNvbG9yO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246ICRwcm9kdWN0LXRpbGVfb2xkLXByaWNlLXRleHQtZGVjb3JhdGlvbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zcGVjaWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6ICRwcm9kdWN0LXRpbGVfc3BlY2lhbC1wcmljZS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkcHJvZHVjdC10aWxlX3NwZWNpYWwtcHJpY2UtY29sb3I7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWluaW1hbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9kaXNwbGF5LW9sZC1wcmljZS1maXJzdCkge1xuICAgICAgICAgICAgICAgIC5vbGQtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfcHJpY2VzLWRpcmVjdGlvbiA9PSd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICAgICAgLnByaWNlLWZyb20ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIGlmICgkcHJvZHVjdC10aWxlX3ByaWNlcy1hbGlnbm1lbnQgPT0ncmlnaHQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgICAgICAgICAgICAgIC5taW5pbWFsLXByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRwcm9kdWN0LXRpbGVfZGlzcGxheS1vbGQtcHJpY2UtZmlyc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLm1pbmltYWwtcHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPi5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogJHByaWNlLWJveF9zcGFjZS1iZXR3ZWVuLXByaWNlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J2xlZnQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAZWxzZSBpZiAoJHByb2R1Y3QtdGlsZV9wcmljZXMtYWxpZ25tZW50ID09J3JpZ2h0Jykge1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGFpbHlkZWFsLWNvdW50ZG93biAucHJpY2UtYm94IHtcbiAgICAgICAgICAgICY6bm90KC5wcmljZS1maW5hbF9wcmljZV93aXRob3V0X2RhaWx5X2RlYWwpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnByaWNlLWJveC0tdmlzaWJsZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JldmlldyB7XG4gICAgICAgIGdyaWQtYXJlYTogcmV2aWV3O1xuICAgICAgICBtYXJnaW46ICRwcm9kdWN0LXRpbGVfcmV2aWV3LW1hcmdpbjtcblxuICAgICAgICAmOmVtcHR5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3RvY2sge1xuICAgICAgICBncmlkLWFyZWE6IHN0b2NrO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9zdG9jay1mb250LXNpemU7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9zdG9jay1tYXJnaW47XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjFyZW07XG4gICAgICAgIHRleHQtYWxpZ246ICRwcm9kdWN0LXRpbGVfcHJvZHVjdC1uYW1lLWFsaWdubWVudDtcblxuICAgICAgICAmLS1pbiB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zdG9jay1pbi1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW91dCB7XG4gICAgICAgICAgICBjb2xvcjogJHByb2R1Y3QtdGlsZV9zdG9jay1vdXQtb2YtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hZGR0b2NhcnQge1xuICAgICAgICBncmlkLWFyZWE6IGFkZHRvY2FydDtcbiAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1tYXJnaW47XG5cbiAgICAgICAgLy8gQGlmICgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1zaG93LW9ubHktb24taG92ZXIpIHtcbiAgICAgICAgLy8gICAgIEBtZWRpYSAoaG92ZXI6IGhvdmVyKSBhbmQgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgLy8gICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAvLyAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgJHRyYW5zaXRpb24tZGVmYXVsdC10aW1lO1xuXG4gICAgICAgIC8vICAgICAgICAgI3skcm9vdH06aG92ZXIgJiB7XG4gICAgICAgIC8vICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkKSB7XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlOm5vdCguI3skbnN9cHJvZHVjdC10aWxlLS1saXN0KSAmIHtcbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgJl9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDRyZW07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2J1dHRvbi1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgJl9fc3VjY2Vzcy1sYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgJl9fZmFpbC1sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICZfX2J1dHRvbi1pY29uLFxuICAgICAgICAgICAgICAgICAgICAmX19jb25maWd1cmUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogYXV0bztcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGU6bm90KC4jeyRuc31wcm9kdWN0LXRpbGUtLWxpc3QpICYuI3skbnN9YWRkdG9jYXJ0LS1sb2FkaW5nIHtcbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0X19sb2FkaW5nIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKSB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0X19idXR0b24taWNvbixcbiAgICAgICAgICAgICAgICAuI3skbnN9YWRkdG9jYXJ0X19jb25maWd1cmUtaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9hZGR0b2NhcnQtcmVkdWNlZCkge1xuICAgICAgICAgICAgd2lkdGg6ICRwcm9kdWN0LXRpbGVfYWRkdG9jYXJ0LXdpZHRoO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmIG5vdCgkcHJvZHVjdC10aWxlX2FkZHRvY2FydC1yZWR1Y2VkKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2FkZHRvIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBhZGR0bztcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9hZGR0by1tYXJnaW47XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAxLjVyZW07XG4gICAgICAgIHJpZ2h0OiAxLjVyZW07XG5cbiAgICAgICAgLmNzLWxpbmtzLWJsb2NrLWFkZHRvX19saW5rIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJHByb2R1ZGN0LXRpbGVfYWRkdG8tZm9udC1zaXplO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tLXdpc2hsaXN0ICYsXG4gICAgICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQgJiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jcy1saW5rcy1ibG9jay1hZGR0b19fbGluay1sYWJlbCB7XG4gICAgICAgICAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlcyB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcblxuICAgICAgICBncmlkLWFyZWE6IGJhZGdlcztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHotaW5kZXg6ICRwcm9kdWN0LXRpbGVfYmFkZ2VzLXotaW5kZXg7XG4gICAgICAgICN7JHByb2R1Y3QtdGlsZV9iYWRnZXMteS1hc2lzLXBvc2l0aW9uLXByb3B9OiAkcHJvZHVjdC10aWxlX2JhZGdlcy15LWFzaXMtcG9zaXRpb24tdmFsdWU7XG4gICAgICAgICN7JHByb2R1Y3QtdGlsZV9iYWRnZXMteC1hc2lzLXBvc2l0aW9uLXByb3B9OiAkcHJvZHVjdC10aWxlX2JhZGdlcy14LWFzaXMtcG9zaXRpb24tdmFsdWU7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX2JhZGdlcy1kaXJlY3Rpb24gPT0ndmVydGljYWwnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFkZ2Uge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZSgpO1xuXG4gICAgICAgIGdyaWQtYXJlYTogYmFkZ2U7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnLCAnPHBob25lTGcnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDAuOXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRpc2NvdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2Rpc2NvdW50Jyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkaXNjb3VudCcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbmV3IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ25ldycpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbignbmV3Jyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1mcmVlLXNoaXBwaW5nIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3R5cGUoJ2ZyZWUtc2hpcHBpbmcnKTtcblxuICAgICAgICAgICAgI3skcm9vdH1fX2JhZGdlLXRleHQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJhZGdlX3NwYW4oJ2ZyZWUtc2hpcHBpbmcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLXBvcHVsYXIge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgncG9wdWxhcicpO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fYmFkZ2UtdGV4dCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2Vfc3BhbigncG9wdWxhcicpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvKipcbiAgICAgICAgICAgICogSW5pdGlhbGx5IGhpZGUgcG9wdWxhciBiYWRnZSBvbiBjYXRlZ29yeSBwcm9kdWN0cyBsaXN0LiBcbiAgICAgICAgICAgICogVGhlIGxvZ2ljIGZvciBzaG93aW5nIHRoZSBiYWRnZSBpcyBwbGFjZWQgaW4gbWFnZXN1aXRlLXByb2R1Y3QtcG9zaXRpdmUtaW5kaWNhdG9ycy92aWV3L2Zyb250ZW5kL3dlYi9qcy90aWxlLWJhZGdlLXNob3dlci5qc1xuICAgICAgICAgICAgKi9cbiAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW1zICY6bm90KC52aXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLS1kYWlseWRlYWwge1xuICAgICAgICAgICAgQGluY2x1ZGUgYmFkZ2VfdHlwZSgnZGFpbHlkZWFsJyk7XG5cbiAgICAgICAgICAgICN7JHJvb3R9X19iYWRnZS10ZXh0IHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCdkYWlseWRlYWwnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICN7JHJvb3R9LS1ncmlkICYge1xuICAgICAgICAgICAgbWFyZ2luOiAkcHJvZHVjdC10aWxlX2JhZGdlcy1pdGVtLW1hcmdpbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlOyAvLyBTZXQgd2lkdGggZXhwbGljaXRseSB0byBhdm9pZCBFZGdlIGJ1Z3NcbiAgICAgICAgfVxuXG4gICAgICAgICY6ZW1wdHkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JhZGdlLXRleHQge1xuICAgICAgICBAaW5jbHVkZSBiYWRnZV9zcGFuKCk7XG4gICAgfVxuXG4gICAgJl9fZGFpbHlkZWFsIHtcbiAgICAgICAgZ3JpZC1hcmVhOiBkYWlseWRlYWw7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9kYWlseWRlYWwtbWFyZ2luO1xuICAgIH1cblxuICAgICZfX3F0eSB7XG4gICAgICAgIGdyaWQtYXJlYTogcXR5O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkcHJvZHVkY3QtdGlsZV9xdHktc3dpdGNoZXItc3BhY2UtYm90dG9tO1xuICAgICAgICB3aWR0aDogJHByb2R1ZGN0LXRpbGVfcXR5LXN3aXRjaGVyLXdpZHRoO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGdyaWQtYXJlYTogZGVzY3JpcHRpb247XG4gICAgICAgIGZvbnQtc2l6ZTogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkcHJvZHVjdC10aWxlX2Rlc2NyaXB0aW9uLWZvbnQtd2VpZ2h0O1xuICAgICAgICBsaW5lLWhlaWdodDogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1saW5lLWhlaWdodDtcbiAgICAgICAgY29sb3I6ICRwcm9kdWN0LXRpbGVfZGVzY3JpcHRpb24tY29sb3I7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV9kZXNjcmlwdGlvbi1tYXJnaW47XG4gICAgfVxuXG4gICAgJl9fbWFpbi1hZnRlciB7XG4gICAgICAgIEBpZiAoJHByb2R1Y3QtdGlsZV9tYWluLWFmdGVyLXNsaWRlLW9uLWhvdmVyKSB7XG4gICAgICAgICAgICBAbWVkaWEgKGhvdmVyOiBob3ZlcikgYW5kIChwb2ludGVyOiBmaW5lKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0ICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZTtcblxuICAgICAgICAgICAgICAgICN7JHJvb3R9OmhvdmVyICYge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICRwcm9kdWN0LXRpbGVfbWFpbi1hZnRlci1oZWlnaHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtcmVtb3ZlLWljb24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwcm9kdWN0LXRpbGVfd2lzaGxpc3QtcmVtb3ZlLWljb24tYmFja2dyb3VuZDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6ICRwcm9kdWN0LXRpbGVfcGFkZGluZztcblxuICAgICAgICBAbWVkaWEgKHBvaW50ZXI6IGZpbmUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1yZW1vdmUtaWNvbi1pbWFnZSB7XG4gICAgICAgIHdpZHRoOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLXNpemU7XG4gICAgICAgIGhlaWdodDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1yZW1vdmUtaWNvbi1zaXplO1xuICAgICAgICBmaWxsOiAkcHJvZHVjdC10aWxlX3dpc2hsaXN0LXJlbW92ZS1pY29uLWZpbGw7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtY29tbWVudCB7XG4gICAgICAgIEBpZiBub3QoJHByb2R1Y3QtdGlsZV93aXNobGlzdC1jb21tZW50LXZpc2libGUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtYWN0aW9ucyB7XG4gICAgICAgIGdyaWQtYXJlYTogd2lzaGxpc3QtaWNvbnM7XG4gICAgICAgIG1hcmdpbjogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLW1hcmdpbjtcbiAgICAgICAgZGlzcGxheTogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICgkcHJvZHVjdC10aWxlX3dpc2hsaXN0LWFjdGlvbnMtZGlzcGxheSA9PWZsZXgpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHByb2R1Y3QtdGlsZV93aXNobGlzdC1hY3Rpb25zLWp1c3RpZnktY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1wcm9kdWN0cy1saXN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lOyB9XG4gIC5jcy1wcm9kdWN0cy1saXN0X19pdGVtIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXByb2R1Y3RzLWxpc3Q6bm90KC5jcy1wcm9kdWN0cy1saXN0LS1jYXJvdXNlbCkgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0ge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZjBmMGYwO1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtcHJvZHVjdHMtbGlzdDpub3QoLmNzLXByb2R1Y3RzLWxpc3QtLWNhcm91c2VsKSAuY3MtcHJvZHVjdHMtbGlzdF9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW0ge1xuICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmMGYwZjA7XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAuY3MtcHJvZHVjdHMtbGlzdC0tY2Fyb3VzZWwgLmNzLXByb2R1Y3RzLWxpc3RfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDA7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwcm9kdWN0X2xpc3QtaXRlbS1ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci0yMDAgIWRlZmF1bHQ7XG4kcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZzogMCAhZGVmYXVsdDtcbiRwcm9kdWN0X2xpc3QtY2Fyb3VzZWwtYnJlYWtwb2ludDogJz49dGFibGV0JyAhZGVmYXVsdDtcblxuLiN7JG5zfXByb2R1Y3RzLWxpc3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAmOm5vdCgjeyRyb290fS0tY2Fyb3VzZWwpIHtcbiAgICAgICAgI3skcm9vdH1fX2l0ZW0ge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHByb2R1Y3RfbGlzdC1pdGVtLWJvcmRlci1ib3R0b207XG4gICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tY2Fyb3VzZWwge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkcHJvZHVjdF9saXN0LWNhcm91c2VsLWJyZWFrcG9pbnQpIHtcbiAgICAgICAgICAgICN7JHJvb3R9X19pdGVtIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkcHJvZHVjdF9saXN0LWl0ZW0tYm9yZGVyLWJvdHRvbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkcHJvZHVjdF9saXN0LWl0ZW0tcGFkZGluZztcblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4uY3MtcXR5LWluY3JlbWVudCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50LS13aXNobGlzdCB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAuY3MtcXR5LWluY3JlbWVudF9fbGFiZWwge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAvKiAxICovIH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjVzO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIG1pbi13aWR0aDogMmNoO1xuICAgIGZsZXg6IDE7XG4gICAgb3JkZXI6IDI7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBib3gtc2hhZG93OiBub25lOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0OjpwbGFjZWhvbGRlciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICM4ODg7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQsIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1xdHktaW5jcmVtZW50X19pbnB1dDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgICBib3JkZXItY29sb3I6ICNkY2RjZGM7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQubWFnZS1lcnJvciB7XG4gICAgICBib3JkZXItY29sb3I6ICNlNDFmMTIgIWltcG9ydGFudDsgfVxuICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0Lm1hZ2UtZXJyb3IgfiAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAjZTQxZjEyICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQgKyAubWFnZS1lcnJvciB7XG4gICAgICBvcmRlcjogMztcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24ge1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cztcbiAgICBtYXgtd2lkdGg6IDNyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgZmxleDogMSAxIDJyZW07XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOnZpc2l0ZWQsIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246Zm9jdXMge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246dmlzaXRlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uOmZvY3VzICoge1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjpob3ZlciwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b246aG92ZXIgKiwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbjphY3RpdmUgKiB7XG4gICAgICAgIGZpbGw6ICNmZmY7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kZWNyZW1lbnQge1xuICAgICAgb3JkZXI6IDE7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwOyB9XG4gICAgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0taW5jcmVtZW50IHtcbiAgICAgIG9yZGVyOiAyO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICBib3JkZXItbGVmdDogMDsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpob3ZlciwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6dmlzaXRlZCwgLmNzLXF0eS1pbmNyZW1lbnRfX2J1dHRvbi0tZGlzYWJsZWQ6Zm9jdXMge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDsgfVxuICAgICAgICAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZCAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDpob3ZlciAqLCAuY3MtcXR5LWluY3JlbWVudF9fYnV0dG9uLS1kaXNhYmxlZDp2aXNpdGVkICosIC5jcy1xdHktaW5jcmVtZW50X19idXR0b24tLWRpc2FibGVkOmZvY3VzICoge1xuICAgICAgICAgIGZpbGw6ICNkY2RjZGM7IH1cbiAgLmNzLXF0eS1pbmNyZW1lbnRfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH1cbiAgICAuY3MtcXR5LWluY3JlbWVudF9faWNvbi0tZGVjcmVtZW50IHtcbiAgICAgIHdpZHRoOiAxLjJyZW07XG4gICAgICBoZWlnaHQ6IDAuM3JlbTsgfVxuICAgIC5jcy1xdHktaW5jcmVtZW50X19pY29uLS1pbmNyZW1lbnQge1xuICAgICAgd2lkdGg6IDEuMnJlbTtcbiAgICAgIGhlaWdodDogMS4ycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZpZWxkL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5cbiRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlOiB0cnVlICFkZWZhdWx0O1xuXG4kcXR5LWluY3JlbWVudF9pbnB1dC1mb250LXNpemU6IGluaGVyaXQgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC10ZXh0LWFsaWduOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pbnB1dC0tZXJyb3ItYm9yZGVyLWNvbG9yOiAkY29sb3JfZXJyb3ItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWhvdmVyLWJvcmRlcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2J1dHRvbi1wb3NpdGlvbi1vZmZzZXQ6IDFweCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aDogM3JlbSAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXItcmFkaXVzOiAyMDBweCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2J1dHRvbi0taG92ZXItYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcHJpbWFyeS01MDAgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tYW5pbWF0aW9uLXRpbWU6IDAuNXMgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLWJhY2tncm91bmQ6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1ib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXIgIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9idXR0b24tLWRpc2FibGVkLW9wYWNpdHk6IDEgIWRlZmF1bHQ7XG5cbiRxdHktaW5jcmVtZW50X2ljb24tZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDogJGNvbG9yX3RleHQtMjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDogJGNvbG9yX2JhY2tncm91bmQtNjAwICFkZWZhdWx0O1xuJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LXdpZHRoOiAxLjJyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1kZWNyZW1lbnQtaGVpZ2h0OiAwLjNyZW0gIWRlZmF1bHQ7XG4kcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcbiRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC1oZWlnaHQ6ICRxdHktaW5jcmVtZW50X2ljb24tLWluY3JlbWVudC13aWR0aCAhZGVmYXVsdDtcblxuLiN7JG5zfXF0eS1pbmNyZW1lbnQge1xuICAgICRyb290OiAmO1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgQGlmICRxdHktaW5jcmVtZW50LS1pbi13aXNobGlzdF9oaWRlIHtcbiAgICAgICAgJi0td2lzaGxpc3Qge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIHZpc3VhbGx5LWhpZGRlbigpO1xuICAgIH1cblxuICAgICZfX2lucHV0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtaW5wdXQoKTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogJHF0eS1pbmNyZW1lbnRfaW5wdXQtZm9udC1zaXplO1xuICAgICAgICB0ZXh0LWFsaWduOiAkcXR5LWluY3JlbWVudF9pbnB1dC10ZXh0LWFsaWduO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgbWluLXdpZHRoOiAyY2g7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgICAgICAmOmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHF0eS1pbmNyZW1lbnRfaW5wdXQtLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcblxuICAgICAgICAgICAgfiAjeyRyb290fV9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6ICRxdHktaW5jcmVtZW50X2lucHV0LS1lcnJvci1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICsgLm1hZ2UtZXJyb3Ige1xuICAgICAgICAgICAgb3JkZXI6IDM7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lLFxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yICRxdHktaW5jcmVtZW50X2J1dHRvbi1hbmltYXRpb24tdGltZSxcbiAgICAgICAgICAgIGZpbGwgJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWFuaW1hdGlvbi10aW1lO1xuICAgICAgICBtYXgtd2lkdGg6ICRxdHktaW5jcmVtZW50X2J1dHRvbi13aWR0aDtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJhY2tncm91bmQ7XG4gICAgICAgIGZsZXg6IDEgMSAoI3skcXR5LWluY3JlbWVudF9idXR0b24td2lkdGggLSAxfSk7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41ZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRxdHktaW5jcmVtZW50X2J1dHRvbi1ib3JkZXItcmFkaXVzO1xuXG4gICAgICAgICYsXG4gICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcXR5LWluY3JlbWVudF9idXR0b24tYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGJvcmRlcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLWJvcmRlcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi1maWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlcixcbiAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm9yZGVyOiAkcXR5LWluY3JlbWVudF9idXR0b24tLWhvdmVyLWJvcmRlcjtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taG92ZXItZmlsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWRlY3JlbWVudCB7XG4gICAgICAgICAgICBvcmRlcjogMTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgb3JkZXI6IDI7XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi0tZGlzYWJsZWQge1xuICAgICAgICAgICAgb3BhY2l0eTogJHF0eS1pbmNyZW1lbnRfYnV0dG9uLS1kaXNhYmxlZC1vcGFjaXR5O1xuXG4gICAgICAgICAgICAmLFxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6dmlzaXRlZCxcbiAgICAgICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6ICRxdHktaW5jcmVtZW50X2J1dHRvbi0tZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG5cbiAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsbDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGlzYWJsZWQtZmlsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcblxuICAgICAgICAmLS1kZWNyZW1lbnQge1xuICAgICAgICAgICAgd2lkdGg6ICRxdHktaW5jcmVtZW50X2ljb24tLWRlY3JlbWVudC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHF0eS1pbmNyZW1lbnRfaWNvbi0tZGVjcmVtZW50LWhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWluY3JlbWVudCB7XG4gICAgICAgICAgICB3aWR0aDogJHF0eS1pbmNyZW1lbnRfaWNvbi0taW5jcmVtZW50LXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkcXR5LWluY3JlbWVudF9pY29uLS1pbmNyZW1lbnQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4uY3Mtc2VsZWN0IHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgcGFkZGluZy1yaWdodDogMi4zZW07XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIDAgMC4yZW07XG4gIG91dGxpbmU6IDA7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdCwgcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAwLjhlbSB0b3AgNTIlLCAwIDA7XG4gIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7IH1cbiAgLmNzLXNlbGVjdDotbW96LWZvY3VzcmluZywgLmNzLXNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IDAgMCAwICMwMDAgIWltcG9ydGFudDsgfVxuICAuY3Mtc2VsZWN0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXNlbGVjdDpmb2N1czpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD1VVEYtOCwlM2NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2aWV3Qm94PScwIDAgMTYgOScgZmlsbD0nJTIzN2U1N2MyJyUzZSUzY3BhdGggZD0nTTAgMS4yQzAgLjUuNiAwIDEuMiAwYy4zIDAgLjYuMS44LjNsNiA1LjkgNi01LjljLjUtLjQgMS4yLS4zIDEuNy4xLjQuNC40IDEuMSAwIDEuNUw4LjkgOC43Yy0uNS40LTEuMi40LTEuNyAwTC40IDJhLjkuOSAwIDAgMS0uNC0uOHonLyUzZSUzYy9zdmclM2VcIiksIGxpbmVhci1ncmFkaWVudCgwZGVnLCB0cmFuc3BhcmVudCAwJSwgdHJhbnNwYXJlbnQgMTAwJSk7IH1cbiAgLmNzLXNlbGVjdFtkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7IH1cbiAgLmNzLXNlbGVjdCBvcHRpb24ge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogaW5pdGlhbDsgfVxuIiwiQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5cbi4jeyRuc31zZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZpZWxkLXNlbGVjdCgpO1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgYmFja2dyb3VuZDogI2RjZGNkYztcbiAgaGVpZ2h0OiAxcmVtO1xuICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAxcmVtOyB9XG4gIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgd2lkdGg6IDFyZW07XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MsIGJhY2tncm91bmQgMC4zcztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTsgfVxuICAgIC51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1ob3ZlciwgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWFjdGl2ZSwgLnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS41KTtcbiAgICAgIGJhY2tncm91bmQ6ICM0ZDJjOTE7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4kc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDogMXJlbSAhZGVmYXVsdDtcbiRzbGlkZXItLWhvcml6b250YWxfYmFja2dyb3VuZDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZC1hY3RpdmU6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLS1ob3Jpem9udGFsX2JhY2tncm91bmQ7XG4gICAgaGVpZ2h0OiAkc2xpZGVyLS1ob3Jpem9udGFsX2hlaWdodDtcbiAgICBtYXJnaW4tbGVmdDogKCRzbGlkZXItLWhvcml6b250YWxfaGFuZGxlLXNpemUgLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6ICgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6ICRzbGlkZXItLWhvcml6b250YWxfaGVpZ2h0O1xuXG4gICAgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgICAgICB3aWR0aDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtc2l6ZTtcbiAgICAgICAgaGVpZ2h0OiAkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1iYWNrZ3JvdW5kO1xuICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcywgYmFja2dyb3VuZCAwLjNzO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogLSgkc2xpZGVyLS1ob3Jpem9udGFsX2hhbmRsZS1zaXplIC8gMik7XG5cbiAgICAgICAgJi51aS1zdGF0ZS1ob3ZlcixcbiAgICAgICAgJi51aS1zdGF0ZS1hY3RpdmUsXG4gICAgICAgICYudWktc3RhdGUtZm9jdXMge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjUpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHNsaWRlci0taG9yaXpvbnRhbF9oYW5kbGUtYmFja2dyb3VuZC1hY3RpdmU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgcGFkZGluZzogMS41cmVtIDAgMS41cmVtO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIHBhZGRpbmctdG9wOiAwOyB9IH1cbiAgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pdGVtIHtcbiAgICBtYXJnaW46IDAgMC40ZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2xpbmsge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGhlaWdodDogMy41ZW07XG4gICAgbWluLXdpZHRoOiA0ZW07XG4gICAgYmFja2dyb3VuZDogIzIxMjEyMTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2xpbms6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZDogIzRkMmM5MTsgfVxuICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2ljb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01NSUsIC01NSUsIDApO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDU1JTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0tZmIgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAwLjllbTtcbiAgICAgIGhlaWdodDogMS44ZW07IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLXR3IC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMi41ZW07XG4gICAgICBoZWlnaHQ6IDJlbTsgfVxuICAgIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faXRlbS0teXQgLmNzLXNvY2lhbC1tZWRpYS1saXN0X19pY29uIHtcbiAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICAgIGhlaWdodDogMi4xZW07IH1cbiAgICAuY3Mtc29jaWFsLW1lZGlhLWxpc3RfX2l0ZW0tLWdwIC5jcy1zb2NpYWwtbWVkaWEtbGlzdF9faWNvbiB7XG4gICAgICB3aWR0aDogMmVtO1xuICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICBtYXJnaW4tdG9wOiAwLjFlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ZsZXgtanVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWRlZmF1bHQ7XG4kc29jaWFsLW1lZGlhLWxpc3RfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X3BhZGRpbmc6ICRwYWdlX2VkZ2UtZ3V0dGVyIDAgJHBhZ2VfZWRnZS1ndXR0ZXIgIWRlZmF1bHQ7XG5cbiRzb2NpYWwtbWVkaWEtbGlzdF9saXN0LWl0ZW0tbWFyZ2luOiAwIDAuNGVtICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1wYWRkaW5nOiAwICFkZWZhdWx0O1xuXG4kc29jaWFsLW1lZGlhLWxpc3RfbGluay1kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaGVpZ2h0OiAzLjVlbSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLW1pbi13aWR0aDogNGVtICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLXRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYmFja2dyb3VuZDogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcbiRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTgwMCAhZGVmYXVsdDtcblxuJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb246IGFic29sdXRlICFkZWZhdWx0O1xuJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTUlLCAtNTUlLCAwKSAhZGVmYXVsdDtcblxuQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9pY29uLXBvc2l0aW9uID09IGFic29sdXRlIHtcbiAgICAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApICFkZWZhdWx0O1xufVxuXG4uI3skbnN9c29jaWFsLW1lZGlhLWxpc3Qge1xuICAgICRyb290OiAmO1xuXG4gICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgZGlzcGxheTogJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXk7XG4gICAgcGFkZGluZzogJHNvY2lhbC1tZWRpYS1saXN0X3BhZGRpbmc7XG5cbiAgICBAaWYgJHNvY2lhbC1tZWRpYS1saXN0X2Rpc3BsYXkgPT1cbiAgICAgICAgZmxleCBvclxuICAgICAgICAkc29jaWFsLW1lZGlhLWxpc3RfZGlzcGxheSA9PVxuICAgICAgICBpbmxpbmUtZmxleFxuICAgIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiAkc29jaWFsLW1lZGlhLWxpc3RfZmxleC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkc29jaWFsLW1lZGlhLWxpc3RfZmxleC1hbGlnbi1pdGVtcztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAkc29jaWFsLW1lZGlhLWxpc3RfbGlzdC1pdGVtLW1hcmdpbjtcbiAgICAgICAgcGFkZGluZzogJHNvY2lhbC1tZWRpYS1saXN0X2xpc3QtaXRlbS1wYWRkaW5nO1xuICAgIH1cblxuICAgICZfX2xpbmsge1xuICAgICAgICBkaXNwbGF5OiAkc29jaWFsLW1lZGlhLWxpc3RfbGluay1kaXNwbGF5O1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGhlaWdodDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaGVpZ2h0O1xuICAgICAgICBtaW4td2lkdGg6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLW1pbi13aWR0aDtcbiAgICAgICAgYmFja2dyb3VuZDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246ICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLXRyYW5zaXRpb247XG5cbiAgICAgICAgQGlmICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWhvdmVyLWJhY2tncm91bmQgIT1cbiAgICAgICAgICAgICRzb2NpYWwtbWVkaWEtbGlzdF9saW5rLWJhY2tncm91bmRcbiAgICAgICAge1xuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHNvY2lhbC1tZWRpYS1saXN0X2xpbmstaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ljb24ge1xuICAgICAgICBwb3NpdGlvbjogJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tcG9zaXRpb247XG4gICAgICAgIHRyYW5zZm9ybTogJHNvY2lhbC1tZWRpYS1saXN0X2ljb24tdHJhbnNmb3JtO1xuXG4gICAgICAgIEBpZiAkc29jaWFsLW1lZGlhLWxpc3RfaWNvbi1wb3NpdGlvbiA9PSBhYnNvbHV0ZSB7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDU1JTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS1mYiAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAwLjllbTtcbiAgICAgICAgICAgIGhlaWdodDogMS44ZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tdHcgJiB7XG4gICAgICAgICAgICB3aWR0aDogMi41ZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19pdGVtLS15dCAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAxLjhlbTtcbiAgICAgICAgICAgIGhlaWdodDogMi4xZW07XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9faXRlbS0tZ3AgJiB7XG4gICAgICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjFlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi5jcy1zdGFyLXJhdGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19zdGFycyB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogNy4ycmVtO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tc3VtbWFyeSAuY3Mtc3Rhci1yYXRpbmdfX3N0YXJzIHtcbiAgICAgIHdpZHRoOiAxMHJlbTtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmctLXJldmlldyAuY3Mtc3Rhci1yYXRpbmdfX3N0YXJzIHtcbiAgICAgIHdpZHRoOiA3LjJyZW07XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fc3RhciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBmaWxsOiAjODg4OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19zdGFyLS1hY3RpdmUge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fc3Rhci0taGFsZi1hY3RpdmUgLnN0YXItbGVmdCB7XG4gICAgICBmaWxsOiAjZmNiNzM5OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19zdGFyLS1oYWxmLWFjdGl2ZSAuc3Rhci1yaWd0aCB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gICAgLmNzLXN0YXItcmF0aW5nLS1zdW1tYXJ5IC5jcy1zdGFyLXJhdGluZ19fc3RhciB7XG4gICAgICB3aWR0aDogMnJlbTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZy0tcmV2aWV3IC5jcy1zdGFyLXJhdGluZ19fc3RhciB7XG4gICAgICB3aWR0aDogMS41cmVtOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19zdGFyIHBhdGgge1xuICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgZmlsbDogaW5oZXJpdDsgfVxuICAuY3Mtc3Rhci1yYXRpbmcgaW1nIHtcbiAgICB3aWR0aDogMS41cmVtO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnMge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIHBhZGRpbmc6IDA7IH1cbiAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXIge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgZmlsbDogIzg4ODtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyLS1hY3RpdmUge1xuICAgICAgZmlsbDogI2ZjYjczOTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHBhdGgge1xuICAgICAgZmlsbC1vcGFjaXR5OiAxO1xuICAgICAgZmlsbDogaW5oZXJpdDsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyOm50aC1sYXN0LW9mLXR5cGUoKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX19mb3JtLXN0YXJzOmhvdmVyIC5jcy1zdGFyLXJhdGluZ19fZm9ybS1zdGFyIHtcbiAgICAgIGZpbGw6ICNmY2I3Mzk7IH1cbiAgICAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhcnMgbGFiZWw6aG92ZXIgfiBsYWJlbCAuY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3RhciB7XG4gICAgICBmaWxsOiAjODg4OyB9XG4gIC5jcy1zdGFyLXJhdGluZ19fdGV4dCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoMS41cmVtICogMC4xKTsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fdGV4dC0tY291bnQ6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcoJzsgfVxuICAgIC5jcy1zdGFyLXJhdGluZ19fdGV4dC0tY291bnQ6YWZ0ZXIge1xuICAgICAgY29udGVudDogJyknOyB9XG4gICAgLmNzLXN0YXItcmF0aW5nX190ZXh0LS1lbXB0eSB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLmNzLXN0YXItcmF0aW5nX190ZXh0LWFubm90YXRpb24ge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgIC5jcy1wcm9kdWN0LXRpbGUgLmNzLXN0YXItcmF0aW5nX190ZXh0LWFubm90YXRpb24ge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3Mtc3Rhci1yYXRpbmdfX2xhYmVsIHtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBmb250LXNpemU6IDAuNzVlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgcGFkZGluZy10b3A6IGNhbGMoMS41cmVtICogMC4yKTsgfVxuXG4ucmV2aWV3LWNvbnRyb2wtdm90ZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0xIHtcbiAgICB6LWluZGV4OiAxOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy0xOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMiB7XG4gICAgei1pbmRleDogMjsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctMjpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTMge1xuICAgIHotaW5kZXg6IDM7IH1cbiAgICAucmV2aWV3LWNvbnRyb2wtdm90ZSAucmF0aW5nLTM6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy00IHtcbiAgICB6LWluZGV4OiA0OyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgLnJhdGluZy00OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNSB7XG4gICAgei1pbmRleDogNTsgfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIC5yYXRpbmctNTpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTsgfVxuICAucmV2aWV3LWNvbnRyb2wtdm90ZTpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWwge1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAzcmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgbGluZS1oZWlnaHQ6IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWwge1xuICAgICAgICB3aWR0aDogMi42cmVtO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwLjZyZW07IH0gfVxuICAgIC5yZXZpZXctY29udHJvbC12b3RlIGxhYmVsOmxhc3QtY2hpbGQge1xuICAgICAgd2lkdGg6IDJyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9XG4gICAgLnJldmlldy1jb250cm9sLXZvdGUgbGFiZWwgc3BhbiB7XG4gICAgICBjbGlwOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcblxuJHN0YXItcmF0aW5nX2NvbG9yLWFjdGl2ZTogJGNvbG9yX3Jldmlldy1hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU6ICRjb2xvcl9yZXZpZXctaW5hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWFjdGl2ZTogJGNvbG9yX3Jldmlldy1hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfZm9ybS1zdGFyLWNvbG9yLWluYWN0aXZlOiAkY29sb3JfcmV2aWV3LWNvbnRyb2wtaW5hY3RpdmUgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBmbGV4IGp1c3RpZmljYXRpb24gb2Ygc3RhcnNcbiRzdGFyLXJhdGluZ19qdXN0aWZ5OiBzcGFjZS1iZXR3ZWVuICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyB3aWR0aCBvZiBhIHNpbmdsZSBzdGFyXG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1kZWZhdWx0OiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXdzLXN1bW1hcnk6IDJyZW0gIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXc6IDEuNXJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtOiAycmVtICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyB3aWR0aCBvZiByZXZpZXcgc3RhcnMgY29udGFpbmVyXG4kc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLWRlZmF1bHQ6IDcuMnJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5OiAxMHJlbSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3OiA3LjJyZW0gIWRlZmF1bHQ7XG4vLyBQYWRkaW5nIGZvciByZXZpZXcgZm9ybSBzdGFyc1xuJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTogMC42cmVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybS1tb2JpbGU6IDFyZW0gIWRlZmF1bHQ7XG4vLyBEZXRlcm1pbmVzIHBhZGRpbmcgcnVsZXNldFxuJHN0YXItcmF0aW5nX3BhZGRpbmctZGVmYXVsdDogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlld3Mtc3VtbWFyeTogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldzogMCAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldy1mb3JtOiAwICFkZWZhdWx0O1xuLy8gRGV0ZXJtaW5lcyBzY29yZSBhbmQgY291bnQgdGV4dGZpZWxkIGRpc3BsYXkgcnVsZXNldFxuJHN0YXItcmF0aW5nX2hpZGUtdGV4dC1wZHA6IGZhbHNlICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2hpZGUtdGV4dC10aWxlOiBmYWxzZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgZGlzcGxheSBydWxlc2V0IGZvciBcInJldmlld1wiIGFubm90YXRpb25cbiRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tcGRwOiBmYWxzZSAhZGVmYXVsdDtcbiRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tdGlsZTogdHJ1ZSAhZGVmYXVsdDtcbi8vIERldGVybWluZXMgcmF0aW5nIGxhYmVsIGRldGFpbHNcbiRzdGFyLXJhdGluZ19sYWJlbC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtc2l6ZTogMC43NWVtICFkZWZhdWx0O1xuJHN0YXItcmF0aW5nX2xhYmVsLWZvbnQtd2VpZ2h0OiA3MDAgIWRlZmF1bHQ7XG4kc3Rhci1yYXRpbmdfbGFiZWwtdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuLiN7JG5zfXN0YXItcmF0aW5nIHtcbiAgICAkcm9vdDogJjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAmX19zdGFycyB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nOiAkc3Rhci1yYXRpbmdfcGFkZGluZy1kZWZhdWx0O1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX2NvbnRhaW5lci13aWR0aC1kZWZhdWx0O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRzdGFyLXJhdGluZ19qdXN0aWZ5O1xuXG4gICAgICAgICN7JHJvb3R9LS1zdW1tYXJ5ICYge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19jb250YWluZXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXJldmlldyAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfY29udGFpbmVyLXdpZHRoLXJldmlldztcbiAgICAgICAgICAgIHBhZGRpbmc6ICRzdGFyLXJhdGluZ19wYWRkaW5nLXJldmlldztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0YXIge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItaW5hY3RpdmU7XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1oYWxmLWFjdGl2ZSB7XG4gICAgICAgICAgICAuc3Rhci1sZWZ0IHtcbiAgICAgICAgICAgICAgICBmaWxsOiAkc3Rhci1yYXRpbmdfY29sb3ItYWN0aXZlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3Rhci1yaWd0aCB7XG4gICAgICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2NvbG9yLWluYWN0aXZlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXN1bW1hcnkgJiB7XG4gICAgICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtcmV2aWV3cy1zdW1tYXJ5O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH0tLXJldmlldyAmIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXc7XG4gICAgICAgIH1cblxuICAgICAgICBwYXRoIHtcbiAgICAgICAgICAgIGZpbGwtb3BhY2l0eTogMTtcbiAgICAgICAgICAgIGZpbGw6IGluaGVyaXQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgICB3aWR0aDogJHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cblxuICAgICZfX2Zvcm0tc3RhcnMge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgcGFkZGluZzogJHN0YXItcmF0aW5nX3BhZGRpbmctcmV2aWV3LWZvcm07XG4gICAgfVxuXG4gICAgJl9fZm9ybS1zdGFyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgJi0tYWN0aXZlIHtcbiAgICAgICAgICAgIGZpbGw6ICRzdGFyLXJhdGluZ19mb3JtLXN0YXItY29sb3ItYWN0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgcGF0aCB7XG4gICAgICAgICAgICBmaWxsLW9wYWNpdHk6IDE7XG4gICAgICAgICAgICBmaWxsOiBpbmhlcml0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtbGFzdC1vZi10eXBlKCkge1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19mb3JtLXN0YXJzOmhvdmVyICYge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fZm9ybS1zdGFycyBsYWJlbDpob3ZlciB+IGxhYmVsICYge1xuICAgICAgICAgICAgZmlsbDogJHN0YXItcmF0aW5nX2Zvcm0tc3Rhci1jb2xvci1pbmFjdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGNvbG9yOiAkc3Rhci1yYXRpbmdfdGV4dC1jb2xvcjtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVlbTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKCN7JHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdH0gKiAwLjEpO1xuXG4gICAgICAgICYtLWNvdW50IHtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAkc3Rhci1yYXRpbmdfaGlkZS10ZXh0LXBkcCB7XG4gICAgICAgICAgICAuI3skbnN9YnV5Ym94ICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtdGV4dC10aWxlIHtcbiAgICAgICAgICAgIC4jeyRuc31wcm9kdWN0LXRpbGUgJiB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtLWVtcHR5IHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RleHQtYW5ub3RhdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcblxuICAgICAgICBAaWYgJHN0YXItcmF0aW5nX2hpZGUtYW5ub3RhdGlvbi1wZHAge1xuICAgICAgICAgICAgLiN7JG5zfWJ1eWJveCAmIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICRzdGFyLXJhdGluZ19oaWRlLWFubm90YXRpb24tdGlsZSB7XG4gICAgICAgICAgICAuI3skbnN9cHJvZHVjdC10aWxlICYge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBjb2xvcjogJHN0YXItcmF0aW5nX2xhYmVsLWNvbG9yO1xuICAgICAgICBmb250LXNpemU6ICRzdGFyLXJhdGluZ19sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkc3Rhci1yYXRpbmdfbGFiZWwtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkc3Rhci1yYXRpbmdfbGFiZWwtdGV4dC10cmFuc2Zvcm07XG4gICAgICAgIHBhZGRpbmctdG9wOiBjYWxjKCN7JHN0YXItcmF0aW5nX3N0YXItd2lkdGgtZGVmYXVsdH0gKiAwLjIpO1xuICAgIH1cbn1cblxuLnJldmlldy1jb250cm9sLXZvdGUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIDUge1xuICAgICAgICAucmF0aW5nLSN7JGl9IHtcbiAgICAgICAgICAgIHotaW5kZXg6ICN7JGl9O1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG5cbiAgICBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXctZm9ybSArXG4gICAgICAgICAgICAkc3Rhci1yYXRpbmdfc3Rhci1wYWRkaW5nLXJldmlldy1mb3JtLW1vYmlsZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybS1tb2JpbGU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAkc3Rhci1yYXRpbmdfc3Rhci13aWR0aC1yZXZpZXctZm9ybSArXG4gICAgICAgICAgICAgICAgJHN0YXItcmF0aW5nX3N0YXItcGFkZGluZy1yZXZpZXctZm9ybTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRzdGFyLXJhdGluZ19zdGFyLXBhZGRpbmctcmV2aWV3LWZvcm07XG4gICAgICAgIH1cblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgd2lkdGg6ICRzdGFyLXJhdGluZ19zdGFyLXdpZHRoLXJldmlldy1mb3JtO1xuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktdmlzaWJsZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4uc3dhdGNoLWF0dHJpYnV0ZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZS5zd2F0Y2gtbGF5ZXJlZCB7XG4gICAgZm9udC1zaXplOiAwLjhlbTsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZSArIC5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICBtYXJnaW4tdG9wOiAwLjhlbTsgfVxuICAuc3dhdGNoLWF0dHJpYnV0ZTpoYXMoLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQpIC5tYWdlLWVycm9yIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsIHtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgbGluZS1oZWlnaHQ6IGNhbGMoIDIuOGVtIC0gNnB4ICsgMC4xZW0pO1xuICBmb250LXdlaWdodDogNzAwO1xuICBmb250LXNpemU6IDEuMWVtO1xuICB3aWR0aDogMTByZW07XG4gIG1hcmdpbi1yaWdodDogMS41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICAgICAgd2lkdGg6IDExcmVtOyB9IH1cbiAgLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWw6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICc6ICc7XG4gICAgbGluZS1oZWlnaHQ6IGNhbGMoIDIuOGVtIC0gNnB4ICsgMC4xZW0pOyB9XG5cbi5zd2F0Y2gtYXR0cmlidXRlLXNlbGVjdGVkLW9wdGlvbiB7XG4gIGJvcmRlcjogMDtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgaGVpZ2h0OiAxcHg7XG4gIG1hcmdpbjogLTFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogMXB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAvKiAxICovIH1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgbWFyZ2luLWxlZnQ6IC0wLjJlbTtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNGVtO1xuICBtaW4td2lkdGg6IDEwMCU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnM6Zm9jdXMge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7IH1cbiAgLnN3YXRjaC1vcHQgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoIDEwMCUgLSAxLjVyZW0gLSAxMHJlbSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnN3YXRjaC1vcHQgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgIG1heC13aWR0aDogY2FsYyggMTAwJSAtIDEuNXJlbSAtIDExcmVtKTsgfSB9XG5cbi5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZCB7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG4gIC5zd2F0Y2gtb3B0aW9uLWxpbmstbGF5ZXJlZDpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi5zd2F0Y2gtb3B0aW9uIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtaW4td2lkdGg6IDMuMmVtO1xuICBoZWlnaHQ6IDIuOGVtO1xuICBwYWRkaW5nOiAwIDAuMzVlbTtcbiAgbWFyZ2luOiAxcHggY2FsYyggMXB4ICsgMC4yZW0pIGNhbGMoMXB4ICsgMC40ZW0pO1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGJvcmRlcjogM3B4IHNvbGlkICNmMGYwZjA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiBjYWxjKCAyLjhlbSAtIDZweCArIDAuMWVtKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJvcmRlci1jb2xvciAwLjNzLCBvcGFjaXR5IDAuM3MsIGNvbG9yIDAuM3M7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLnN3YXRjaC1vcHRpb246YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtNHB4O1xuICAgIGxlZnQ6IC00cHg7XG4gICAgcmlnaHQ6IC00cHg7XG4gICAgYm90dG9tOiAtNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzOyB9XG4gIC5zd2F0Y2gtb3B0aW9uOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA1MCU7XG4gICAgbGVmdDogNTAlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2ljb25zL3N3YXRjaGVzL2Rpc2FibGVkLnN2ZykgcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjUpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgd2lkdGg6IGNhbGMoMi44ZW0gLSAxLjJlbSk7XG4gICAgaGVpZ2h0OiBjYWxjKDIuOGVtIC0gMS4yZW0pO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC42ZW07XG4gICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjNzO1xuICAgIG9wYWNpdHk6IDA7IH1cbiAgLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQsIC5zd2F0Y2gtb3B0aW9uLmJpcy1zZWxlY3RlZCB7XG4gICAgYm9yZGVyOiAzcHggc29saWQgI2ZmZjtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uc2VsZWN0ZWQ6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbi5iaXMtc2VsZWN0ZWQ6YmVmb3JlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICM0ZDJjOTE7IH1cbiAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KSwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7IH1cbiAgICAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLnRleHQge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGNvbG9yOiAjODg4O1xuICAgICAgYmFja2dyb3VuZDogI2ZmZjsgfVxuICAgICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS50ZXh0OmJlZm9yZSwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkudGV4dDpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5pbWFnZTphZnRlciwgLnN3YXRjaC1vcHRpb24uZGlzYWJsZWQ6bm90KC5iYWNrLWluLXN0b2NrLWFsZXJ0KS5jb2xvcjphZnRlciwgLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkuaW1hZ2U6YWZ0ZXIsIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXTpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLmNvbG9yOmFmdGVyIHtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgLnN3YXRjaC1vcHRpb246bm90KC5kaXNhYmxlZCk6bm90KC5zZWxlY3RlZCk6bm90KFtkaXNhYmxlZF0pOmhvdmVyLCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmhvdmVyIHtcbiAgICBib3JkZXI6IDNweCBzb2xpZCAjZmZmO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgICAuc3dhdGNoLW9wdGlvbjpub3QoLmRpc2FibGVkKTpub3QoLnNlbGVjdGVkKTpub3QoW2Rpc2FibGVkXSk6aG92ZXI6YmVmb3JlLCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0OmhvdmVyOmJlZm9yZSB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyOyB9XG5cbi5zd2F0Y2gtaW5wdXQge1xuICBib3JkZXI6IDA7XG4gIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gIGhlaWdodDogMXB4O1xuICBtYXJnaW46IC0xcHg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmc6IDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgLyogMSAqL1xuICBsZWZ0OiAtMTAwMHB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4uc3dhdGNoLW1vcmUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAsXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQge1xuICBkaXNwbGF5OiBub25lO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG1hcmdpbjogMDtcbiAgei1pbmRleDogOTk5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XG4gIGNvbG9yOiAjODg4O1xuICBmb250LXNpemU6IDEuM3JlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogMC41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi13aWR0aDogMnJlbTtcbiAgYm9yZGVyOiAwLjFyZW0gc29saWQgI2RjZGNkYzsgfVxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwIC5pbWFnZSxcbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcC1sYXllcmVkIC5pbWFnZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgd2lkdGg6IDExMHB4O1xuICAgIGhlaWdodDogMTEwcHg7IH1cbiAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcCAuY29ybmVyOmFmdGVyLFxuICAuc3dhdGNoLW9wdGlvbi10b29sdGlwLWxheWVyZWQgLmNvcm5lcjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMXJlbTtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHJvdGF0ZSg0NWRlZyk7XG4gICAgYm9yZGVyLWJvdHRvbTogMC4xcmVtIHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJpZ2h0OiAwLjFyZW0gc29saWQgI2RjZGNkYztcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCAtMC41cmVtICsgMC4xcmVtKTsgfVxuXG4uc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cblxuLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwge1xuICBtYXgtd2lkdGg6IDQwcmVtO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCAubWFnZS1lcnJvciB7XG4gICAgcGFkZGluZy10b3A6IDAuOHJlbTsgfVxuICAubWlzc2luZy1zd2F0Y2hlcy1tb2RhbCAuc3dhdGNoLWF0dHJpYnV0ZSArIC5zd2F0Y2gtYXR0cmlidXRlIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG5cbkBtZWRpYSAoaG92ZXI6IG5vbmUpIHtcbiAgLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwtdmlzaWJsZSAuc3dhdGNoLW9wdGlvbi10b29sdGlwIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4uc3dhdGNoLW9wdCB7XG4gIGZvbnQtc2l6ZTogMC45ZW07IH1cbiAgLnN3YXRjaC1vcHQgLnN3YXRjaC1vcHRpb24uYmFjay1pbi1zdG9jay1hbGVydDphZnRlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDIyMCwgMjIwLCAwLjU1KSB1cmwoLi4vaW1hZ2VzL2ljb25zL25vdGlmaWNhdGlvbi1wYW5lbC9pY29uX25vdGlmaWNhdGlvbi1vdXRsaW5lLnN2ZykgY2VudGVyLzY0JSBuby1yZXBlYXQ7XG4gICAgb3BhY2l0eTogMTsgfVxuICAuc3dhdGNoLW9wdCAuc3dhdGNoLW9wdGlvbi5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJlbTsgfVxuICAgIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtb3B0aW9uLmJhY2staW4tc3RvY2stYWxlcnQudGV4dDphZnRlciB7XG4gICAgICBsZWZ0OiBhdXRvO1xuICAgICAgcmlnaHQ6IDAuMzVlbTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5zd2F0Y2gtb3B0IC5tYWdlLWVycm9yIHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tbGVmdDogY2FsYygxMHJlbSArIDEuNXJlbSk7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnN3YXRjaC1vcHQgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyggMTFyZW0gKyAxLjVyZW0pOyB9IH1cblxuW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSB7XG4gIGZvbnQtc2l6ZTogMC40NWVtO1xuICBtaW4taGVpZ2h0OiBjYWxjKCAxICogKDIuOGVtICsgOHB4KSk7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvOyB9IH1cbiAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LCBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uW2Rpc2FibGVkXS5iYWNrLWluLXN0b2NrLWFsZXJ0IHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkOyB9XG4gICAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LnRleHQsIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdLmJhY2staW4tc3RvY2stYWxlcnQudGV4dCB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY29sb3I6ICM4ODg7XG4gICAgICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkLmJhY2staW4tc3RvY2stYWxlcnQudGV4dDpiZWZvcmUsIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdLmJhY2staW4tc3RvY2stYWxlcnQudGV4dDpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gICAgW2NsYXNzXj0nc3dhdGNoLW9wdC0nXSAuc3dhdGNoLW9wdGlvbi5kaXNhYmxlZC5iYWNrLWluLXN0b2NrLWFsZXJ0LmltYWdlOmFmdGVyLCBbY2xhc3NePSdzd2F0Y2gtb3B0LSddIC5zd2F0Y2gtb3B0aW9uLmRpc2FibGVkLmJhY2staW4tc3RvY2stYWxlcnQuY29sb3I6YWZ0ZXIsIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdLmJhY2staW4tc3RvY2stYWxlcnQuaW1hZ2U6YWZ0ZXIsIFtjbGFzc149J3N3YXRjaC1vcHQtJ10gLnN3YXRjaC1vcHRpb25bZGlzYWJsZWRdLmJhY2staW4tc3RvY2stYWxlcnQuY29sb3I6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMTsgfVxuICBbY2xhc3NePSdzd2F0Y2gtb3B0LSddOmVtcHR5IHtcbiAgICBvcGFjaXR5OiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnZXRjL3ZpZXcuc2Nzcyc7XG5AaW1wb3J0ICd1dGlscy9kZWVwLWdldC9kZWVwLWdldC5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcbkBpbXBvcnQgJ3V0aWxzL2dldC12YWx1ZS1mcm9tLWxpc3Quc2Nzcyc7XG5cbiRzd2F0Y2hlcy0tY2xpY2thYmxlOiBkZWVwLWdldChcbiAgICAkdmlldy14bWwsXG4gICAgdmFycyxcbiAgICBNYWdlbnRvX0NhdGFsb2csXG4gICAgY29uZmlndXJhYmxlX3RpbGVfc3dhdGNoZXMsXG4gICAgZW5hYmxlZFxuKSAhZGVmYXVsdDtcblxuLy8gS2VlcCBpbiBzeW5jIHdpdGggcXVhbnRpdHkgd3JhcHBlciBpbiBidXlib3guXG4kc3dhdGNoZXNfbGFiZWwtd2lkdGg6IDEwcmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cDogMTFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtZ3V0dGVyOiAxLjVyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfbGFiZWwtZm9udC1zaXplOiAxLjFlbSAhZGVmYXVsdDtcbi8vIEtlZXAgaW4gc3luYyB3aWR0aCBxdWFudGl0eSB3cmFwcGVyIGluIGJ1eWJveCBlbmQuXG5cbi8vIFNjZW5hcmlvIHdpdGggc3dhdGNoZXMgYmVsb3cgbGFiZWwsIHdoaWNoIGlzIDEwMCUgd2lkZVxuLy8gd2l0aCB0aGlzIHZhcmlhYmxlIHNldCB0byB0cnVlICRzd2F0Y2hlc19sYWJlbC13aWR0aFxuLy8gYW5kICRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXAgd2lsbCBiZSBvdmVycmlkZW4gLSBhbHdheXMgMTAwJSB3aWR0aFxuJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWw6IGZhbHNlICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmU6IHRydWUgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWd1dHRlcjogMC40ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWhlaWdodDogMi44ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXdpZHRoOiAzLjJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZzogMCAwLjM1ZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0OiAwLjFlbSAhZGVmYXVsdDtcblxuJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC0yMDAgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoOiAzcHggIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLWJhY2tncm91bmQgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS1ob3Zlci1ib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYmFja2dyb3VuZCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggc29saWRcbiAgICAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1iYWNrZ3JvdW5kICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTIwMCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LWRpc2FibGVkLWNvbG9yOiAkY29sb3JfdGV4dC00MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfc3dhdGNoLS10ZXh0LW9wYWNpdHk6IDAuNjUgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc19zd2F0Y2gtLWJhY2tpbnN0b2NrLWJhY2tncm91bmQ6IHJnYmEoJGNvbG9yX2JhY2tncm91bmQtNjAwLCAwLjU1KVxuICAgIHVybCguLi9pbWFnZXMvaWNvbnMvbm90aWZpY2F0aW9uLXBhbmVsL2ljb25fbm90aWZpY2F0aW9uLW91dGxpbmUuc3ZnKVxuICAgIGNlbnRlci82NCUgbm8tcmVwZWF0ICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGg6IDFweCAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ6IChcbiAgICAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci13aWR0aCArICRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aFxuKSAhZGVmYXVsdDtcbiRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZTogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoIHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItb3V0bGluZTogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoIHNvbGlkXG4gICAgJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3N3YXRjaC0tc2VsZWN0ZWQtb3V0bGluZTogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRoIHNvbGlkXG4gICAgJGNvbG9yX3ByaW1hcnktODAwICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfcm93cy1ndXR0ZXI6ICRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyICogMiAhZGVmYXVsdDtcblxuJHN3YXRjaGVzLS10aWxlX2ZvbnQtc2l6ZTogMC40NWVtICFkZWZhdWx0O1xuLy8gVGVsbHMgaG93IG1hbnkgcm93cyBvZiBzd2F0Y2hlcyB3aWxsIGJlIGRpc3BsYXllZCBpbnNpZGUgdGlsZSBjb21wb25lbnQuXG4kc3dhdGNoZXMtLXRpbGVfbnVtLW9mLXJvd3M6IDEgIWRlZmF1bHQ7XG4vLyBDYWxjdWxhdGVzIGhvdyBtdWNoIHNwYWNlIHNob3VsZCBiZSByZXNlcnZlZCBpbiB0aWxlIGZvciBzd2F0Y2hlcyB0byBwcmV2ZW50IGNvbnRlbnQgZnJvbSBqdW1waW5nLlxuJHN3YXRjaGVzLS10aWxlX21pbi1oZWlnaHQ6IGNhbGMoXG4gICAgI3skc3dhdGNoZXMtLXRpbGVfbnVtLW9mLXJvd3N9ICogKCN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9ICsgI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0ICpcbiAgICAgICAgICAgICAgICAyfSlcbikgIWRlZmF1bHQ7XG4kc3dhdGNoZXMtLXBkcF9mb250LXNpemU6IDAuOWVtICFkZWZhdWx0O1xuJHN3YXRjaGVzLS1maWx0ZXJzX2ZvbnQtc2l6ZTogMC44ZW0gIWRlZmF1bHQ7XG5cbi8vIFRvb2x0aXBzIGZvciBzd2F0Y2hlc1xuJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDogJGNvbG9yX3doaXRlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXJhZGl1czogMC41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemU6IDAuMXJlbSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtZm9udC1zaXplOiAxLjNyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1mb250LXdlaWdodDogNDAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtbWFyZ2luOiAwICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtcGFkZGluZzogMC41cmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtbWluLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2hvdzogdHJ1ZSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU6IDFyZW0gIWRlZmF1bHQ7XG4kc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteDogNTAlICFkZWZhdWx0O1xuJHN3YXRjaGVzX3Rvb2x0aXAtdGV4dC1hbGlnbjogY2VudGVyICFkZWZhdWx0O1xuXG4kc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YTogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIG1lZGlhLFxuICAgIGltYWdlcyxcbiAgICBpbWFnZSxcbiAgICBzd2F0Y2hfdGh1bWJcbikgIWRlZmF1bHQ7XG5cbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC13aWR0aDogI3ttYXAtZ2V0KFxuICAgICAgICAkc3dhdGNoZXNfdG9vbHRpcC10aHVtYm5haWwtZGF0YSxcbiAgICAgICAgd2lkdGhcbiAgICApfSAhZGVmYXVsdDtcbiRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC1oZWlnaHQ6ICN7bWFwLWdldChcbiAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWRhdGEsXG4gICAgICAgIGhlaWdodFxuICAgICl9ICFkZWZhdWx0O1xuXG4uc3dhdGNoLWF0dHJpYnV0ZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAvLyBUaGUgb25seSBzZWxlY3RvciB3ZSBoYXZlIHRvIHRlbGwgdGhhdCBzd2F0Y2hlcyBhcmUgaW5zaWRlIGFmdGVyc2VhcmNoIG5hdmlnYXRpb24uXG4gICAgJi5zd2F0Y2gtbGF5ZXJlZCB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS1maWx0ZXJzX2ZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmICsgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6ICRzd2F0Y2hlc19yb3dzLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmOmhhcyguc3dhdGNoLW9wdGlvbi5zZWxlY3RlZCkge1xuICAgICAgICAubWFnZS1lcnJvciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsaW5lLWhlaWdodDogY2FsYyhcbiAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAjeyRzd2F0Y2hlc19zd2F0Y2gtYm9yZGVyLXdpZHRoICogMn0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtdGV4dC1vZmZzZXR9XG4gICAgKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzX2xhYmVsLWZvbnQtc2l6ZTtcbiAgICB3aWR0aDogJHN3YXRjaGVzX2xhYmVsLXdpZHRoO1xuICAgIG1hcmdpbi1yaWdodDogJHN3YXRjaGVzX2xhYmVsLWd1dHRlcjtcblxuICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHdpZHRoOiAkc3dhdGNoZXNfbGFiZWwtd2lkdGgtbGFwdG9wLXVwO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJzogJztcbiAgICAgICAgbGluZS1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArXG4gICAgICAgICAgICAgICAgI3skc3dhdGNoZXNfc3dhdGNoLXRleHQtb2Zmc2V0fVxuICAgICAgICApO1xuICAgIH1cbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtc2VsZWN0ZWQtb3B0aW9uIHtcbiAgICBAaW5jbHVkZSB2aXN1YWxseS1oaWRkZW4oKTtcbn1cblxuLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLWxlZnQ6IC0jeyRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyIC8gMn07XG4gICAgbWFyZ2luLWJvdHRvbTogLSN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXJ9O1xuICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgIH1cblxuICAgIC5zd2F0Y2gtb3B0ICYge1xuICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKFxuICAgICAgICAgICAgMTAwJSAtICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn0gLSAjeyRzd2F0Y2hlc19sYWJlbC13aWR0aH1cbiAgICAgICAgKTtcblxuICAgICAgICBAaWYgKCRzd2F0Y2hlc19mdWxsLXdpZHRoLWxhYmVsID09IHRydWUpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC0gI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfSAtICN7JHN3YXRjaGVzX2xhYmVsLXdpZHRoLWxhcHRvcC11cH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gRWxlbWVudCBhZGRlZCBhcyBhIHBhcmVudCBvZiAuc3dhdGNoLW9wdGlvbiBpbiBmaWx0ZXJzLlxuLnN3YXRjaC1vcHRpb24tbGluay1sYXllcmVkIHtcbiAgICBmb250LXNpemU6IDFlbTtcblxuICAgICY6aG92ZXIge1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4uc3dhdGNoLW9wdGlvbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWluLXdpZHRoOiAkc3dhdGNoZXNfc3dhdGNoLXdpZHRoO1xuICAgIGhlaWdodDogJHN3YXRjaGVzX3N3YXRjaC1oZWlnaHQ7XG4gICAgcGFkZGluZzogJHN3YXRjaGVzX3N3YXRjaC1wYWRkaW5nO1xuICAgIG1hcmdpbjogI3skc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtd2lkdGh9IGNhbGMoXG4gICAgICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS13aWR0aH0gKyAjeyRzd2F0Y2hlc19zd2F0Y2gtZ3V0dGVyIC8gMn1cbiAgICAgICAgKSBjYWxjKCN7JHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lLXdpZHRofSArICN7JHN3YXRjaGVzX3N3YXRjaC1ndXR0ZXJ9KTtcbiAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci1yYWRpdXM7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHN3YXRjaGVzX3N3YXRjaC1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1ib3JkZXI7XG4gICAgY29sb3I6ICRzd2F0Y2hlc19zd2F0Y2gtY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiBjYWxjKFxuICAgICAgICAjeyRzd2F0Y2hlc19zd2F0Y2gtaGVpZ2h0fSAtICN7JHN3YXRjaGVzX3N3YXRjaC1ib3JkZXItd2lkdGggKiAyfSArICN7JHN3YXRjaGVzX3N3YXRjaC10ZXh0LW9mZnNldH1cbiAgICApO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MsIGJvcmRlci1jb2xvciAwLjNzLCBvcGFjaXR5IDAuM3MsXG4gICAgICAgIGNvbG9yIDAuM3M7XG5cbiAgICBAaWYgJHN3YXRjaGVzX2Rpc2FibGUtc2hvdy1tb3JlIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIGxlZnQ6IC0kc3dhdGNoZXNfc3dhdGNoLW91dGxpbmUtb2Zmc2V0O1xuICAgICAgICByaWdodDogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIGJvdHRvbTogLSRzd2F0Y2hlc19zd2F0Y2gtb3V0bGluZS1vZmZzZXQ7XG4gICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC1vdXRsaW5lO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkc3dhdGNoZXNfc3dhdGNoLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xuICAgIH1cblxuICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvaWNvbnMvc3dhdGNoZXMvZGlzYWJsZWQuc3ZnKVxuICAgICAgICAgICAgcmdiYSgkY29sb3JfYmFja2dyb3VuZC02MDAsIDAuNSkgY2VudGVyIG5vLXJlcGVhdDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgICAgIHdpZHRoOiBjYWxjKCN7JHN3YXRjaGVzX3N3YXRjaC1oZWlnaHR9IC0gMS4yZW0pO1xuICAgICAgICBoZWlnaHQ6IGNhbGMoI3skc3dhdGNoZXNfc3dhdGNoLWhlaWdodH0gLSAxLjJlbSk7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogMC42ZW07XG4gICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICAmLnNlbGVjdGVkLFxuICAgICYuYmlzLXNlbGVjdGVkIHtcbiAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1ib3JkZXI7XG4gICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXNlbGVjdGVkLWJhY2tncm91bmQ7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYm9yZGVyOiAkc3dhdGNoZXNfc3dhdGNoLS1zZWxlY3RlZC1vdXRsaW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5kaXNhYmxlZDpub3QoLmJhY2staW4tc3RvY2stYWxlcnQpLFxuICAgICZbZGlzYWJsZWRdOm5vdCguYmFjay1pbi1zdG9jay1hbGVydCkge1xuICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuXG4gICAgICAgICYudGV4dCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LW9wYWNpdHk7XG4gICAgICAgICAgICBjb2xvcjogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1jb2xvcjtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1ib3JkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmltYWdlLFxuICAgICAgICAmLmNvbG9yIHtcbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZGlzYWJsZWQpOm5vdCguc2VsZWN0ZWQpOm5vdChbZGlzYWJsZWRdKSxcbiAgICAmLmJhY2staW4tc3RvY2stYWxlcnQge1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYm9yZGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogJHN3YXRjaGVzX3N3YXRjaC0taG92ZXItb3V0bGluZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN3YXRjaC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG5cbiAgICAvLyBSZXN0b3JlIG9yaWdpbmFsIHN0eWxlcyBmcm9tIE1hZ2VudG8uXG4gICAgLy8gSXQgcHJldmVudHMga2V5Ym9hcmQgb24gbW9iaWxlIHRvIGJlIHNob3duIGFmdGVyIHN3YXRjaCBpcyBjbGlja2VkXG4gICAgbGVmdDogLTEwMDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4uc3dhdGNoLW1vcmUge1xuICAgIEBpZiAkc3dhdGNoZXNfZGlzYWJsZS1zaG93LW1vcmUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcCxcbi5zd2F0Y2gtb3B0aW9uLXRvb2x0aXAtbGF5ZXJlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbWFyZ2luOiAkc3dhdGNoZXNfdG9vbHRpcC1tYXJnaW47XG4gICAgei1pbmRleDogOTk5O1xuICAgIGJhY2tncm91bmQ6ICRzd2F0Y2hlc190b29sdGlwLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLXJhZGl1czogJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXJhZGl1cztcbiAgICBjb2xvcjogJHN3YXRjaGVzX3Rvb2x0aXAtY29sb3I7XG4gICAgZm9udC1zaXplOiAkc3dhdGNoZXNfdG9vbHRpcC1mb250LXNpemU7XG4gICAgZm9udC13ZWlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLWZvbnQtd2VpZ2h0O1xuICAgIHBhZGRpbmc6ICRzd2F0Y2hlc190b29sdGlwLXBhZGRpbmc7XG4gICAgdGV4dC1hbGlnbjogJHN3YXRjaGVzX3Rvb2x0aXAtdGV4dC1hbGlnbjtcbiAgICBtaW4td2lkdGg6ICRzd2F0Y2hlc190b29sdGlwLW1pbi13aWR0aDtcblxuICAgIEBpZiAoXG4gICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAwIGFuZFxuICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgIT1cbiAgICAgICAgICAgICdub25lJ1xuICAgICkge1xuICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplXG4gICAgICAgICAgICBzb2xpZFxuICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLWNvbG9yO1xuICAgIH1cblxuICAgIC5pbWFnZSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgd2lkdGg6ICRzd2F0Y2hlc190b29sdGlwLXRodW1ibmFpbC13aWR0aCArICdweCc7XG4gICAgICAgIGhlaWdodDogJHN3YXRjaGVzX3Rvb2x0aXAtdGh1bWJuYWlsLWhlaWdodCArICdweCc7XG4gICAgfVxuXG4gICAgLmNvcm5lciB7XG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2hvdykge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctc2l6ZTtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN3YXRjaGVzX3Rvb2x0aXAtYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAkc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1vZmZzZXQteDtcbiAgICAgICAgICAgICAgICBAaWYgKHVuaXQoJHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctb2Zmc2V0LXgpID09ICclJykge1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLSN7JHN3YXRjaGVzX3Rvb2x0aXAtYXJyb3ctb2Zmc2V0LXh9KVxuICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRlKDQ1ZGVnKTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplICE9XG4gICAgICAgICAgICAgICAgICAgICAgICAwIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgJHN3YXRjaGVzX3Rvb2x0aXAtYm9yZGVyLXNpemUgIT1cbiAgICAgICAgICAgICAgICAgICAgICAgICdub25lJ1xuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZVxuICAgICAgICAgICAgICAgICAgICAgICAgc29saWRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAkc3dhdGNoZXNfdG9vbHRpcC1ib3JkZXItc2l6ZVxuICAgICAgICAgICAgICAgICAgICAgICAgc29saWRcbiAgICAgICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGVcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogY2FsYyhcbiAgICAgICAgICAgICAgICAgICAgICAgIC0jeyRzd2F0Y2hlc190b29sdGlwLWFycm93LXNpemUgL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDJ9ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjeyRzd2F0Y2hlc190b29sdGlwLWJvcmRlci1zaXplfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAtI3skc3dhdGNoZXNfdG9vbHRpcC1hcnJvdy1zaXplIC8gMn07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnN3YXRjaC1vcHRpb24tdG9vbHRpcCB7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5taXNzaW5nLXN3YXRjaGVzLW1vZGFsIHtcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuXG4gICAgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBwYWRkaW5nLXRvcDogMC44cmVtO1xuICAgIH1cblxuICAgIC5zd2F0Y2gtYXR0cmlidXRlICsgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbn1cblxuLm1pc3Npbmctc3dhdGNoZXMtbW9kYWwtdmlzaWJsZSB7XG4gICAgLnN3YXRjaC1vcHRpb24tdG9vbHRpcCB7XG4gICAgICAgIEBtZWRpYSAoaG92ZXI6bm9uZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBDb250YWluZXIgc2VsZWN0b3IgZm9yIHN3YXRjaGVzIG9uIFBEUFxuLnN3YXRjaC1vcHQge1xuICAgIGZvbnQtc2l6ZTogJHN3YXRjaGVzLS1wZHBfZm9udC1zaXplO1xuXG4gICAgLnN3YXRjaC1vcHRpb24ge1xuICAgICAgICAmLmJhY2staW4tc3RvY2stYWxlcnQge1xuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tYmFja2luc3RvY2stYmFja2dyb3VuZDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLnRleHQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDJlbTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICByaWdodDogZ2V0LXZhbHVlLWZyb20tbGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICRzd2F0Y2hlc19zd2F0Y2gtcGFkZGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICdyaWdodCdcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTZWxlY3RvciBmb3IgZXJyb3IgY29udGFpbmVyIHdoZW4gc3dhdGNoZXMgYXJlIHJlcXVpcmVkIGJ1dCBub3Qgc2VsZWN0ZWQuXG4gICAgLm1hZ2UtZXJyb3Ige1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBjYWxjKCN7JHN3YXRjaGVzX2xhYmVsLXdpZHRofSArICN7JHN3YXRjaGVzX2xhYmVsLWd1dHRlcn0pO1xuXG4gICAgICAgIEBpZiAoJHN3YXRjaGVzX2Z1bGwtd2lkdGgtbGFiZWwgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogY2FsYyhcbiAgICAgICAgICAgICAgICAjeyRzd2F0Y2hlc19sYWJlbC13aWR0aC1sYXB0b3AtdXB9ICsgI3skc3dhdGNoZXNfbGFiZWwtZ3V0dGVyfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgQGlmICgkc3dhdGNoZXNfZnVsbC13aWR0aC1sYWJlbCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIENvbnRhaW5lciBzZWxlY3RvciBmb3Igc3dhdGNoZXMgaW4gdGlsZSBhbmQgZGFpbHkgZGVhbCB0ZWFzZXIuXG5bY2xhc3NePSdzd2F0Y2gtb3B0LSddIHtcbiAgICBmb250LXNpemU6ICRzd2F0Y2hlcy0tdGlsZV9mb250LXNpemU7XG4gICAgbWluLWhlaWdodDogJHN3YXRjaGVzLS10aWxlX21pbi1oZWlnaHQ7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuM3M7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG5cbiAgICBAaWYgJHN3YXRjaGVzLS1jbGlja2FibGUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnN3YXRjaC1vcHRpb24ge1xuICAgICAgICAmLmRpc2FibGVkLmJhY2staW4tc3RvY2stYWxlcnQsXG4gICAgICAgICZbZGlzYWJsZWRdLmJhY2staW4tc3RvY2stYWxlcnQge1xuICAgICAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAgICAgJi50ZXh0IHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAkc3dhdGNoZXNfc3dhdGNoLS10ZXh0LW9wYWNpdHk7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHN3YXRjaGVzX3N3YXRjaC0tdGV4dC1kaXNhYmxlZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6ICRzd2F0Y2hlc19zd2F0Y2gtLXRleHQtZGlzYWJsZWQtYm9yZGVyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJi5pbWFnZSxcbiAgICAgICAgICAgICYuY29sb3Ige1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6ZW1wdHkge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy10b3BiYXIge1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgZGlzcGxheTogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMS42cmVtO1xuICBwYWRkaW5nLXRvcDogMC41cmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXRvcGJhciB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgei1pbmRleDogMzAyOyB9IH1cbiAgLmNzLXRvcGJhcl9fd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGhlaWdodDogMi43cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b3BiYXJfX3dyYXBwZXIge1xuICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDsgfSB9XG4gIC5jcy10b3BiYXJfX2l0ZW0ge1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleDogMCAwIGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS11c3BzIHtcbiAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAgIC5jcy10b3BiYXJfX2l0ZW0tLXVzcHMge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7IH0gfVxuICAgIC5jcy10b3BiYXJfX2l0ZW0tLWhvdGxpbmUge1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS1sYW5ndWFnZSB7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAuY3MtdG9wYmFyX19pdGVtLS1saW5rcyAuY3MtdG9wYmFyX19saW5rcyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgICAgLmNzLXRvcGJhcl9faXRlbS0tbGlua3MgLmNzLXRvcGJhcl9fbGlua3MgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbTsgfVxuICAgICAgLmNzLXRvcGJhcl9faXRlbS0tbGlua3MgLmNzLXRvcGJhcl9fbGlua3MgYTpmaXJzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW0gMC41cmVtIDByZW07IH1cbiAgICAgIC5jcy10b3BiYXJfX2l0ZW0tLWxpbmtzIC5jcy10b3BiYXJfX2xpbmtzIGE6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDByZW0gMC41cmVtIDJyZW07IH1cbiAgLmNzLXRvcGJhcl9fbGlzdCxcbiAgLmNzLXRvcGJhcl9faXRlbSA+IHVsIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGhlaWdodDogMi43cmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxLjNyZW07IH1cbiAgICAuY3MtdG9wYmFyX19saXN0LWl0ZW06bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTsgfVxuICAgICAgLmNzLXRvcGJhcl9fbGlzdC1pdGVtOm5vdCg6bGFzdC1jaGlsZCk6YmVmb3JlIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICBib3JkZXItcmlnaHQ6IDAuMnJlbSBzb2xpZCAjZmZmOyB9XG4gIC5jcy10b3BiYXJfX3RleHQge1xuICAgIGNvbG9yOiAjMjEyMTIxOyB9XG4gIC5jcy10b3BiYXJfX2xpbmsge1xuICAgIG1hcmdpbi1yaWdodDogMC45cmVtOyB9XG4gICAgLmNzLXRvcGJhcl9fbGluaywgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXRvcGJhcl9fbGluazpob3ZlciwgLmNzLXRvcGJhcl9fbGluazpmb2N1cywgLmNzLXRvcGJhcl9fbGluazphY3RpdmUsIC5jcy10b3BiYXJfX2xpbms6dmlzaXRlZDpob3ZlciwgLmNzLXRvcGJhcl9fbGluazp2aXNpdGVkOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAjNGQyYzkxO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gIC5jcy10b3BiYXJfX2hvdGxpbmUge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXIge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07IH1cbiAgICAuY3MtdG9wYmFyX19waG9uZS1udW1iZXIsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXRvcGJhcl9fcGhvbmUtbnVtYmVyOmhvdmVyLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6Zm9jdXMsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjphY3RpdmUsIC5jcy10b3BiYXJfX3Bob25lLW51bWJlcjp2aXNpdGVkOmhvdmVyLCAuY3MtdG9wYmFyX19waG9uZS1udW1iZXI6dmlzaXRlZDpmb2N1cyB7XG4gICAgICBjb2xvcjogIzAwMDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAuY3MtdG9wYmFyIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyID4gLmxpbWl0ZXIuY3MtbGltaXRlciAuY29udHJvbC5jcy1saW1pdGVyX19jb250cm9sIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cblxuLmNzLWNvbnRhaW5lci0tdG9wLWJhciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1heC13aWR0aDogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy90eXBvZ3JhcGh5L21peGluJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuXG4kdG9wYmFyX2JhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJHRvcGJhcl9oZWlnaHQ6IDIuN3JlbSAhZGVmYXVsdDtcblxuJHRvcGJhcl9pdGVtLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLXRleHQtY29sb3I6ICRjb2xvcl9taW5lc2hhZnQgIWRlZmF1bHQ7XG4kdG9wYmFyX2VuYWJsZS1ib3JkZXJzOiB0cnVlICFkZWZhdWx0O1xuJHRvcGJhcl9pdGVtLWJvcmRlcjogMC4ycmVtIHNvbGlkICRjb2xvcl93aGl0ZSAhZGVmYXVsdDtcbiR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3I6ICRjb2xvcl9ibGFjayAhZGVmYXVsdDtcblxuJHRvcGJhcl9saW5rLWNvbG9yOiAkbGluay1jb2xvcl9iYXNlICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWNvbG9yLWhvdmVyOiAkbGluay1jb2xvcl9iYXNlLWhvdmVyICFkZWZhdWx0O1xuJHRvcGJhcl9saW5rLWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kdG9wYmFyX2xpbmstaG92ZXItZGVjb3JhdGlvbjogJHRvcGJhcl9saW5rLWRlY29yYXRpb24gIWRlZmF1bHQ7XG5cbiRjb250YWluZXJfYmFja2dyb3VuZC10b3AtYmFyOiAkY29sb3Jfd2hpdGUgIWRlZmF1bHQ7XG5cbi4jeyRuc310b3BiYXIge1xuICAgICRyb290OiAmO1xuXG4gICAgYmFja2dyb3VuZDogJHRvcGJhcl9iYWNrZ3JvdW5kO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZm9udC1zaXplOiAkdG9wYmFyX2l0ZW0tZm9udC1zaXplO1xuICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIHotaW5kZXg6IDMwMjtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgaGVpZ2h0OiAkdG9wYmFyX2hlaWdodDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2l0ZW0ge1xuICAgICAgICBjb2xvcjogJHRvcGJhcl9pdGVtLXRleHQtY29sb3I7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG5cbiAgICAgICAgJi0tdXNwcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0taG90bGluZSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxhbmd1YWdlIHtcbiAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLWxpbmtzIHtcbiAgICAgICAgICAgIC5jcy10b3BiYXJfX2xpbmtzIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAkdG9wYmFyX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGE6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtIDAuNXJlbSAwcmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGE6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDByZW0gMC41cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCxcbiAgICAmX19pdGVtPnVsIHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6ICR0b3BiYXJfaGVpZ2h0O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuM3JlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoJHRvcGJhcl9lbmFibGUtYm9yZGVycykge1xuICAgICAgICAgICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEuM3JlbTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR0b3BiYXJfaXRlbS1ib3JkZXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dCB7XG4gICAgICAgIGNvbG9yOiAkdG9wYmFyX2l0ZW0tdGV4dC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgbGluaygkY29sb3I6ICR0b3BiYXJfbGluay1jb2xvcixcbiAgICAgICAgICAgICRjb2xvci1ob3ZlcjogJHRvcGJhcl9saW5rLWNvbG9yLWhvdmVyLFxuICAgICAgICAgICAgJGRlY29yYXRpb246ICR0b3BiYXJfbGluay1kZWNvcmF0aW9uLFxuICAgICAgICAgICAgJGRlY29yYXRpb24taG92ZXI6ICR0b3BiYXJfbGluay1ob3Zlci1kZWNvcmF0aW9uICk7XG5cbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjlyZW07XG4gICAgfVxuXG4gICAgJl9faG90bGluZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fcGhvbmUtbnVtYmVyIHtcbiAgICAgICAgQGluY2x1ZGUgbGluaygkY29sb3I6ICR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3IsXG4gICAgICAgICAgICAkY29sb3ItaG92ZXI6ICR0b3BiYXJfaXRlbS1waG9uZV9udW1iZXItY29sb3IgKTtcblxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuOXJlbTtcbiAgICB9XG5cbiAgICAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlcj4ubGltaXRlci5jcy1saW1pdGVyIC5jb250cm9sLmNzLWxpbWl0ZXJfX2NvbnRyb2wge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS10b3AtYmFyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbnRhaW5lcl9iYWNrZ3JvdW5kLXRvcC1iYXI7XG4gICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbmgxIHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMi42cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDIge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAyLjZyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oMyB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG5cbmg0IHtcbiAgZm9udC1mYW1pbHk6IFwiRG9zaXNcIiwgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBTZWdvZSBVSSwgUm9ib3RvLCBVYnVudHUsIENhbnRhcmVsbCwgT3h5Z2VuLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCI7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICBsaW5lLWhlaWdodDogMS4xO1xuICBjb2xvcjogIzQ1NWE2NDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIG1hcmdpbjogMXJlbSAwIDJyZW07IH1cblxuaDUge1xuICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgZm9udC1zaXplOiAxLjFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5oNiB7XG4gIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjE7XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbWFyZ2luOiAxcmVtIDAgMnJlbTsgfVxuXG5hLCBhOnZpc2l0ZWQge1xuICBjb2xvcjogIzdlNTdjMjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbmE6aG92ZXIsIGE6Zm9jdXMsIGE6YWN0aXZlLCBhOnZpc2l0ZWQ6aG92ZXIsIGE6dmlzaXRlZDpmb2N1cyB7XG4gIGNvbG9yOiAjNGQyYzkxO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cblxudWwsXG5vbCB7XG4gIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgcGFkZGluZzogMCAwIDAgNHJlbTsgfVxuICB1bCA+IGxpLFxuICBvbCA+IGxpIHtcbiAgICBtYXJnaW46IDAgMCAxcmVtOyB9XG5cbmJvZHkge1xuICBjb2xvcjogIzQ1NWE2NDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuXG5oMSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTEpO1xufVxuXG5oMiB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTIpO1xufVxuXG5oMyB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTMpO1xufVxuXG5oNCB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTQpO1xufVxuXG5oNSB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTUpO1xufVxuXG5oNiB7XG4gICAgQGluY2x1ZGUgaGVhZGxpbmUoJGxldmVsOiAkZm9udC1zaXplX2hlYWRsaW5lLTYpO1xufVxuXG5hIHtcbiAgICBAaW5jbHVkZSBsaW5rKCk7XG59XG5cbnVsLFxub2wge1xuICAgIEBpbmNsdWRlIGxpc3QoKTtcblxuICAgID5saSB7XG4gICAgICAgIEBpbmNsdWRlIGxpc3QtaXRlbSgpO1xuICAgIH1cbn1cblxuYm9keSB7XG4gICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQsXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19vdmVybGF5LFxuLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWhhcy12aWRlby10ZWFzZXIgLmNzLWltYWdlLXRlYXNlcl9fZ3JhZGllbnQsXG4uY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0taGFzLXZpZGVvLXRlYXNlciAuY3MtaW1hZ2UtdGVhc2VyX19vcHRpbWl6ZXItY29udGFpbmVyIHtcbiAgei1pbmRleDogMTsgfVxuXG4uY3MtaW1hZ2UtdGVhc2VyIFtkYXRhLXZpZGVvLXRlYXNlcl0ge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMTsgfVxuICAuY3MtaW1hZ2UtdGVhc2VyIFtkYXRhLXZpZGVvLXRlYXNlcl06ZW1wdHkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWltYWdlLXRlYXNlciBbaWRePSd2aWRlby10ZWFzZXInXSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbiR2dF9kaXNhYmxlLXBvaW50ZXItZXZlbnRzOiB0cnVlICFkZWZhdWx0O1xuXG4uI3skbnN9aW1hZ2UtdGVhc2VyIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX3NsaWRlLS1oYXMtdmlkZW8tdGVhc2VyIHtcbiAgICAgICAgI3skcm9vdH1fX3BpY3R1cmUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2hvdyB0ZXh0LWNvbnRlbnQgYW5kIG92ZXJsYXlzIG92ZXIgdGhlIHZpZGVvXG4gICAgICAgIC8vIElmIGFkZGVkIG9uIGNvbnRlbnQtd3JhcHBlciB3aWxsIHByZXZlbnQgaW50ZXJhY3Rpb24gd2l0aCB2aWRlb1xuICAgICAgICAjeyRyb290fV9fY29udGVudCxcbiAgICAgICAgI3skcm9vdH1fX292ZXJsYXksXG4gICAgICAgICN7JHJvb3R9X19ncmFkaWVudCxcbiAgICAgICAgI3skcm9vdH1fX29wdGltaXplci1jb250YWluZXIge1xuICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlbmRlciB2aWRlbyB0ZWFzZXIgb3ZlciB0aGUgaW1hZ2VcbiAgICBbZGF0YS12aWRlby10ZWFzZXJdIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHotaW5kZXg6IDE7XG5cbiAgICAgICAgLy8gSGlkZSB2aWRlbyBwbGFjZWhvbGRlciBpZiB2aWRlbyBpcyBub3QgcmVuZGVyZWRcbiAgICAgICAgJjplbXB0eSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSWYgdmlkZW8gZG9lcyBub3QgZml0IGltYWdlIGFzcGVjdCByYXRpbywgaXQgd2lsbCBjZW50ZXIgaXRzZWxmIGluIHRoZSBjb250YWluZXJcbiAgICBbaWRePSd2aWRlby10ZWFzZXInXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuXG4gICAgICAgIEBpZiAkdnRfZGlzYWJsZS1wb2ludGVyLWV2ZW50cyB7XG4gICAgICAgICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW4gcmVhZGVyczpcbiAqIGh0dHBzOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5XG4gKlxuICogMS4gRm9yIGxvbmcgY29udGVudCwgbGluZSBmZWVkcyBhcmUgbm90IGludGVycHJldGVkIGFzIHNwYWNlcyBhbmQgc21hbGwgd2lkdGhcbiAqICAgIGNhdXNlcyBjb250ZW50IHRvIHdyYXAgMSB3b3JkIHBlciBsaW5lOlxuICogICAgaHR0cHM6Ly9tZWRpdW0uY29tL0BqZXNzZWJlYWNoL2Jld2FyZS1zbXVzaGVkLW9mZi1zY3JlZW4tYWNjZXNzaWJsZS10ZXh0LTU5NTJhNGMyY2JmZVxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2g1YnAvaHRtbDUtYm9pbGVycGxhdGUvYmxvYi9tYXN0ZXIvc3JjL2Nzcy9tYWluLmNzcyNMMTMwXG4gKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5ib2R5IHtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogI0UzRTNFMztcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuQGtleWZyYW1lcyBzY3JvbGwge1xuICAwJSB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0yNTBweCAqIDcpKTsgfSB9XG5cbi5zbGlkZXIge1xuICBiYWNrZ3JvdW5kOiAjZWNlZmYxO1xuICBib3gtc2hhZG93OiAwIDEwcHggMjBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMC4xMjUpO1xuICBoZWlnaHQ6IDE0MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDE3NHJlbTsgfVxuICAuc2xpZGVyOjpiZWZvcmUsIC5zbGlkZXI6OmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHdoaXRlIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgaGVpZ2h0OiAxNDBweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDIwMHB4O1xuICAgIHotaW5kZXg6IDI7IH1cbiAgLnNsaWRlcjo6YWZ0ZXIge1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogMDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVooMTgwZGVnKTsgfVxuICAuc2xpZGVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwOyB9XG4gIC5zbGlkZXIgLnNsaWRlLXRyYWNrIHtcbiAgICBhbmltYXRpb246IHNjcm9sbCA0MHMgbGluZWFyIGluZmluaXRlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgd2lkdGg6IGNhbGMoMjU2cHggKiAxNCk7IH1cbiAgLnNsaWRlciAuc2xpZGUge1xuICAgIGhlaWdodDogMTAwcHg7XG4gICAgd2lkdGg6IDI1MHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7IH1cblxuLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzIHtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAvKiBmb3IgSW50ZXJuZXQgRXhwbG9yZXIsIEVkZ2UgKi9cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAvKiBmb3IgRmlyZWZveCAqL1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgLmNzLXByb2R1Y3RzLWNhcm91c2VsIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCBidXR0b24jdXBkYXRlLWNhcnQtYnV0dG9uLFxuLmNoZWNrb3V0LWNhcnQtaW5kZXggYnV0dG9uI2VtcHR5X2NhcnRfYnV0dG9uIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAucGFnZS13aXRoLWZpbHRlciAuZmFzdC1kZWxpdmVyeS1ib3gge1xuICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuXG4uY3MtbGltaXRlcl9fY29udHJvbCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG5saS5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbS5jcy1saW5rcy1ibG9jay1hZGR0b19faXRlbS0tY29tcGFyZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuLmNzLWNoZWNrb3V0IC50YWJsZS1jaGVja291dC1zaGlwcGluZy1tZXRob2QgLmNvbC5jb2wtcHJpY2U6OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwianXFvCBvZCBcIjsgfVxuXG4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcy13cmFwcGVyID4gLmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXMgPiAuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlID4gLmNzLXByb2R1Y3RzLWNhcm91c2VsX19wcm9kdWN0LXRpbGUgPiAuY3MtcHJvZHVjdC10aWxlIHtcbiAgbWluLWhlaWdodDogMzAwcHg7IH1cblxuLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uID4gLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8wIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMS5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcbiAgdG9wOiAxMDBweCAhaW1wb3J0YW50OyB9XG5cbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbiA+IC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMCAuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzEgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8yLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuICB0b3A6IDBweCAhaW1wb3J0YW50OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4uYm9keSB7XG5cdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdGJhY2tncm91bmQ6ICNFM0UzRTM7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG5AbWl4aW4gd2hpdGUtZ3JhZGllbnQge1xuXHRiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMSkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMTAwJSk7XG59XG5cbiRhbmltYXRpb25TcGVlZDogNDBzO1xuXG4vLyBBbmltYXRpb25cbkBrZXlmcmFtZXMgc2Nyb2xsIHtcblx0MCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcblx0fVxuXG5cdDEwMCUge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWChjYWxjKC0yNTBweCAqIDcpKVxuXHR9XG59XG5cblxuLy8gU3R5bGluZ1xuLnNsaWRlciB7XG5cdGJhY2tncm91bmQ6ICNlY2VmZjE7XG5cdGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IC01cHggcmdiYSgwLCAwLCAwLCAuMTI1KTtcblx0aGVpZ2h0OiAxNDBweDtcblx0bWFyZ2luOiBhdXRvO1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdHdpZHRoOiAxNzRyZW07XG5cblx0Jjo6YmVmb3JlLFxuXHQmOjphZnRlciB7XG5cdFx0QGluY2x1ZGUgd2hpdGUtZ3JhZGllbnQ7XG5cdFx0Y29udGVudDogXCJcIjtcblx0XHRoZWlnaHQ6IDE0MHB4O1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR3aWR0aDogMjAwcHg7XG5cdFx0ei1pbmRleDogMjtcblx0fVxuXG5cdCY6OmFmdGVyIHtcblx0XHRyaWdodDogMDtcblx0XHR0b3A6IDA7XG5cdFx0dHJhbnNmb3JtOiByb3RhdGVaKDE4MGRlZyk7XG5cdH1cblxuXHQmOjpiZWZvcmUge1xuXHRcdGxlZnQ6IDA7XG5cdFx0dG9wOiAwO1xuXHR9XG5cblx0LnNsaWRlLXRyYWNrIHtcblx0XHRhbmltYXRpb246IHNjcm9sbCAkYW5pbWF0aW9uU3BlZWQgbGluZWFyIGluZmluaXRlO1xuXHRcdGRpc3BsYXk6IGZsZXg7XG5cdFx0d2lkdGg6IGNhbGMoMjU2cHggKiAxNCk7XG5cdH1cblxuXHQuc2xpZGUge1xuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0d2lkdGg6IDI1MHB4O1xuXHRcdHBhZGRpbmc6IDEwcHg7XG5cdH1cbn1cblxuLy8gU2Nyb2xsYmFyIGhpZGRlbiBvbiBzbGlkZXJzXG4uY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuXHQuY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3NsaWRlcyB7XG5cdFx0LW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuXHRcdC8qIGZvciBJbnRlcm5ldCBFeHBsb3JlciwgRWRnZSAqL1xuXHRcdHNjcm9sbGJhci13aWR0aDogbm9uZTtcblx0XHQvKiBmb3IgRmlyZWZveCAqL1xuXHRcdG92ZXJmbG93LXk6IHNjcm9sbDtcblxuXHRcdCY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0fVxuXHR9XG59XG5cblxuLy8gQ2hlY2tvdXQgY2FydCBoaWRkZW4gYnV0dG9uXG4uY2hlY2tvdXQtY2FydC1pbmRleCB7XG5cblx0YnV0dG9uI3VwZGF0ZS1jYXJ0LWJ1dHRvbixcblx0YnV0dG9uI2VtcHR5X2NhcnRfYnV0dG9uIHtcblx0XHRkaXNwbGF5OiBub25lO1xuXHR9XG59XG5cblxuLy9mYXN0IGRlbGl2ZXJ5IGJveCBoaWRkZW4gb24gcGFnZSB3aXRoIGZpbHRlclxuLnBhZ2Utd2l0aC1maWx0ZXIge1xuXHQuZmFzdC1kZWxpdmVyeS1ib3gge1xuXHRcdEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuXHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHR9XG5cdH1cbn1cblxuLy9saW1pdGVyX19wYWdpbmF0aW9uIGhpZGRlbiBvbiBwYWdlIHdpdGggZmlsdGVyXG4uY3MtbGltaXRlcl9fY29udHJvbCB7XG5cdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLy9jb21wYXJlIHByb2R1Y3QgaGlkZGVuIG9uIHByb2R1Y3QgdGlsZVxubGkuY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0uY3MtbGlua3MtYmxvY2stYWRkdG9fX2l0ZW0tLWNvbXBhcmUge1xuXHRkaXNwbGF5OiBub25lO1xufVxuXG4uY3MtY2hlY2tvdXQgLnRhYmxlLWNoZWNrb3V0LXNoaXBwaW5nLW1ldGhvZCAuY29sLmNvbC1wcmljZTo6YmVmb3JlIHtcblx0Y29udGVudDogXCJqdcW8IG9kIFwiO1xufVxuXG4vLyBmaXggZm9yIGhlaWdodCBvZiB0aWxlIG9uIHNsaWRlcnNcbi5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVzLXdyYXBwZXI+LmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZXM+LmNzLXByb2R1Y3RzLWNhcm91c2VsX19zbGlkZT4uY3MtcHJvZHVjdHMtY2Fyb3VzZWxfX3Byb2R1Y3QtdGlsZT4uY3MtcHJvZHVjdC10aWxlIHtcblx0bWluLWhlaWdodDogMzAwcHg7XG59XG5cblxuLy8gbW9iaWxlIG1lbnUgaGVpZ2h0cyBmaXhcbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbj4uY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1hY3RpdmUge1xuXHR0b3A6IDEwMHB4ICFpbXBvcnRhbnQ7XG59XG5cbi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbj4uY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QuY3Mtb2ZmY2FudmFzLW5hdmlnYXRpb25fX2xpc3QtLWxldmVsXzAgLmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LmNzLW9mZmNhbnZhcy1uYXZpZ2F0aW9uX19saXN0LS1sZXZlbF8xIC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tbGV2ZWxfMi5jcy1vZmZjYW52YXMtbmF2aWdhdGlvbl9fbGlzdC0tYWN0aXZlIHtcblx0dG9wOiAwcHggIWltcG9ydGFudDtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucGFnZS1wcm9kdWN0LWdyb3VwZWQgLmNzLWJ1eWJveF9fcHJpY2Uge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi5wYWdlLXByb2R1Y3QtZ3JvdXBlZCAudGFibGUtd3JhcHBlci5ncm91cGVkLFxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC50YWJsZS13cmFwcGVyLmdyb3VwZWQge1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxO1xuICBwYWRkaW5nOiAycmVtIDEuNXJlbTsgfVxuICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSxcbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC50YWJsZS13cmFwcGVyLmdyb3VwZWQgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2Uge1xuICAgIG1heC13aWR0aDogMTI4cmVtO1xuICAgIG1hcmdpbjogMCBhdXRvOyB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIC50YWJsZS13cmFwcGVyLmdyb3VwZWQgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UgaDMsXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC50YWJsZS13cmFwcGVyLmdyb3VwZWQgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UgaDMge1xuICAgICAgZm9udC1zaXplOiAyLjlyZW07XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgLnRhYmxlLXdyYXBwZXIuZ3JvdXBlZCAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSBoMyAuY291bnRlcixcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAudGFibGUtd3JhcHBlci5ncm91cGVkIC5hdmFpbGFibGUtY291bnQtbm90aWNlIGgzIC5jb3VudGVyIHtcbiAgICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkLFxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQge1xuICBtYXgtd2lkdGg6IDEyOHJlbTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkOyB9XG4gIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIHRoZWFkIHRyIC5jb2wuaXRlbSxcbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgdGhlYWQgdHIgLmNvbC5pdGVtIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0LFxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IHtcbiAgICBtaW4taGVpZ2h0OiA3NXB4O1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgYmFja2dyb3VuZDogd2hpdGUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3Qge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0ID4gdGQsXG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCA+IHRkIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgYm9yZGVyLWJvdHRvbTogdW5zZXQgIWltcG9ydGFudDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCA+IHRkLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0ID4gdGQge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlLFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgcGFkZGluZy10b3A6IDBweDsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLmJveC10aWVyLXByaWNlLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAucm93LXRpZXItcHJpY2UgLmJveC10aWVyLXByaWNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAucHJpY2VzLXRpZXIuaXRlbXMsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAucHJpY2VzLXRpZXIuaXRlbXMge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAucHJpY2VzLXRpZXIuaXRlbXMgPiAuaXRlbSxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5wcmljZXMtdGllci5pdGVtcyA+IC5pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwcHg7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5idG4tbGluayxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLnJvdy10aWVyLXByaWNlIC5idG4tbGluayB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDJyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbCxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtLFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgYm9yZGVyOiB1bnNldDsgfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0sXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtICosXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAqIHtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgbWluLXdpZHRoOiAzODBweDtcbiAgICAgICAgbWF4LXdpZHRoOiAzODBweDsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCB7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEwMCU7IH0gfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC5wcm9kdWN0LWl0ZW0tbmFtZSxcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC50ZXh0LWNvbnRlbnRfX25hbWUsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnRleHQtY29udGVudF9fbmFtZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnRleHQtY29udGVudF9faW1nLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC50ZXh0LWNvbnRlbnRfX2ltZyB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMXJlbTsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSAudmFsdWUsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSAudmFsdWUge1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2VkZWZmMTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2ssXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4OyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5zYWxlLWJhZGdlLXdyYXBwZXIgLnNhbGUtYmFkZ2UsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIC5zYWxlLWJhZGdlIHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZDogI2ZlMTY0NDtcbiAgICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMC4ycmVtO1xuICAgICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMnB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAub21uaWJ1cy13cmFwcGVyID4gc3BhbixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLm9tbmlidXMtd3JhcHBlciA+IHNwYW4ge1xuICAgICAgICAgIGNvbG9yOiAjYThiMWI3OyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gge1xuICAgICAgICAgIG9yZGVyOiA5O1xuICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jazsgfVxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAucHJpY2UtY29udGFpbmVyIC5wcmljZSxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2Uge1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZlMTY0NDsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2UsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wuaXRlbSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSxcbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IHtcbiAgICAgIHBhZGRpbmctdG9wOiAxcmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5LFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IHtcbiAgICAgICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIge1xuICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciAuc2FsZS1iYWRnZSxcbiAgICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLnNhbGUtYmFkZ2Utd3JhcHBlciAuc2FsZS1iYWRnZSB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZTE2NDQ7XG4gICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgcGFkZGluZzogMC42cmVtIDAuMnJlbTtcbiAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5pY29uLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaWNvbiB7XG4gICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmljb24taGVscDo6YmVmb3JlLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaWNvbi1oZWxwOjpiZWZvcmUge1xuICAgICAgICAgICAgICBjb250ZW50OiAnPyc7XG4gICAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmhpbnRfX2NvbnRlbnQsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5oaW50X19jb250ZW50IHtcbiAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICByaWdodDogLTAuMjVyZW07XG4gICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMTBweCk7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgICAgICBtaW4td2lkdGg6IDI1OHB4O1xuICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMTVweCAwIHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5oaW50X19jb250ZW50OjphZnRlcixcbiAgICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaGludF9fY29udGVudDo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IC0xNHB4O1xuICAgICAgICAgICAgICAgIHJpZ2h0OiA0cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICNmZmYgdHJhbnNwYXJlbnQ7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQ6aG92ZXIgLmhpbnRfX2NvbnRlbnQsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50OmhvdmVyIC5oaW50X19jb250ZW50IHtcbiAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAub21uaWJ1cy13cmFwcGVyID4gc3BhbixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAub21uaWJ1cy13cmFwcGVyID4gc3BhbiB7XG4gICAgICAgICAgY29sb3I6ICNhOGIxYjc7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94LFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gge1xuICAgICAgICAgIG9yZGVyOiA5O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2UsXG4gICAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciAucHJpY2Uge1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAuc3BlY2lhbC1wcmljZSAucHJpY2UsXG4gICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5zcGVjaWFsLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICBjb2xvcjogI2ZlMTY0NDsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZSxcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrLFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07IH0gfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubGFiZWwsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5sYWJlbCB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lcixcbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VkZWZmMTtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyOmhvdmVyIGJ1dHRvbixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lcjpob3ZlciBidXR0b24ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzExYTA5OTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIC5pbnB1dC10ZXh0LFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIGJ1dHRvbixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciBidXR0b24ge1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIGJ1dHRvbiBzcGFuLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgYnV0dG9uIHNwYW4ge1xuICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAqLFxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyICoge1xuICAgICAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgLmFjdGlvbnMtdG9vbGJhcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7IH1cbiAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5LFxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jb250cm9sLnF0eSxcbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNvbnRyb2wucXR5IHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2VkZWZmMTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jb250cm9sLnF0eSA+IGZvcm0sXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jb250cm9sLnF0eSA+IGZvcm0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50LFxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCB7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0LFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IC5jcy1xdHktaW5jcmVtZW50X19pbnB1dCB7XG4gICAgICAgICAgbWluLXdpZHRoOiAyNXB4O1xuICAgICAgICAgIG1heC13aWR0aDogNzVweDtcbiAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgICAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuLFxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW4ge1xuICAgICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3Bhbjpob3ZlcixcbiAgICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5jcy1xdHktaW5jcmVtZW50IHNwYW46aG92ZXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7IH1cbiAgICAgICAgICAgIC5wYWdlLXByb2R1Y3QtZ3JvdXBlZCB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgc3Bhbjpob3ZlciAqLFxuICAgICAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdCAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuOmhvdmVyICoge1xuICAgICAgICAgICAgICBmaWxsOiAjNGQyYzkxOyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5hZGR0b2NhcnQsXG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5hZGR0b2NhcnQge1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTsgfVxuICAgICAgICAucGFnZS1wcm9kdWN0LWdyb3VwZWQgdGFibGUuZ3JvdXBlZCAuYXNzb2NpYXRlZC1wcm9kdWN0IC5jb2wucXR5IC5hZGR0b2NhcnQ6aG92ZXIsXG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyB0YWJsZS5ncm91cGVkIC5hc3NvY2lhdGVkLXByb2R1Y3QgLmNvbC5xdHkgLmFkZHRvY2FydDpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgLnBhZ2UtcHJvZHVjdC1ncm91cGVkIHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdC5vdXQtb2Ytc3RvY2sgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCxcbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IHRhYmxlLmdyb3VwZWQgLmFzc29jaWF0ZWQtcHJvZHVjdC5vdXQtb2Ytc3RvY2sgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG4ucGFnZS1wcm9kdWN0LWdyb3VwZWR7XG4gICAgLmNzLWJ1eWJveF9fcHJpY2V7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuLnBhZ2UtcHJvZHVjdC1ncm91cGVkLFxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcblxuICAgIC50YWJsZS13cmFwcGVyLmdyb3VwZWQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgIHBhZGRpbmc6IDJyZW0gMS41cmVtO1xuXG4gICAgICAgIC5hdmFpbGFibGUtY291bnQtbm90aWNlIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJHBhZ2VfbWF4LXdpZHRoO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuOXJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuXG4gICAgICAgICAgICAgICAgLmNvdW50ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0YWJsZS5ncm91cGVkIHtcbiAgICAgICAgbWF4LXdpZHRoOiAkcGFnZV9tYXgtd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAvL2FkZFxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICB0ciB7XG4gICAgICAgICAgICAgICAgLy8gZGlzcGxheTogZmxleDtcblxuICAgICAgICAgICAgICAgIC5jb2wuaXRlbSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hc3NvY2lhdGVkLXByb2R1Y3Qge1xuICAgICAgICAgICAgbWluLWhlaWdodDogNzVweDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuXG4gICAgICAgICAgICAvL2FkZCBtb2JpbGVcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmPnRkIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHVuc2V0ICFpbXBvcnRhbnQ7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucm93LXRpZXItcHJpY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMHB4O1xuXG4gICAgICAgICAgICAgICAgLmJveC10aWVyLXByaWNle1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByaWNlcy10aWVyLml0ZW1zIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJpY2VzLXRpZXIuaXRlbXM+Lml0ZW0ge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLmJ0bi1saW5re1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbC5pdGVtIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnRleHQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzgwcHg7XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzgwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWluLXdpZHRoOiAyOTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLnRleHQtY29udGVudF9fbmFtZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC50ZXh0LWNvbnRlbnRfX2ltZ3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAudmFsdWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAucHJvZHVjdC1wcmljZS1ibG9jayB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2FsZS1iYWRnZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2FsZS1iYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZTE2NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC44cmVtIDAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm9tbmlidXMtd3JhcHBlcj5zcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogOTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2ZlMTY0NDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLm9sZC1wcmljZSAucHJpY2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYm94LXByaWNlLXF0eXtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgLy9cbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAucHJvZHVjdC1wcmljZS1pbm5lciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcblxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuc2FsZS1iYWRnZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAycHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2FsZS1iYWRnZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZTE2NDQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC42cmVtIDAuMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIC5oaW50IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaWNvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uLWhlbHB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnPyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGludF9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0wLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEzcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNThweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggMCByZ2JhKDAsMCwwLDAuMik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IC0xNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci13aWR0aDogN3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaGludF9fY29udGVudHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm9tbmlidXMtd3JhcHBlcj5zcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogOTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3BlY2lhbC1wcmljZSAucHJpY2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmUxNjQ0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYW14bm90aWYtYmxvY2sge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLm5vdGlmaWNhdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgLmlucHV0LXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jb2wucXR5IHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgLmNvbnRyb2wucXR5IHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgLy9hZGQgZmxleFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuY29udHJvbC5xdHk+Zm9ybSB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgICAgICAgICAgICAgICAgICAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAyNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4LXdpZHRoOiA3NXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw6ICRjb2xvcl9wcmltYXJ5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuYWRkdG9jYXJ0IHtcbiAgICAgICAgICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yICR0cmFuc2l0aW9uLWRlZmF1bHQtdGltZSBlYXNlO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3ByaW1hcnktODAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFzc29jaWF0ZWQtcHJvZHVjdC5vdXQtb2Ytc3RvY2sge1xuICAgICAgICAgICAgLmJveC1wcmljZS1xdHkge1xuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWJsb2NrIHtcbiAgICAgICAgICAgICAgICAgICAgLnByaWNlLWJveCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLmFzc29jaWF0ZWQtcHJvZHVjdC5vdXQtb2Ytc3RvY2sge1xuICAgICAgICAvLyAgICAgLmNvbC5pdGVtIHtcbiAgICAgICAgLy8gICAgICAgICAucHJpY2UtYm94IHtcbiAgICAgICAgLy8gICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgLy8gICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAuYW14bm90aWYtYmxvY2sge1xuICAgICAgICAgICAgICAgIC8vICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIC8vICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIC8vICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIC8vICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIC8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICAgICAgICAgIC8vICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgLy8gICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIC8vICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgLm5vdGlmaWNhdGlvbi1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgLmlucHV0LXRleHQge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIC8vIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGJveC1zaGFkb3c6IHVuc2V0O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcblxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIG1pbi13aWR0aDogdW5zZXQ7XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gICAgIH1cbiAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH1cblxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLmNzLWJ1eWJveF9fc2VjdGlvbi5jcy1idXlib3hfX3NlY3Rpb24tLXByb2R1Y3QtZm9ybSAuYXZhaWxhYmxlLWNvdW50LW5vdGljZSBoMyB7XG4gIGZvbnQtc2l6ZTogMi45cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1idXlib3hfX3NlY3Rpb24uY3MtYnV5Ym94X19zZWN0aW9uLS1wcm9kdWN0LWZvcm0gLmF2YWlsYWJsZS1jb3VudC1ub3RpY2UgaDMgLmNvdW50ZXIge1xuICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnRleHQtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMzAwcHg7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAudGV4dC1jb250ZW50IC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgZm9udC1zaXplOiAycmVtOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnRleHQtY29udGVudCAucHJvZHVjdC1za3Uge1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgbWFyZ2luOiAwIDFyZW07XG4gIHdpZHRoOiAxMDAlOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5wcm9kdWN0LWF0dHJpYnV0ZSAubGFiZWwge1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnByb2R1Y3QtYXR0cmlidXRlIC52YWx1ZSB7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBiYWNrZ3JvdW5kOiAjZWRlZmYxO1xuICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGZvbnQtc2l6ZTogMS43cmVtOyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLnByaWNlID4gLnByb2R1Y3QtaXRlbS1wcmljZSA+IC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciB7XG4gIG1hcmdpbjogMCAxcmVtO1xuICBkaXNwbGF5OiBibG9jazsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5wcmljZSA+IC5wcm9kdWN0LWl0ZW0tcHJpY2UgPiAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlLXdyYXBwZXIgPiAucHJpY2Uge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiAycmVtO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIHBhZGRpbmc6IDJyZW0gMDsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSB7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNlZGVmZjE7XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xuICBtYXJnaW4tbGVmdDogYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQgKiB7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fd3JhcHBlciB7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIgLnRvY2FydC5wcmltYXJ5LmNzLWFkZHRvY2FydF9fYnV0dG9uLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbiB7XG4gICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGJvcmRlcjogdW5zZXQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY3MtYnV5Ym94X19hZGR0b2NhcnQgLmNvbnRyb2wucXR5IC5jcy1hZGR0b2NhcnQgLmNzLWFkZHRvY2FydF9fd3JhcHBlciAudG9jYXJ0LnByaW1hcnkuY3MtYWRkdG9jYXJ0X19idXR0b24uY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLWFkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIC50b2NhcnQucHJpbWFyeS5jcy1hZGR0b2NhcnRfX2J1dHRvbi5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b246OmJlZm9yZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IHVuc2V0OyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNzLWJ1eWJveF9fYWRkdG9jYXJ0IC5jb250cm9sLnF0eSAuY3MtYWRkdG9jYXJ0IC5jcy1hZGR0b2NhcnRfX3dyYXBwZXIgLnRvY2FydC5wcmltYXJ5LmNzLWFkZHRvY2FydF9fYnV0dG9uLmNzLWJ1eWJveF9fYWRkdG9jYXJ0LWJ1dHRvbjo6YWZ0ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jcy1idXlib3hfX2FkZHRvY2FydCAuY29udHJvbC5xdHkgLmNzLWFkZHRvY2FydCAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIC50b2NhcnQucHJpbWFyeS5jcy1hZGR0b2NhcnRfX2J1dHRvbi5jcy1idXlib3hfX2FkZHRvY2FydC1idXR0b246aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxICFpbXBvcnRhbnQ7IH1cblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5yb3ctdGllci1wcmljZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIHBhZGRpbmc6IDFyZW0gMDtcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAuYm94LXRpZXItcHJpY2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAucHJpY2VzLXRpZXIuaXRlbXMge1xuICAgIG1hcmdpbjogMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5yb3ctdGllci1wcmljZSAucHJpY2VzLXRpZXIuaXRlbXMgPiAuaXRlbSB7XG4gICAgbWFyZ2luOiAxcHggMHB4OyB9XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0ge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiB1bnNldDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0ge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfSB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gKiB7XG4gICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDM4MHB4O1xuICAgIG1heC13aWR0aDogMzgwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IHtcbiAgICAgICAgbWluLXdpZHRoOiAxMDAlOyB9IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC50ZXh0LWNvbnRlbnQgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnRleHQtY29udGVudCAudGV4dC1jb250ZW50X19uYW1lIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5jb2wuaXRlbSAudGV4dC1jb250ZW50IC50ZXh0LWNvbnRlbnRfX2ltZyB7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuY29sLml0ZW0gLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICBtYXJnaW46IDAgMXJlbTtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSB7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmNvbC5pdGVtIC5wcm9kdWN0LWF0dHJpYnV0ZSAudmFsdWUge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIGJhY2tncm91bmQ6ICNlZGVmZjE7XG4gICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICBmb250LXNpemU6IDEuN3JlbTsgfVxuXG4uY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkge1xuICBwYWRkaW5nLXRvcDogMXJlbTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDguMDFlbSkge1xuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSB7XG4gICAgICBwYWRkaW5nLXRvcDogMDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IHtcbiAgICAgIG1pbi13aWR0aDogMzMzcHg7IH0gfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIHtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNnB4OyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuc2FsZS1iYWRnZS13cmFwcGVyIC5zYWxlLWJhZGdlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmUxNjQ0O1xuICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMC4ycmVtO1xuICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwLjI1cmVtO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cbiAgICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcm9kdWN0LXByaWNlLWlubmVyIC5oaW50IC5pY29uIHtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaWNvbi1oZWxwOjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICc/JztcbiAgICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBib3JkZXI6IHNvbGlkIDFweDtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByb2R1Y3QtcHJpY2UtaW5uZXIgLmhpbnQgLmhpbnRfX2NvbnRlbnQge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHJpZ2h0OiAtMC4yNXJlbTtcbiAgICAgICAgICB0b3A6IGNhbGMoMTAwJSArIDEwcHgpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgICAgei1pbmRleDogNTtcbiAgICAgICAgICBtaW4td2lkdGg6IDI1OHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludCAuaGludF9fY29udGVudDo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogLTE0cHg7XG4gICAgICAgICAgICByaWdodDogNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjZmZmIHRyYW5zcGFyZW50OyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJvZHVjdC1wcmljZS1pbm5lciAuaGludDpob3ZlciAuaGludF9fY29udGVudCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLm9tbmlidXMtd3JhcHBlciA+IHNwYW4ge1xuICAgICAgY29sb3I6ICNhOGIxYjc7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3gge1xuICAgICAgb3JkZXI6IDk7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnByaWNlLWNvbnRhaW5lciB7XG4gICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIgLnByaWNlIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5wcm9kdWN0LXByaWNlLWJsb2NrIC5wcmljZS1ib3ggLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgY29sb3I6ICNmZTE2NDQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAucHJvZHVjdC1wcmljZS1ibG9jayAucHJpY2UtYm94IC5vbGQtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLnByb2R1Y3QtcHJpY2UtYmxvY2sgLnByaWNlLWJveCAub2xkLXByaWNlIC5wcmljZS13cmFwcGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbTsgfSB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubGFiZWwge1xuICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICBmb250LXdlaWdodDogNDAwOyB9XG4gICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciB7XG4gICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjZWRlZmYxO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXI6aG92ZXIgYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzExYTA5OTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAuaW5wdXQtdGV4dCB7XG4gICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICBib3gtc2hhZG93OiB1bnNldDsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciBidXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDsgfVxuICAgICAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmFteG5vdGlmLWJsb2NrIC5ub3RpZmljYXRpb24tY29udGFpbmVyIGJ1dHRvbiBzcGFuIHtcbiAgICAgICAgICBjb2xvcjogd2hpdGU7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuYW14bm90aWYtYmxvY2sgLm5vdGlmaWNhdGlvbi1jb250YWluZXIgKiB7XG4gICAgICAgIGJvcmRlcjogbm9uZTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5hbXhub3RpZi1ibG9jayAubm90aWZpY2F0aW9uLWNvbnRhaW5lciAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgbWluLXdpZHRoOiB1bnNldDsgfVxuICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgbWFyZ2luLWxlZnQ6IDFyZW07IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNvbnRyb2wucXR5IHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZGVmZjE7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNvbnRyb2wucXR5ID4gZm9ybSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuY2F0YWxvZy1wcm9kdWN0LXZpZXcgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3QgLmJveC1wcmljZS1xdHkgLmNvbC5xdHkgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCAuY3MtcXR5LWluY3JlbWVudF9faW5wdXQge1xuICAgICAgICBtaW4td2lkdGg6IDI1cHg7XG4gICAgICAgIG1heC13aWR0aDogNzVweDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuIHtcbiAgICAgICAgYm9yZGVyOiBub25lOyB9XG4gICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICAgICAgICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuY3MtcXR5LWluY3JlbWVudCBzcGFuOmhvdmVyICoge1xuICAgICAgICAgICAgZmlsbDogIzRkMmM5MTsgfVxuICAgIC5jYXRhbG9nLXByb2R1Y3QtdmlldyAucHJvZHVjdC1hZGQtZm9ybS5zaW1wbGUtcHJvZHVjdCAuYm94LXByaWNlLXF0eSAuY29sLnF0eSAuYWRkdG9jYXJ0IHtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgICB3aWR0aDogNDBweDtcbiAgICAgIGhlaWdodDogNDBweDtcbiAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuM3MgZWFzZTsgfVxuICAgICAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5wcm9kdWN0LWFkZC1mb3JtLnNpbXBsZS1wcm9kdWN0IC5ib3gtcHJpY2UtcXR5IC5jb2wucXR5IC5hZGR0b2NhcnQ6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jcy1idXlib3hfX2FkZHRvY2FydC1maWVsZHNldCB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uLmNzLWJ1eWJveF9fc2VjdGlvbi0tcHJvZHVjdC1mb3JtIHtcbiAgICAgICAgLmF2YWlsYWJsZS1jb3VudC1ub3RpY2Uge1xuICAgICAgICAgICAgaDMge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMi45cmVtO1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuXG4gICAgICAgICAgICAgICAgLmNvdW50ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnByb2R1Y3QtYWRkLWZvcm0uc2ltcGxlLXByb2R1Y3Qge1xuICAgICAgICAuY3MtYnV5Ym94X19hZGR0b2NhcnQge1xuICAgICAgICAgICAgLnRleHQtY29udGVudCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG5cbiAgICAgICAgICAgICAgICAucHJvZHVjdC1pdGVtLW5hbWUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByb2R1Y3Qtc2t1IHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJvZHVjdC1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmxhYmVsIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC52YWx1ZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2U+LnByb2R1Y3QtaXRlbS1wcmljZT4ucHJpY2UtYm94IC5wcmljZS1jb250YWluZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgICAgICAgLnByaWNlLXdyYXBwZXI+LnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRyb2wucXR5IHtcbiAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnQge1xuICAgICAgICAgICAgICAgICAgICAqIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jcy1hZGR0b2NhcnQge1xuICAgICAgICAgICAgICAgICAgICAuY3MtYWRkdG9jYXJ0X193cmFwcGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAudG9jYXJ0LnByaW1hcnkuY3MtYWRkdG9jYXJ0X19idXR0b24uY3MtYnV5Ym94X19hZGR0b2NhcnQtYnV0dG9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jcy1hZGR0b2NhcnRfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiA1MCU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlLWRhcmsgIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucm93LXRpZXItcHJpY2Uge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcblxuICAgICAgICAgICAgLmJveC10aWVyLXByaWNle1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wcmljZXMtdGllci5pdGVtcyB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlcy10aWVyLml0ZW1zPi5pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDFweCAwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY29sLml0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBib3JkZXI6IHVuc2V0O1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz50YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgKiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC50ZXh0LWNvbnRlbnQge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzgwcHg7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzODBweDtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbWluLXdpZHRoOiAyOTVweDtcbiAgICAgICAgICAgICAgICAgICAgbWluLXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnRleHQtY29udGVudF9fbmFtZXtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLnRleHQtY29udGVudF9faW1ne1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByb2R1Y3QtYXR0cmlidXRlIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgMXJlbTtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnZhbHVlIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1wcmljZS1xdHl7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMzMzcHg7XG4gICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgLnByb2R1Y3QtcHJpY2UtYmxvY2sge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICAvL1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblxuICAgICAgICAgICAgICAgIC5wcm9kdWN0LXByaWNlLWlubmVyIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgICAgICAgICAvLyBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuXG5cbiAgICAgICAgICAgICAgICAgICAgLnNhbGUtYmFkZ2Utd3JhcHBlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiA2cHg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5zYWxlLWJhZGdlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmUxNjQ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjhyZW0gMC4ycmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAycHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAuaGludCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMC4yNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIC5pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgLmljb24taGVscHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnPyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAxcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAuaGludF9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IC0wLjI1cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYygxMDAlICsgMTBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiA1O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjU4cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDE1cHggMCByZ2JhKDAsMCwwLDAuMik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC05MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wOiAtMTRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDRweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiA3cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5oaW50X19jb250ZW50e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAub21uaWJ1cy13cmFwcGVyPnNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2E4YjFiNztcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5wcmljZS1ib3gge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogOTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlO1xuICAgICAgICAgICAgICAgICAgICBcblxuICAgICAgICAgICAgICAgICAgICAucHJpY2UtY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAxcmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtOTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLnNwZWNpYWwtcHJpY2UgLnByaWNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjZmUxNjQ0O1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAub2xkLXByaWNlIC5wcmljZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAjYThiMWI3O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC5vbGQtcHJpY2UgLnByaWNlLXdyYXBwZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuYW14bm90aWYtYmxvY2sge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5ub3RpZmljYXRpb24tY29udGFpbmVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFyZW07XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG5cbiAgICAgICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktNTAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmlucHV0LXRleHQge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWluLXdpZHRoOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMTUwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogdW5zZXQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiB1bnNldDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IHVuc2V0O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29sLnF0eSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiB1bnNldDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogMXJlbTtcblxuICAgICAgICAgICAgICAgIC5jb250cm9sLnF0eSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9iZztcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIC8vYWRkIGZsZXhcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmNvbnRyb2wucXR5PmZvcm0ge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jcy1xdHktaW5jcmVtZW50IHtcbiAgICAgICAgICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG5cbiAgICAgICAgICAgICAgICAgICAgLmNzLXF0eS1pbmNyZW1lbnRfX2lucHV0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogNzVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTkwMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsOiAkY29sb3JfcHJpbWFyeS04MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLmFkZHRvY2FydCB7XG4gICAgICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMDBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAkdHJhbnNpdGlvbi1kZWZhdWx0LXRpbWUgZWFzZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wcmltYXJ5LTgwMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxuICAgIC5jcy1idXlib3hfX2FkZHRvY2FydC1maWVsZHNldHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi50YWtlLW1lLXRvcCB7XG4gIG9wYWNpdHk6IDAuNztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZhNzAxMztcbiAgd2lkdGg6IDUwcHg7XG4gIGhlaWdodDogNTBweDtcbiAgdHJhbnNpdGlvbjogMC41cztcbiAgcG9zaXRpb246IGZpeGVkO1xuICByaWdodDogMjBweDtcbiAgYm90dG9tOiAyMHB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC50YWtlLW1lLXRvcDpob3ZlciB7XG4gICAgb3BhY2l0eTogMTsgfVxuICAudGFrZS1tZS10b3A6OmJlZm9yZSB7XG4gICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Fycm93X3VwX3doaXRlLnN2Z1wiKTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMzBweDtcbiAgICBoZWlnaHQ6IDE4cHg7IH1cblxuLnRha2UtbWUtdG9wLmhpZGRlbiB7XG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLnRha2UtbWUtdG9wIHtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X29yYW5nZTtcbiAgICB3aWR0aDogNTBweDtcbiAgICBoZWlnaHQ6IDUwcHg7XG4gICAgdHJhbnNpdGlvbjogMC41cztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoJy4uL2ltYWdlcy9pY29ucy9hcnJvd191cF93aGl0ZS5zdmcnKTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgfVxufVxuXG4udGFrZS1tZS10b3AuaGlkZGVuIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGRpc3BsYXk6IG5vbmU7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jb2x1bW5zID4gLmNvbHVtbi5tYWluIC5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZGVmZjE7IH1cbiAgLmNhdGFsb2ctcHJvZHVjdC12aWV3IC5jb2x1bW5zID4gLmNvbHVtbi5tYWluIC5jcy1jb250YWluZXItLXBhZ2UtcGRwLXRvcCAuY3MtcGFnZS1wcm9kdWN0X190b3Age1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLm1haW4ge1xuICBiYWNrZ3JvdW5kOiAjZWRlZmYxOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyB7XG4gICAgLmNvbHVtbnM+LmNvbHVtbi5tYWluIHtcbiAgICAgICAgLmNzLWNvbnRhaW5lci0tcGFnZS1wZHAtdG9wIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9iZztcblxuICAgICAgICAgICAgLmNzLXBhZ2UtcHJvZHVjdF9fdG9wIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcGFnZV9iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuLm1haW57XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2JnO1xufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jYXRhbG9nLXByb2R1Y3QtdmlldyAuY29sdW1ucyA+IC5jb2x1bW4ubWFpbiB7XG4gIHBhZGRpbmctdG9wOiAwcHggIWltcG9ydGFudDsgfVxuXG4ucHJvZHVjdC5hbGVydC5hbGVydC5zdG9jay5saW5rLXN0b2NrLWFsZXJ0ID4gLmFjdGlvbi5hbGVydCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuLmNhdGFsb2ctcHJvZHVjdC12aWV3IHtcbiAgICAuY29sdW1ucz4uY29sdW1uLm1haW4ge1xuICAgICAgICBwYWRkaW5nLXRvcDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG5cbi5wcm9kdWN0LmFsZXJ0LmFsZXJ0LnN0b2NrLmxpbmstc3RvY2stYWxlcnQ+LmFjdGlvbi5hbGVydCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmJ1eWJveF9fc2VjdGlvbi1zaWduLWluIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9XG4gIC5idXlib3hfX3NlY3Rpb24tc2lnbi1pbiBwIHtcbiAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjYjBiMGIwO1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgZm9udC1zaXplOiAxLjZyZW07IH1cbiAgLmJ1eWJveF9fc2VjdGlvbi1zaWduLWluIC5idG4tb3V0bGluZWQge1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgcGFkZGluZzogMXJlbSAycmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5idXlib3gge1xuICAgICZfX3NlY3Rpb24tc2lnbi1pbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcblxuICAgICAgICBwe1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxcmVtO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcl9zaWx2ZXItY2hhbGljZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgICAgfVxuICAgICAgICAuYnRuLW91dGxpbmVkIHtcbiAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICB9XG59IiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5AbWl4aW4gZmxleC1jZW50ZXIge1xuXHRkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5uZXdzbGV0dGVyLXJlZGluZ28ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0NTVhNjQ7XG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICBwYWRkaW5nOiA0cmVtIDFyZW07XG4gICAgbWFyZ2luOiAzcmVtIGF1dG8gNXJlbSBhdXRvO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICB9XG4gICAgLm5ld3NsZXR0ZXJfX2J0bi1jb250YWluZXIge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWNlbnRlcjtcbiAgICAgICAgbWluLWhlaWdodDogNjBweDtcbiAgICAgICAgLm5ld3NsZXR0ZXJfX2J0bntcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGUhaW1wb3J0YW50O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTBweCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICAgICAgcGFkZGluZzogMXJlbSAzcmVtIWltcG9ydGFudDtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAgICAgICAgIGhlaWdodDogNDBweCFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMSFpbXBvcnRhbnQ7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZS1kYXJrIWltcG9ydGFudDtcbiAgICAgICAgICAgICAgICBib3JkZXI6IHNvbGlkIDJweCAkY29sb3JfcGFwaWxhcnRfcHVycGxlLWRhcms7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLm5ld3NsZXR0ZXJfX3RpdGxlLWNvbnRhaW5lcntcbiAgICAgICAgQGluY2x1ZGUgZmxleC1jZW50ZXI7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIG1pbi1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICAubmV3c2xldHRlcl9fdGl0bGV7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nOiA1cmVtIDFyZW0gMXJlbSAxcmVtO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG4gICAgICAgICAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9uZXdzbGV0dGVyLW9yYW5nZS5zdmcpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNvbW1lbnR7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4zcmVtO1xuICAgIH1cbiAgICBcbn1cblxuQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgIC5uZXdzbGV0dGVyLXJlZGluZ28ge1xuICAgICAgICAubmV3c2xldHRlcl9fdGl0bGUtY29udGFpbmVye1xuICAgICAgICAgICAgLm5ld3NsZXR0ZXJfX3RpdGxle1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbSAxcmVtIDVyZW07XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjoganVzdGlmeTtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTRweDtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMHB4O1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBcbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgbWF4LWhlaWdodDogNDE0cHggIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG5cbi5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIHtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTFyZW07XG4gICAgICB3aWR0aDogY2FsYygxMDAlICsgMXJlbSkgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtdG9wLXNsaWRlciB7XG4gICAgICBwYWRkaW5nOiAwLjVyZW07IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS10b3Atc2xpZGVyIC5ob21lLXNsaWRlci1ib3gge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmJveCB7XG4gICAgcGFkZGluZzogMC41cmVtIDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmJveCB7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5uZXdzbGV0dGVyLXJlZGluZ28ge1xuICAgIHBhZGRpbmc6IDAuNXJlbSAxLjVyZW07XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIG1hcmdpbjogMC41cmVtIDA7XG4gICAgbWluLWhlaWdodDogMzAwcHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLm5ld3NsZXR0ZXItcmVkaW5nbyB7XG4gICAgICAgIG1hcmdpbjogMC41cmVtOyB9IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAubmV3c2xldHRlci1yZWRpbmdvIC5uZXdzbGV0dGVyX19idG4tY29udGFpbmVyIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDgwcHg7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5uZXdzbGV0dGVyLXJlZGluZ28gLm5ld3NsZXR0ZXJfX2J0bi1jb250YWluZXIge1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDUwcHg7IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5uZXdzbGV0dGVyLXJlZGluZ28gLm5ld3NsZXR0ZXJfX3RpdGxlLWNvbnRhaW5lciB7XG4gICAgICBtaW4taGVpZ2h0OiA5NXB4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAubmV3c2xldHRlci1yZWRpbmdvIC5uZXdzbGV0dGVyX190aXRsZS1jb250YWluZXIgLm5ld3NsZXR0ZXJfX3RpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICBwYWRkaW5nOiAycmVtIDEuNXJlbTtcbiAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4OyB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuaG9tZS1zbGlkZXItc2xpY2sgLmNvbnRlbnQgLnRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5jb250ZW50IC50aXRsZSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDNyZW07IH0gfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5jb250ZW50IC5zdWJ0aXRsZSB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5idG4ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICAgICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5idG46aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLmhvbWUtc2xpZGVyLXNsaWNrIC5idG46aG92ZXIge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stc2xpZGUge1xuICAgIG1hcmdpbi1ib3R0b206IC0xLjVyZW07IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLXNsaWRlciB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stZG90dGVkLnNsaWNrLXNsaWRlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHg7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1zbGlkZXIgLnNsaWNrLXNsaWRlIGltZyB7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA3cHg7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stc2xpZGUgaW1nIHtcbiAgICAgICAgbWF4LWhlaWdodDogNDMzcHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogNDYwLzIzNTtcbiAgICAgICAgbWluLWhlaWdodDogNDA4cHg7IH0gfVxuICAuc2VjdGlvbi13cmFwcGVyLXNsaWRlciAuc2xpY2stZG90cyB7XG4gICAgYm90dG9tOiAyMHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1kb3RzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDRyZW07IH0gfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItc2xpZGVyIC5zbGljay1kb3RzIGxpIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXFwwMDJEXCI7XG4gICAgICBmb250LXNpemU6IDRyZW07IH1cblxuLmZhc3QtZGVsaXZlcnktYm94LCAuZGlzY291bnRzLWJveCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcGFkZGluZzogMXJlbSAycmVtO1xuICBoZWlnaHQ6IDEwMCU7XG4gIG1pbi1oZWlnaHQ6IDIwMHB4OyB9XG4gIC5mYXN0LWRlbGl2ZXJ5LWJveCBhLCAuZmFzdC1kZWxpdmVyeS1ib3ggYTpob3ZlciwgLmRpc2NvdW50cy1ib3ggYSwgLmRpc2NvdW50cy1ib3ggYTpob3ZlciB7XG4gICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmZhc3QtZGVsaXZlcnktYm94IC50aXRsZSwgLmRpc2NvdW50cy1ib3ggLnRpdGxlIHtcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgcGFkZGluZzogMXJlbSAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAuZmFzdC1kZWxpdmVyeS1ib3ggLnRpdGxlLCAuZGlzY291bnRzLWJveCAudGl0bGUge1xuICAgICAgICBmb250LXNpemU6IDIuNHJlbTsgfSB9XG4gIC5mYXN0LWRlbGl2ZXJ5LWJveCAuc3VidGl0bGUsIC5kaXNjb3VudHMtYm94IC5zdWJ0aXRsZSB7XG4gICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgbWF4LXdpZHRoOiAyMTBweDsgfVxuXG4uZmFzdC1kZWxpdmVyeS1ib3gge1xuICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICBjb2xvcjogI2ZmZjtcbiAgbWFyZ2luLWJvdHRvbTogLTJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuZmFzdC1kZWxpdmVyeS1ib3gge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuZmFzdC1kZWxpdmVyeS1ib3gge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvOyB9IH1cbiAgLmZhc3QtZGVsaXZlcnktYm94IC50aXRsZSB7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLyogLmZhc3QtZGVsaXZlcnktYm94OjpiZWZvcmV7XG4gICAgY29udGVudDogJ3BhY3prYSc7XG59ICovXG4uZGlzY291bnRzLWJveCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLyogLmRpc2NvdW50cy1ib3g6OmJlZm9yZXtcbiAgICBjb250ZW50OiAna29zenlrJztcbn0gKi9cbi5zZWN0aW9uLXdyYXBwZXItY292aWQge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nLXRvcDogMDtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVyZW07IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuaXRlbSA+ICoge1xuICAgIG1pbi1oZWlnaHQ6IDM2OHB4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLml0ZW0gPiAqLFxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5pdGVtID4gKiA+ICosXG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLml0ZW0gPiAqID4gKiA+ICosXG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLml0ZW0gPiAqID4gKiA+ICogPiAqIHtcbiAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAucC0yIHtcbiAgICBwYWRkaW5nOiAwLjVyZW07IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5wLTIgLmJ0biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICBtYXJnaW4tdG9wOiAxcmVtOyB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5wLTIgLmJ0bjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmZyZWUtMi0xLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgcGFkZGluZzogMS41cmVtIDNyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMjBweDtcbiAgICBtaW4taGVpZ2h0OiA0NjBweDsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmZyZWUtMi0xLWJveCAuZnJlZS0yX3RpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogNXJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuICAgICAgcGFkZGluZy10b3A6IDNyZW07IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5mcmVlLTItMS1ib3ggLnRpdGxlLWJpZyB7XG4gICAgICBmb250LXNpemU6IDEzcmVtOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuZnJlZS0yLTEtYm94IC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuZnJlZS0yLTEtYm94IC50aXRsZS1zbWFsbCB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5uZXctaW4tYWNjZXNzb3JpZXMtYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogNDYwcHg7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5uZXctaW4tYWNjZXNzb3JpZXMtYm94IC5jb250ZW50IHtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbSAzcmVtOyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAubmV3LWluLWFjY2Vzc29yaWVzLWJveCAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5uZXctaW4tYWNjZXNzb3JpZXMtYm94IC5zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDEuNnJlbTtcbiAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAubmV3LWluLWFjY2Vzc29yaWVzLWJveCBpbWcge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4O1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDdweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWNvdmlkIC5jb3ZpZC1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDNyZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA0NjBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLCAwLCAwLCAwLjUpLCByZ2JhKDAsIDAsIDAsIDAuNSkpLCB1cmwoXCJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTYxMzExOTcxOTk0OC1kNTM4NjU2NThhODg/aXhsaWI9cmItNC4wLjMmaXhpZD1Nbnd4TWpBM2ZEQjhNSHh3YUc5MGJ5MXdZV2RsZkh4OGZHVnVmREI4Zkh4OCZhdXRvPWZvcm1hdCZmaXQ9Y3JvcCZ3PTE3NzEmcT04MFwiKTsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveCAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICBjb2xvcjogI2ZmZjsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveCAuc3VidGl0bGUge1xuICAgICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgICBtYXgtd2lkdGg6IDM4MHB4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItY292aWQgLmNvdmlkLWJveC1jbXMgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgbWluLWhlaWdodDogNDYwcHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICAgICAgICBtYXgtaGVpZ2h0OiA0NjBweDsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1jb3ZpZCAuY292aWQtYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG5cbi5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1ib3gge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMCwgMCwgMCwgMC41KSwgcmdiYSgwLCAwLCAwLCAwLjUpKSwgdXJsKFwiaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2MTMxMTk3MTk5NDgtZDUzODY1NjU4YTg4P2l4bGliPXJiLTQuMC4zJml4aWQ9TW53eE1qQTNmREI4TUh4d2FHOTBieTF3WVdkbGZIeDhmR1Z1ZkRCOGZIeDgmYXV0bz1mb3JtYXQmZml0PWNyb3Amdz0xNzcxJnE9ODBcIik7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLWJveCAudGl0bGUge1xuICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1heC13aWR0aDogMzYwcHg7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4OyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tYm94LWNtcyAuY3MtaW1hZ2UtdGVhc2VyX19maWd1cmUge1xuICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1ib3gtY21zIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZSAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW4ge1xuICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIG1heC13aWR0aDogMzYwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLXNsaWRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgIG1hcmdpbi1yaWdodDogLTEuNXJlbTsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5zZWFzb24taXMtb24tc2xpZGVyIC5jcy1zbGlkZXItcGFnaW5hdGlvbiB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLXNsaWRlciAuY3MtcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1zZWFzb24taXMtb24gLnNlYXNvbi1pcy1vbi1zbGlkZXIgLmJsb2NrLXN0YXRpYy1ibG9jay53aWRnZXQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuc2VjdGlvbi13cmFwcGVyLXNlYXNvbi1pcy1vbiAuc2Vhc29uLWlzLW9uLXNsaWRlciAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcHJvZHVjdHMtY2Fyb3VzZWwge1xuICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9uIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lciB7XG4gICAgbWluLWhlaWdodDogMzAwcHg7IH1cblxuLnNlY3Rpb24tam9iLW9mZmVycyB7XG4gIG1hcmdpbi1ib3R0b206IDVyZW07IH1cbiAgLnNlY3Rpb24tam9iLW9mZmVycyAuYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5ib3ggLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLmJveCAuc3VidGl0bGUge1xuICAgICAgZm9udC1zaXplOiAycmVtOyB9XG4gIC5zZWN0aW9uLWpvYi1vZmZlcnMgLmJveC1vZmZlciB7XG4gICAgbWFyZ2luLXRvcDogLTNyZW07IH1cbiAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1jaXR5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cbiAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWNpdHkgcCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tY2l0eSBwOjpiZWZvcmUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGNvbnRlbnQ6IHVybCguLi9pbWFnZXMvaWNvbnMvZ2VvLW9yYW5nZS5zdmcpO1xuICAgICAgICBsZWZ0OiAtMjBweDsgfVxuICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0bixcbiAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4tc2VuZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0biAuYnRuLFxuICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuLXNlbmQgLmJ0biB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICAgICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4gLmJ0bjpob3ZlcixcbiAgICAgIC5zZWN0aW9uLWpvYi1vZmZlcnMgLml0ZW0tYnRuLXNlbmQgLmJ0bjpob3ZlciB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0biAuYnRuLFxuICAgICAgICAuc2VjdGlvbi1qb2Itb2ZmZXJzIC5pdGVtLWJ0bi1zZW5kIC5idG4ge1xuICAgICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgLnNlY3Rpb24tam9iLW9mZmVycyAuaXRlbS1idG4tc2VuZCB7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogM3JlbSAycmVtOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5ob21lLXRvcC1zbGlkZXIgLmJsb2NrLXN0YXRpYy1ibG9jay53aWRnZXQsIC5jbXMtaG9tZS10ZXN0IC5ob21lLXRvcC1zbGlkZXIgLmJsb2NrLWNtcy1saW5rLndpZGdldCB7XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGgge1xuICB3aWR0aDogMTAwJTsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19jb250ZW50LXdyYXBwZXItLW92ZXIge1xuICBwYWRkaW5nLWJvdHRvbTogNHJlbTsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgcGFkZGluZzogMDtcbiAgLW1zLW92ZXJmbG93LXN0eWxlOiBub25lO1xuICAvKiBmb3IgSW50ZXJuZXQgRXhwbG9yZXIsIEVkZ2UgKi9cbiAgc2Nyb2xsYmFyLXdpZHRoOiBub25lO1xuICAvKiBmb3IgRmlyZWZveCAqL1xuICBvdmVyZmxvdy15OiBzY3JvbGw7IH1cbiAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlczo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGggLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDUyMHB4OyB9IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyB7XG4gIG1heC1oZWlnaHQ6IDM5NXB4O1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXItcmFkaXVzOiA3cHg7IH1cbiAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlci0tc2xpZGVyIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlcyAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgICAgICBtaW4taGVpZ2h0OiA1MjBweDsgfSB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1zbGlkZXItcGFnaW5hdGlvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtY29udGFpbmVyLS1pbWFnZS10ZWFzZXIge1xuICBtYXJnaW46IDA7IH1cblxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJlIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGgge1xuICAtLWJhc2Utc2l6ZTogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlci5jcy1pbWFnZS10ZWFzZXItLWNvbnRhaW5lci13aWR0aCB7XG4gICAgICBtaW4taGVpZ2h0OiAzOTVweDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXItLXNsaWRlciAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXMtd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMzk1cHg7IH0gfVxuXG5AbWVkaWEgKG1heC13aWR0aDogMjMuMTI1ZW0pIHtcbiAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICBmb250LXNpemU6IDMuNXJlbTsgfSB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX2Rlc2NyaXB0aW9uIHtcbiAgZm9udC1zaXplOiAycmVtO1xuICBtYXgtd2lkdGg6IDg1JTtcbiAgbWFyZ2luOiAxcmVtIGF1dG87IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgZm9udC1zaXplOiAyLjRyZW07IH0gfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSxcbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhOnZpc2l0ZWQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyO1xuICBjb2xvcjogI2ZmZjsgfVxuXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1zcGFuIHtcbiAgcGFkZGluZy1yaWdodDogM2VtOyB9XG5cbi5jbXMtaG9tZS10ZXN0IC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4sXG4uY21zLWhvbWUtdGVzdCAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YSAqLFxuLmNtcy1ob21lLXRlc3QgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCAqIHtcbiAgY29sb3I6ICNmZmY7XG4gIGZpbGw6ICNmZmY7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG5AbWl4aW4gYnRuLWhvbWUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9wYXBpbGFydF9wdXJwbGU7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDFweDtcbiAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgIH1cbn1cblxuXG4uY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZXN7XG4gICAgbWF4LWhlaWdodDogNDE0cHghaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG5cbn1cbi8vc2VjdGlvbiB0b3Agc2xpZGVyXG4uc2VjdGlvbi13cmFwcGVyLXNsaWRlcntcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlICsgMXJlbSkhaW1wb3J0YW50O1xuICAgIH1cbiAgICBcbiAgICAuaG9tZS10b3Atc2xpZGVye1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgLmhvbWUtc2xpZGVyLWJveHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYm94e1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZzogMC41cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5uZXdzbGV0dGVyLXJlZGluZ28ge1xuICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMS41cmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAwO1xuICAgICAgICBtaW4taGVpZ2h0OjMwMHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLm5ld3NsZXR0ZXJfX2J0bi1jb250YWluZXIge1xuICAgICAgICAgICAgbWluLWhlaWdodDogODBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5uZXdzbGV0dGVyX190aXRsZS1jb250YWluZXJ7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA5NXB4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICAgICAgLm5ld3NsZXR0ZXJfX3RpdGxle1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBzbGlja1xuICAgIC5ob21lLXNsaWRlci1zbGlja3tcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAuY29udGVudHtcbiAgICAgICAgICAgIC8vIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAxLjVyZW07XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1kZXNrdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnN1YnRpdGxle1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAuYnRue1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuLWhvbWU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpY2stc2xpZGV7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IC0xLjVyZW07XG4gICAgfVxuICAgIC5zbGljay1zbGlkZXJ7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5zbGljay1kb3R0ZWQuc2xpY2stc2xpZGVye1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuXG5cbiAgICAuc2xpY2stc2xpZGUgaW1ne1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogNDMzcHg7XG4gICAgICAgICAgICBhc3BlY3QtcmF0aW86IDQ2MC8yMzU7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0MDhweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2xpY2stZG90cyB7XG4gICAgICAgIGJvdHRvbTogMjBweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiA0cmVtO1xuICAgICAgICB9XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIlxcMDAyRFwiO1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDRyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxufVxuXG5cbi8vIGZhc3QgZGVsaXZlcnlcbi5mYXN0LWRlbGl2ZXJ5LWJveCwgLmRpc2NvdW50cy1ib3h7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgICBhLGE6aG92ZXJ7XG4gICAgICAgIGNvbG9yOiRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgfVxuICAgIFxuICAgIC50aXRsZXtcbiAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi40cmVtO1xuICAgICAgICB9XG4gICAgfVxuICAgIC5zdWJ0aXRsZXtcbiAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIG1heC13aWR0aDogMjEwcHg7XG4gICAgfVxufVxuXG4uZmFzdC1kZWxpdmVyeS1ib3h7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2FxdWE7XG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAtMnJlbTtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgfVxuICAgIC50aXRsZXtcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICB9XG59XG4vKiAuZmFzdC1kZWxpdmVyeS1ib3g6OmJlZm9yZXtcbiAgICBjb250ZW50OiAncGFjemthJztcbn0gKi9cbi5kaXNjb3VudHMtYm94e1xuICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbn1cbi8qIC5kaXNjb3VudHMtYm94OjpiZWZvcmV7XG4gICAgY29udGVudDogJ2tvc3p5ayc7XG59ICovXG5cbi8vIGRpc2NvdW50c1xuXG5cbi8vIHNlY3Rpb24gZnJlZSBjb3ZpZFxuLnNlY3Rpb24td3JhcHBlci1jb3ZpZHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nLXRvcDogMDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuNXJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IC0wLjVyZW07XG4gICAgLml0ZW0gPiAqe1xuICAgICAgICBtaW4taGVpZ2h0OiAzNjhweDtcbiAgICB9XG4gICAgLml0ZW0gPiAqLFxuICAgIC5pdGVtID4gKiA+ICosXG4gICAgLml0ZW0gPiAqID4gKiA+ICosXG4gICAgLml0ZW0gPiAqID4gKiA+ICogPiAqe1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICAgIC5wLTJ7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgLmJ0bntcbiAgICAgICAgICAgIEBpbmNsdWRlIGJ0bi1ob21lO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZnJlZS0yLTEtYm94e1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3BhcGlsYXJ0X2FxdWE7XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAzcmVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICAuZnJlZS0yX3RpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiA1cmVtO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDNyZW07XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgfVxuICAgICAgICAudGl0bGUtYmlne1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3JlbTtcbiAgICAgICAgfVxuICAgICAgICAudGl0bGV7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIH1cbiAgICAgICAgLnRpdGxlLXNtYWxse1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAubmV3LWluLWFjY2Vzc29yaWVzLWJveHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICAuY29udGVudHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEuNXJlbSAzcmVtO1xuICAgICAgICB9XG4gICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICB9XG4gICAgICAgIC5zdWJ0aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgIH1cbiAgICAgICAgaW1ne1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvdmlkLWJveHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDNyZW07XG4gICAgICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNSksIHJnYmEoMCwwLDAsMC41KSksIHVybCgnaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE2MTMxMTk3MTk5NDgtZDUzODY1NjU4YTg4P2l4bGliPXJiLTQuMC4zJml4aWQ9TW53eE1qQTNmREI4TUh4d2FHOTBieTF3WVdkbGZIeDhmR1Z1ZkRCOGZIeDgmYXV0bz1mb3JtYXQmZml0PWNyb3Amdz0xNzcxJnE9ODAnKTtcbiAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAzLjJyZW07XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICB9XG4gICAgICAgIC5zdWJ0aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMi41cmVtO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAzODBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY292aWQtYm94LWNtc3tcbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZXtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ2MHB4O1xuICAgICAgICB9XG4gICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX2ZpZ3VyZXtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDYwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWF4LWhlaWdodDogNDYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbntcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5zZWN0aW9uLXdyYXBwZXItc2Vhc29uLWlzLW9ue1xuICAgIC8vIC5jcy1wcm9kdWN0cy1jYXJvdXNlbCB7XG4gICAgLy8gICAgIC5jcy1wcm9kdWN0cy1jYXJvdXNlbF9fc2xpZGVze1xuICAgIC8vICAgICAgICAgJjo6LXdlYmtpdC1zY3JvbGxiYXJ7XG4gICAgLy8gICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbiAgICBcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICBcbiAgICAuc2Vhc29uLWlzLW9uLWJveHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgwLDAsMCwwLjUpLCByZ2JhKDAsMCwwLDAuNSkpLCB1cmwoJ2h0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjEzMTE5NzE5OTQ4LWQ1Mzg2NTY1OGE4OD9peGxpYj1yYi00LjAuMyZpeGlkPU1ud3hNakEzZkRCOE1IeHdhRzkwYnkxd1lXZGxmSHg4ZkdWdWZEQjhmSHg4JmF1dG89Zm9ybWF0JmZpdD1jcm9wJnc9MTc3MSZxPTgwJyk7XG4gICAgICAgIC50aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMy4ycmVtO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNlYXNvbi1pcy1vbi1ib3gtY21ze1xuICAgICAgICAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJle1xuICAgICAgICAgICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJle1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTEuNXJlbTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbntcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDMuMnJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgLnNlYXNvbi1pcy1vbi1zbGlkZXJ7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjVyZW07XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC5jcy1zbGlkZXItcGFnaW5hdGlvbntcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLXByb2R1Y3RzLWNhcm91c2Vse1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAuYmxvY2stc3RhdGljLWJsb2NrLndpZGdldHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcHJvZHVjdHMtY2Fyb3VzZWx7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1wcm9kdWN0LXRpbGVfX2NvbnRhaW5lcntcbiAgICAgICAgbWluLWhlaWdodDogMzAwcHg7XG4gICAgfVxufVxuXG5cbi8vIGpvYiBvZmZlcnNcbi5zZWN0aW9uLWpvYi1vZmZlcnN7XG4gICAgbWFyZ2luLWJvdHRvbTogNXJlbTtcbiAgICAuYm94e1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6JGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICB9XG4gICAgICAgIC5zdWJ0aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYm94LW9mZmVye1xuICAgICAgICBtYXJnaW4tdG9wOiAtM3JlbTtcbiAgICB9XG4gICAgLml0ZW0tY2l0eXtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgcHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9nZW8tb3JhbmdlLnN2Zyk7XG4gICAgICAgICAgICAgICAgbGVmdDogLTIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLml0ZW0tYnRuLFxuICAgIC5pdGVtLWJ0bi1zZW5ke1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAuYnRue1xuICAgICAgICAgICAgQGluY2x1ZGUgYnRuLWhvbWU7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuaXRlbS1idG4tc2VuZHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMnJlbTtcbiAgICB9XG59XG5cblxuXG4vLyBDTVMgc2xpZGVyXG4uY21zLWhvbWUtdGVzdHtcbiAgICAuaG9tZS10b3Atc2xpZGVye1xuICAgICAgICAuYmxvY2stc3RhdGljLWJsb2NrLndpZGdldCwgLmJsb2NrLWNtcy1saW5rLndpZGdldHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cblx0LmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoe1xuXHRcdHdpZHRoOiAxMDAlO1xuXHR9XG5cdC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tb3ZlciB7XG5cdFx0cGFkZGluZy1ib3R0b206IDRyZW07XG5cdH1cblx0LmNzLWltYWdlLXRlYXNlci0tc2xpZGVyLmNzLWltYWdlLXRlYXNlci0tY29udGFpbmVyLXdpZHRoIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlc3tcblx0XHRwYWRkaW5nOiAwO1xuXHRcdC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogZm9yIEludGVybmV0IEV4cGxvcmVyLCBFZGdlICovXG5cdFx0XHRzY3JvbGxiYXItd2lkdGg6IG5vbmU7IC8qIGZvciBGaXJlZm94ICovXG5cdFx0XHRvdmVyZmxvdy15OiBzY3JvbGw7XG5cdFx0XHQmOjotd2Via2l0LXNjcm9sbGJhcntcblx0XHRcdFx0ZGlzcGxheTogbm9uZTtcblx0XHRcdH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA1MjBweDtcbiAgICAgICAgICAgIH1cblx0fVxuXHQuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVze1xuXHRcdG1heC1oZWlnaHQ6IDM5NXB4O1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0Ym9yZGVyLXJhZGl1czogN3B4O1xuXHRcdC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmV7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiA1MjBweDtcbiAgICAgICAgICAgIH1cblx0XHR9XG5cdFx0XG5cdH1cblx0LmNzLXNsaWRlci1wYWdpbmF0aW9uIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0Ym90dG9tOiAwO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdH1cblx0LmNzLWNvbnRhaW5lci0taW1hZ2UtdGVhc2Vye1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXHQvLyAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlICsgLmNzLWltYWdlLXRlYXNlcl9fY29udGVudC13cmFwcGVyLS1vdmVyLCAuY3MtaW1hZ2UtdGVhc2VyLS10ZWFzZXItYW5kLXRleHQgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLWltYWdlLXVwbG9hZGVkIC5jcy1pbWFnZS10ZWFzZXJfX2NvbnRlbnQtd3JhcHBlci0tb3Zlcntcblx0XHRcbiAgICAvLyAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgIC8vICAgICAgICAgLy8gbWF4LXdpZHRoOiA3NDdweDtcblx0Ly8gXHRcdC8vIG1hcmdpbjogYXV0bztcbiAgICAvLyAgICAgfVxuICAgICAgICBcblx0Ly8gfVxuXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fZmlndXJle1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIuY3MtaW1hZ2UtdGVhc2VyLS1jb250YWluZXItd2lkdGh7XG4gICAgICAgIC0tYmFzZS1zaXplOiAxMDAlO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzOTVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyLS1zbGlkZXIgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGVzLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzOTVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbG9nYW57XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lJykge1xuICAgICAgICAgICAgZm9udC1zaXplOiAzLjVyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIG1heC13aWR0aDogODUlO1xuICAgICAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmUnKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLCBcbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YTp2aXNpdGVke1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgIH1cbiAgICAuY3MtaW1hZ2UtdGVhc2VyX19zbGlkZS0tc2NoZW1lLWxpZ2h0IC5jcy1pbWFnZS10ZWFzZXJfX2N0YS1zcGFue1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAzZW07XG4gICAgfVxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3NsaWRlLS1zY2hlbWUtbGlnaHQgLmNzLWltYWdlLXRlYXNlcl9fY3RhLXNwYW4sXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGEgKiwgXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xpZGUtLXNjaGVtZS1saWdodCAuY3MtaW1hZ2UtdGVhc2VyX19jdGE6dmlzaXRlZCAqe1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBmaWxsOiAkY29sb3Jfd2hpdGU7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmJsb2ctcGFnZSAjbWFpbmNvbnRlbnQgLmNzLWNvbnRhaW5lcl9faW5uZXIsXG4uYmxvZy1wb3N0LXZpZXcgI21haW5jb250ZW50IC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgbWF4LXdpZHRoOiAxMTRyZW07IH1cblxuLmJsb2ctcGFnZSAuYmxvY2stY2F0ZWdvcmllcyAuYmxvY2stdGl0bGUsXG4uYmxvZy1wb3N0LXZpZXcgLmJsb2NrLWNhdGVnb3JpZXMgLmJsb2NrLXRpdGxlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4uYmxvZy1wYWdlIC5hY2NvcmRpb24sXG4uYmxvZy1wb3N0LXZpZXcgLmFjY29yZGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi10b3A6IC01cmVtOyB9XG4gIC5ibG9nLXBhZ2UgLmFjY29yZGlvbiAuaXRlbSxcbiAgLmJsb2ctcG9zdC12aWV3IC5hY2NvcmRpb24gLml0ZW0ge1xuICAgIHBhZGRpbmc6IDJyZW0gMDsgfVxuICAgIC5ibG9nLXBhZ2UgLmFjY29yZGlvbiAuaXRlbSBhLFxuICAgIC5ibG9nLXBvc3QtdmlldyAuYWNjb3JkaW9uIC5pdGVtIGEge1xuICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9XG4gICAgICAuYmxvZy1wYWdlIC5hY2NvcmRpb24gLml0ZW0gYTpob3ZlcixcbiAgICAgIC5ibG9nLXBvc3QtdmlldyAuYWNjb3JkaW9uIC5pdGVtIGE6aG92ZXIge1xuICAgICAgICBjb2xvcjogIzE3YzhjMDsgfVxuXG4uYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlcixcbi5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIge1xuICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gIG1hcmdpbi1sZWZ0OiAtMS41cmVtOyB9XG4gIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QsXG4gIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWxpc3QtaXRlbSxcbiAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtbGlzdC1pdGVtIHtcbiAgICAgIG1heC13aWR0aDogMzYwcHg7XG4gICAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtZGVzY3JpcHRpb24sXG4gICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LWRlc2NyaXB0aW9uIHtcbiAgICAgIHBhZGRpbmc6IDFyZW0gMnJlbSAwIDJyZW07IH1cbiAgICAuYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LXRpdGxlLFxuICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC10aXRsZSB7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC10aXRsZSBhLFxuICAgICAgLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlciAucG9zdC1saXN0IC5wb3N0LXRpdGxlIGEge1xuICAgICAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtaG9sZGVyLFxuICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1ob2xkZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICBtYXgtd2lkdGg6IDM2MHB4OyB9XG4gICAgLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1jb250ZW50LFxuICAgIC5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIgLnBvc3QtbGlzdCAucG9zdC1jb250ZW50IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICBoZWlnaHQ6IDEwMCU7IH1cbiAgICAgIC5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtY29udGVudCBpbWcsXG4gICAgICAuYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyIC5wb3N0LWxpc3QgLnBvc3QtY29udGVudCBpbWcge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogN3B4O1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA3cHg7IH1cblxuLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5wb3N0LWxpc3QtaXRlbSxcbi5ibG9nLXBvc3QtdmlldyAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5wb3N0LWxpc3QtaXRlbSB7XG4gIHBhZGRpbmc6IDEuNXJlbTsgfVxuXG4uYmxvZy1wYWdlIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLnBvc3QtaG9sZGVyLFxuLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLnBvc3QtaG9sZGVyIHtcbiAgcGFkZGluZzogMDtcbiAgbWluLWhlaWdodDogMzAwcHg7IH1cblxuLmJsb2ctcGFnZSAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50IC5wb3N0LWRlc2NyaXB0aW9uLFxuLmJsb2ctcG9zdC12aWV3IC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnQgLnBvc3QtZGVzY3JpcHRpb24ge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5ibG9nLXBhZ2UgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAuaXRlbS5wb3N0LXBvc2VkLWRhdGUsXG4uYmxvZy1wb3N0LXZpZXcgLnBvc3QtbGlzdC13cmFwcGVyLmJsb2ctd2lkZ2V0LXJlY2VudCAuaXRlbS5wb3N0LXBvc2VkLWRhdGUge1xuICB0b3A6IDEwcHg7XG4gIHJpZ2h0OiAxMHB4OyB9XG5cbi5wb3N0LWJvdHRvbSAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50Om5vdCguYmxvZy13aWRnZXQtcmVjZW50LW1hc29ucnkpIC5wb3N0LWhvbGRlciB7XG4gIG1pbi1oZWlnaHQ6IDEwMCU7IH1cblxuLmJsb2ctcGFnZSAuaXRlbS5wb3N0LXBvc2VkLWRhdGUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMjVweDtcbiAgcmlnaHQ6IDMwcHg7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgZm9udC1zaXplOiAxLjJyZW07IH1cblxuLmJsb2ctcGFnZSAucGFnZXMuY3MtcGFnaW5hdGlvbiAuY3MtcGFnaW5hdGlvbl9fY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5ibG9nLXBhZ2UgLnBhZ2VzLmNzLXBhZ2luYXRpb24gLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQgc3ZnIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgbWFyZ2luOiAwcHggMTBweDsgfVxuICAuYmxvZy1wYWdlIC5wYWdlcy5jcy1wYWdpbmF0aW9uIC5jcy1wYWdpbmF0aW9uX19jb250ZW50IC5wYWdlcy1pdGVtcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC5ibG9nLXBhZ2UgLnBhZ2VzLmNzLXBhZ2luYXRpb24gLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQgLmNzLXBhZ2luYXRpb25fX251bWJlci0tY3VycmVudCA+IC5sYWJlbCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC5ibG9nLXBhZ2UgLnBhZ2VzLmNzLXBhZ2luYXRpb24gLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQgLnBhZ2VzLWl0ZW1zIC5jcy1wYWdpbmF0aW9uX19pdGVtIHtcbiAgICBtYXJnaW46IDBweCAxMHB4OyB9XG4iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5ibG9nLXBhZ2UsXG4uYmxvZy1wb3N0LXZpZXcge1xuICAgICNtYWluY29udGVudCB7XG4gICAgICAgIC5jcy1jb250YWluZXJfX2lubmVyIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogJGJsb2ctY29udGFpbmVyX21heC13aWR0aDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vY2F0ZWdvcnkgbGlzdFxuICAgIC5ibG9jay1jYXRlZ29yaWVzIHtcbiAgICAgICAgLmJsb2NrLXRpdGxlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWNjb3JkaW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWFyZ2luLXRvcDogLTVyZW07XG5cbiAgICAgICAgLml0ZW0ge1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbSAwO1xuXG4gICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfYXF1YTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucG9zdC1saXN0LXdyYXBwZXIge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xLjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMS41cmVtO1xuXG4gICAgICAgIC5wb3N0LWxpc3Qge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcblxuICAgICAgICAgICAgLnBvc3QtbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDM2MHB4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucG9zdC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMXJlbSAycmVtIDAgMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvc3QtdGl0bGUge1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcblxuICAgICAgICAgICAgICAgIGEge1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wb3N0LWhvbGRlciB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAzNjBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBvc3QtY29udGVudCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgaW1nIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy9yZWNlbnQgcG9zdFxuICAgIC5wb3N0LWxpc3Qtd3JhcHBlci5ibG9nLXdpZGdldC1yZWNlbnR7XG4gICAgICAgIC5wb3N0LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgLnBvc3QtaG9sZGVyIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgfVxuICAgICAgICAucG9zdC1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICAvLyBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgICAgICAuaXRlbS5wb3N0LXBvc2VkLWRhdGUge1xuICAgICAgICAgICAgdG9wOiAxMHB4O1xuICAgICAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5wb3N0LWJvdHRvbSAucG9zdC1saXN0LXdyYXBwZXIuYmxvZy13aWRnZXQtcmVjZW50Om5vdCguYmxvZy13aWRnZXQtcmVjZW50LW1hc29ucnkpIC5wb3N0LWhvbGRlcntcbiAgICBtaW4taGVpZ2h0OiAxMDAlO1xufVxuXG4uYmxvZy1wYWdlIHtcbiAgICAuaXRlbS5wb3N0LXBvc2VkLWRhdGUge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMjVweDtcbiAgICAgICAgcmlnaHQ6IDMwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICB9XG59XG5cbi5ibG9nLXBhZ2Uge1xuICAgIC5wYWdlcy5jcy1wYWdpbmF0aW9uIHtcbiAgICAgICAgLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcblxuICAgICAgICAgICAgc3ZnIHtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnBhZ2VzLWl0ZW1zIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5jcy1wYWdpbmF0aW9uX19udW1iZXItLWN1cnJlbnQ+LmxhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5wYWdlcy1pdGVtcyAuY3MtcGFnaW5hdGlvbl9faXRlbSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwcHggMTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNoZWNrb3V0LWNhcnQtaW5kZXggI21haW5jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2VkZWZmMTsgfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCAuY3MtY2FydC1pdGVtLml0ZW0taW5mbyB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggLmFjdGlvbi5jb250aW51ZSB7XG4gIGJvcmRlcjogc29saWQ7XG4gIHBhZGRpbmc6IDFyZW0gMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLWJvdHRvbTogM3JlbTsgfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCAuZmllbGQgLmlucHV0LXRleHQge1xuICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuXG4uY2hlY2tvdXQtY2FydC1pbmRleCAuZmllbGQgLmxhYmVsIHtcbiAgcGFkZGluZzogMCAwIDFyZW0gMDtcbiAgZm9udC1zaXplOiAxLjZyZW07IH1cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXggLmNzLWNvbnRhaW5lcl9fY2FydC1jb3Vwb25zIHtcbiAgcGFkZGluZzogNHJlbSAwOyB9XG4gIC5jaGVja291dC1jYXJ0LWluZGV4IC5jcy1jb250YWluZXJfX2NhcnQtY291cG9ucyAuY3MtZGlzY291bnQge1xuICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAjODg4OyB9XG4gIC5jaGVja291dC1jYXJ0LWluZGV4IC5jcy1jb250YWluZXJfX2NhcnQtY291cG9ucyAuY3MtZGlzY291bnRfX3RpdGxlLXRleHQge1xuICAgIGNvbG9yOiAjMjEyMTIxO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuLmNoZWNrb3V0LWNhcnQtaW5kZXh7XG4gICAgI21haW5jb250ZW50e1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgfVxuICAgIC5jcy1jYXJ0LWl0ZW0uaXRlbS1pbmZve1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgfVxuICAgIC5hY3Rpb24uY29udGludWUge1xuICAgICAgICBib3JkZXI6IHNvbGlkO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgfVxuICAgIC5maWVsZCB7XG4gICAgICAgIC5pbnB1dC10ZXh0IHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5sYWJlbHtcbiAgICAgICAgICAgIC8vIHBhZGRpbmc6IDJyZW0gMCAxcmVtIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMXJlbSAwO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmNzLWNvbnRhaW5lcl9fY2FydC1jb3Vwb25ze1xuICAgICAgICBwYWRkaW5nOiA0cmVtIDA7XG4gICAgICAgIC5jcy1kaXNjb3VudHtcbiAgICAgICAgICAgIGJvcmRlci10b3A6IHNvbGlkIDFweCAkY29sb3JfZ3JheTtcbiAgICAgICAgfVxuICAgICAgICAuY3MtZGlzY291bnRfX3RpdGxlLXRleHR7XG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yX21pbmVzaGFmdDtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5yZWRpbmdvLWNhdGVnb3JpZXMge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbSAxcmVtOyB9XG4gICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLndyYXBwZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICBtaW4taGVpZ2h0OiAxMDNweDtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC53cmFwcGVyIHtcbiAgICAgICAgICBtaW4taGVpZ2h0OiAyODBweDsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAud3JhcHBlciB7XG4gICAgICAgICAgcGFkZGluZzogMnJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjRlbSkge1xuICAgICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAud3JhcHBlciAuc3ViLWNhdGVnb3J5LXdyYXBwZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5jYXRlZ29yeS1jb250ZW50IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuY2F0ZWdvcnktY29udGVudCBpbWcge1xuICAgICAgICBtYXJnaW46IDAgYXV0bzsgfVxuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5jYXRlZ29yeS1jb250ZW50IGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5jYXRlZ29yeS1jb250ZW50IC5jYXRlZ29yeS1uYW1lIHtcbiAgICAgICAgZm9udC1zaXplOiAxLjdyZW07XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIG1hcmdpbjogMC41cmVtIDFyZW07XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmNhdGVnb3J5LWNvbnRlbnQgLmNhdGVnb3J5LW5hbWUge1xuICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMnJlbTsgfSB9XG4gICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLnN1Yi1jYXRlZ29yeS13cmFwcGVyIHVsIHtcbiAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6IDBweDtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtOyB9XG4gICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuc3ViLWNhdGVnb3J5LXdyYXBwZXIgdWwgbGkge1xuICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgcGFkZGluZzogMC4ycmVtIDA7IH1cbiAgICAgICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLnN1Yi1jYXRlZ29yeS13cmFwcGVyIHVsIGxpIGEge1xuICAgICAgICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gICAgLnJlZGluZ28tY2F0ZWdvcmllcyAuY2F0ZWdvcnkgLmFsbC1jYXRlZ29yaWVzIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAgIC5yZWRpbmdvLWNhdGVnb3JpZXMgLmNhdGVnb3J5IC5hbGwtY2F0ZWdvcmllcyB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gICAgICAucmVkaW5nby1jYXRlZ29yaWVzIC5jYXRlZ29yeSAuYWxsLWNhdGVnb3JpZXM6OmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJ1xcMjc2Ric7XG4gICAgICAgIHBhZGRpbmctbGVmdDogN3B4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5yZWRpbmdvLWNhdGVnb3JpZXMge1xuICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIC5jYXRlZ29yeSB7XG4gICAgICAgIHBhZGRpbmc6IDAgMXJlbSAxcmVtIDFyZW07XG4gICAgICAgIFxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAvLyBtaW4taGVpZ2h0OiA1NTBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC53cmFwcGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDEwM3B4O1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAvLyBtaW4taGVpZ2h0OiAyMzVweDtcbiAgICAgICAgICAgICAgICBtaW4taGVpZ2h0OiAyODBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc3ViLWNhdGVnb3J5LXdyYXBwZXJ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jYXRlZ29yeS1jb250ZW50IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAgICBpbWd7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzw9dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNhdGVnb3J5LW5hbWUge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMS43cmVtO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMXJlbTtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMC41cmVtIDJyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnN1Yi1jYXRlZ29yeS13cmFwcGVyIHtcblxuICAgICAgICAgICAgdWwge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbSAycmVtO1xuXG4gICAgICAgICAgICAgICAgbGkge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMC4ycmVtIDA7XG5cbiAgICAgICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3JfcGFwaWxhcnRfZ3JheWdyZWVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFsbC1jYXRlZ29yaWVzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjVyZW0gMnJlbTtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnXFwyNzZGJztcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDdweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDRyZW07XG4gIG1hcmdpbi1ib3R0b206IDRyZW07XG4gIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIHVsIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgdWwgbGkge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgcGFkZGluZy1sZWZ0OiAycmVtOyB9XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIHVsIGxpOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgd2lkdGg6IDhweDtcbiAgICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA5cHg7XG4gICAgICAgIGxlZnQ6IDA7IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5wYWdlLXRpdGxlIHtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAwOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnBhZ2Utc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogM3JlbTsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5idG4ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcbiAgICBwYWRkaW5nOiAxcmVtIDIuNXJlbTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7IH1cbiAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5idG46aG92ZXIge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmNvbnRlbnQge1xuICAgIHBhZGRpbmc6IDEuNXJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMnJlbSA2cmVtOyB9IH1cbiAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuc2VjdGlvbi13cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnNlY3Rpb24td3JhcHBlciAuaXRlbS1jb2wge1xuICAgICAgcGFkZGluZzogMS41cmVtIDA7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5zZWN0aW9uLXdyYXBwZXIgLml0ZW0tY29sIHtcbiAgICAgICAgICBwYWRkaW5nOiAxLjVyZW07IH0gfVxuICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuc2VjdGlvbi13cmFwcGVyIC5pdGVtLWNvbCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLnNlY3Rpb24tcm93LW9mZmVyIC5pdGVtLWNvbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBzdGFydDsgfVxuICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtd2l0aC1iZy1pbWcge1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDJyZW07XG4gICAgbWFyZ2luOiAycmVtIGF1dG87XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpLCByZ2JhKDEyNiwgODcsIDE5NCwgMC40KSksIHVybChcIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhL3d5c2l3eWcvb19uYXMvby1uYXMuanBnXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuc2VjdGlvbi13cmFwcGVyLWFib3V0LXVzIC5ib3gtd2l0aC1iZy1pbWcge1xuICAgICAgICBtaW4taGVpZ2h0OiA4MDBweDsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LXdpdGgtYmctaW1nIC50aXRsZSB7XG4gICAgICBmb250LXNpemU6IDNyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC13aXRoLWJnLWltZyAudGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogN3JlbTsgfSB9XG4gICAgLnNlY3Rpb24td3JhcHBlci1hYm91dC11cyAuYm94LXdpdGgtYmctaW1nIC5zdWJ0aXRsZSB7XG4gICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC13aXRoLWJnLWltZyAuc3VidGl0bGUge1xuICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTsgfSB9XG4gIC5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXMgLmJveC1lY29sb2dpY2FsLXBhY2thZ2luZyB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpLCByZ2JhKDEyNiwgODcsIDE5NCwgMC40KSksIHVybChcIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhL3d5c2l3eWcvb19uYXMvby1uYXMyLmpwZ1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjsgfVxuIiwiXG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cblxuQG1peGluIGJ0bi1hYm91dC11c3tcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gICAgcGFkZGluZzogMXJlbSAyLjVyZW07XG4gICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XG4gICAgJjpob3ZlcntcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICB9XG59XG5cbi5zZWN0aW9uLXdyYXBwZXItYWJvdXQtdXN7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiA0cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICB1bHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICBsaXtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogOHB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDlweDtcbiAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGltZ3tcbiAgICAgICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIH1cbiAgICAucGFnZS10aXRsZXtcbiAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnBhZ2Utc3VidGl0bGV7XG4gICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICB9XG5cbiAgICAuYnRue1xuICAgICAgICBAaW5jbHVkZSBidG4tYWJvdXQtdXM7XG4gICAgfVxuICAgIC5jb250ZW50e1xuICAgICAgICBwYWRkaW5nOiAxLjVyZW07XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDJyZW0gNnJlbTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuc2VjdGlvbi13cmFwcGVye1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAuaXRlbS1jb2x7XG4gICAgICAgICAgICBwYWRkaW5nOiAxLjVyZW0gMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMS41cmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgfVxuICAgIC5zZWN0aW9uLXJvdy1vZmZlcntcbiAgICAgICAgLml0ZW0tY29se1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzdGFydDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAuYm94LXdpdGgtYmctaW1ne1xuICAgICAgICBtaW4taGVpZ2h0OiAzMDBweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07XG4gICAgICAgIG1hcmdpbjogMnJlbSBhdXRvO1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpLCByZ2JhKDEyNiwgODcsIDE5NCwgMC40KSksIHVybCgnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWEvd3lzaXd5Zy9vX25hcy9vLW5hcy5qcGcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDgwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxle1xuICAgICAgICAgICAgZm9udC1zaXplOiAzcmVtO1xuICAgICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogN3JlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zdWJ0aXRsZXtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMnJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNHJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAuYm94LWVjb2xvZ2ljYWwtcGFja2FnaW5ne1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQocmdiYSgxMjYsIDg3LCAxOTQsIDAuNCksIHJnYmEoMTI2LCA4NywgMTk0LCAwLjQpKSwgdXJsKCcuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYS93eXNpd3lnL29fbmFzL28tbmFzMi5qcGcnKTtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIH1cbiAgICBcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uYjJjLWIyYl9ib3gge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyOiBzb2xpZCAxcHggI2RkZDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgcGFkZGluZzogMC41cmVtO1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIG1pbi1oZWlnaHQ6IDMwcHg7IH1cbiAgLmIyYy1iMmJfYm94IC5iMmMtYjJiX2l0ZW0ge1xuICAgIHBhZGRpbmc6IDAuMnJlbSAycmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgLmIyYy1iMmJfYm94IC5iMmNfYm94IHtcbiAgICBiYWNrZ3JvdW5kOiAjMTdjOGMwO1xuICAgIGNvbG9yOiAjZmZmOyB9XG4gIC5iMmMtYjJiX2JveCAuYjJiX2JveCBhIHtcbiAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAgIC5iMmMtYjJiX2JveCAuYjJiX2JveCBhOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjMTdjOGMwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbi5iMmMtYjJiX2JveHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyOiBzb2xpZCAxcHggI2RkZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfd2hpdGU7XG4gICAgcGFkZGluZzogMC41cmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIG1pbi1oZWlnaHQ6IDMwcHg7XG5cbiAgICAuYjJjLWIyYl9pdGVte1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW0gMnJlbTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIH1cbiAgICAuYjJjX2JveHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS0yMDA7XG4gICAgICAgIGNvbG9yOiAkY29sb3JfdGV4dC0yMDA7XG4gICAgfVxuICAgIC5iMmJfYm94e1xuICAgICAgICBhe1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvcl90ZXh0LTgwMDtcbiAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5wYXJ0bmVycy1zbGlkZXItc2xpY2sgLnNsaWNrLXRyYWNrIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ucGFydG5lcnMtYm94IHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgLnBhcnRuZXJzLWJveCBoMiB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgLnBhcnRuZXJzLWJveCBpbWcge1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjVyZW07XG4gICAgd2lkdGg6IDk3JTsgfVxuICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxcmVtIDAgMCAwO1xuICAgIG1hcmdpbjogMDsgfVxuICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyBsaSB7XG4gICAgICB3aWR0aDogMjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDogNXB4OyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgbGkge1xuICAgICAgICAgIHdpZHRoOiA0MHB4OyB9IH1cbiAgICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b24ge1xuICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gICAgICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAgICAgLnBhcnRuZXJzLWJveCAuc2xpY2stc2xpZGVyIC5zbGljay1kb3RzIGxpIGJ1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogNDBweDsgfSB9XG4gICAgICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b246OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgYmFja2dyb3VuZDogIzdlNTdjMjtcbiAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICBoZWlnaHQ6IDRweDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgICBvcGFjaXR5OiAxOyB9XG4gICAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgICAgICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyBsaSBidXR0b246OmJlZm9yZSB7XG4gICAgICAgICAgICAgIHdpZHRoOiA0MHB4OyB9IH1cbiAgICAucGFydG5lcnMtYm94IC5zbGljay1zbGlkZXIgLnNsaWNrLWRvdHMgLnNsaWNrLWFjdGl2ZSBidXR0b24ge1xuICAgICAgYmFja2dyb3VuZDogIzE3YzhjMDtcbiAgICAgIG9wYWNpdHk6IDE7IH1cbiAgICAgIC5wYXJ0bmVycy1ib3ggLnNsaWNrLXNsaWRlciAuc2xpY2stZG90cyAuc2xpY2stYWN0aXZlIGJ1dHRvbjo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIGJhY2tncm91bmQ6ICMxN2M4YzA7XG4gICAgICAgIG9wYWNpdHk6IDE7IH1cbiIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLnBhcnRuZXJzLXNsaWRlci1zbGljayAuc2xpY2stdHJhY2t7XG4gICAgZGlzcGxheTogZmxleDtcbn1cbi5wYXJ0bmVycy1ib3h7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBoMntcbiAgICAgICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgfVxuICAgIGltZ3tcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMC41cmVtO1xuICAgICAgICB3aWR0aDogOTclO1xuICAgIH1cblxuICAgIC5zbGljay1zbGlkZXJ7XG4gICAgICAgIC5zbGljay1kb3Rze1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMCAwIDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICBsaXtcbiAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZUxnJykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnV0dG9ue1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcHJpbWFyeS01MDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMjBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNHB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5zbGljay1hY3RpdmV7XG4gICAgICAgICAgICAgICAgYnV0dG9ue1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3Jfc2Vjb25kYXJ5LTIwMDtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3Jle1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDonJztcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9zZWNvbmRhcnktMjAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBcbiAgICB9XG4gICAgXG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbHVtbjpub3QoLnNpZGViYXItbWFpbikgLmZvcm0uY29udGFjdCxcbi5jbXMta29ud2Vyc2phLWIyYiAuY29sdW1uOm5vdCguc2lkZWJhci1tYWluKSAuZm9ybS5jb250YWN0IHtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi5jbXMtc3RyZWZhLWRsYS1maXJtIC5jb2x1bW46bm90KC5zaWRlYmFyLWFkZGl0aW9uYWwpIC5mb3JtLmNvbnRhY3QsXG4uY21zLWtvbndlcnNqYS1iMmIgLmNvbHVtbjpub3QoLnNpZGViYXItYWRkaXRpb25hbCkgLmZvcm0uY29udGFjdCB7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgY2xlYXI6IGJvdGg7XG4gIHBhZGRpbmc6IDRyZW0gMnJlbTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbHVtbjpub3QoLnNpZGViYXItYWRkaXRpb25hbCkgLmZvcm0uY29udGFjdCxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbHVtbjpub3QoLnNpZGViYXItYWRkaXRpb25hbCkgLmZvcm0uY29udGFjdCB7XG4gICAgICBtaW4td2lkdGg6IDYwcmVtOyB9IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWRhc2hib2FyZCAuZmllbGRzZXQsXG4uY21zLWtvbndlcnNqYS1iMmIgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQge1xuICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtZGFzaGJvYXJkIC5sZWdlbmQsXG4uY21zLWtvbndlcnNqYS1iMmIgLmNzLWRhc2hib2FyZCAubGVnZW5kIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luOiAwOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCBoMixcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCBoMiB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gI21haW5jb250ZW50LFxuLmNtcy1rb253ZXJzamEtYjJiICNtYWluY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNlZGVmZjE7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlcixcbi5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIHtcbiAgcGFkZGluZzogM3JlbSAwO1xuICBtYXJnaW4tbGVmdDogLTFyZW07XG4gIG1hcmdpbi1yaWdodDogLTFyZW07IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgICBtYXJnaW46IDFyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtaW4td2lkdGg6IDI1MHB4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LFxuICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IHtcbiAgICAgICAgbWluLWhlaWdodDogMzQ3cHg7IH0gfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94IC5jb250YWN0LWJ0bixcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYnRuIHtcbiAgICAgIGJvcmRlcjogc29saWQgMnB4O1xuICAgICAgYm9yZGVyLXJhZGl1czogNjBweDtcbiAgICAgIHBhZGRpbmc6IDAuNXJlbSAxcmVtIDAuNXJlbSAzLjVyZW07XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtYXJnaW46IDAuNXJlbSAwLjVyZW0gMC41cmVtIDA7XG4gICAgICBtaW4td2lkdGg6IDIwMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1idG46OmJlZm9yZSxcbiAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1idG46OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy90ZWxlcGhvbmUtcHVycGxlLnN2Z1wiKTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgIHRvcDogNTMlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYnRuLW1haWw6OmJlZm9yZSxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYnRuLW1haWw6OmJlZm9yZSB7XG4gICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbC1wdXJwbGUuc3ZnXCIpOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3ggLmNvbnRhY3QtYm94LWhvdXJzLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1ib3gtaG91cnMge1xuICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHBhZGRpbmctbGVmdDogMi4zcmVtO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1ib3gtaG91cnM6OmJlZm9yZSxcbiAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveCAuY29udGFjdC1ib3gtaG91cnM6OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jbG9jay1wdXJwbGUuc3ZnXCIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogNTMlO1xuICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOyB9XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24sXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyLjVyZW07XG4gICAgbWluLWhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAzcmVtIDJyZW07XG4gICAgbWFyZ2luLXRvcDogM3JlbTtcbiAgICBib3JkZXI6IHNvbGlkIDJweCAjZmE3MDEzOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24td3JhcHBlciAuY29udGFjdC1ib3gtcGVyc29uYWwtY29sbGVjdGlvbiBwLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHAsXG4gICAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHAge1xuICAgICAgICAgIHBhZGRpbmctbGVmdDogN3JlbTsgfVxuICAgICAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLXdyYXBwZXIgLmNvbnRhY3QtYm94LXBlcnNvbmFsLWNvbGxlY3Rpb24gcDo6YmVmb3JlLFxuICAgICAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi13cmFwcGVyIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHA6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiB1cmwoLi4vaW1hZ2VzL2ljb25zL2V4Y2xhbWF0aW9uLXRyaWFuZ2xlLW9yYW5nZS5zdmcpO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICBsZWZ0OiAwOyB9IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjksXG4uY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkge1xuICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICBtYXJnaW4tbGVmdDogLTFyZW07IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnNlY3Rpb24tdGFiLXRpdGxlLFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnNlY3Rpb24tdGFiLXRpdGxlIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMXJlbSAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94LFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmc6IDFyZW07XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5pdGVtLnRpdGxlLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLml0ZW0udGl0bGUge1xuICAgICAgcGFkZGluZzogMXJlbSAwOyB9XG4gICAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLml0ZW0udGl0bGUgLnN3aXRjaCxcbiAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLml0ZW0udGl0bGUgLnN3aXRjaCB7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDNyZW07IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaCxcbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6Zm9jdXMsXG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoOmhvdmVyLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLml0ZW0udGl0bGUuYWN0aXZlID4gLnN3aXRjaCxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNvbnRhY3Qtcm93LXRhYjkgLnRpdGxlLXRhYnMtYm94IC5wcm9kdWN0LmRhdGEuaXRlbXMgPiAuaXRlbS50aXRsZS5hY3RpdmUgPiAuc3dpdGNoOmZvY3VzLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY29udGFjdC1yb3ctdGFiOSAudGl0bGUtdGFicy1ib3ggLnByb2R1Y3QuZGF0YS5pdGVtcyA+IC5pdGVtLnRpdGxlLmFjdGl2ZSA+IC5zd2l0Y2g6aG92ZXIge1xuICAgICAgYm9yZGVyLWJvdHRvbTogc29saWQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMC44cmVtO1xuICAgICAgY29sb3I6ICMxN2M4YzA7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzLFxuLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyB7XG4gIG1hcmdpbi1ib3R0b206IDhyZW07IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3gsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBtYXJnaW46IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1uYW1lLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLW5hbWUge1xuICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTtcbiAgICAgIGZvbnQtc2l6ZTogMnJlbTsgfVxuICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbGluayxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1saW5rIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgcGFkZGluZy1sZWZ0OiA0cmVtOyB9XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1waG9uZSxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLnNlY3Rpb24tY29udGFjdC10YWJzIC5jb250ZW50LXRhYi1ib3ggLnRhYi1waG9uZSB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItcGhvbmU6OmJlZm9yZSxcbiAgICAgIC5jbXMta29ud2Vyc2phLWIyYiAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLXBob25lOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvdGVsZXBob25lLWdyYXkuc3ZnXCIpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuc2VjdGlvbi1jb250YWN0LXRhYnMgLmNvbnRlbnQtdGFiLWJveCAudGFiLW1haWwsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbWFpbCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAgIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbWFpbDo6YmVmb3JlLFxuICAgICAgLmNtcy1rb253ZXJzamEtYjJiIC5zZWN0aW9uLWNvbnRhY3QtdGFicyAuY29udGVudC10YWItYm94IC50YWItbWFpbDo6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21haWwtZ3JheS5zdmdcIik7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5maWVsZCAuY29udHJvbCA+IHRleHRhcmVhLFxuLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmZpZWxkIC5jb250cm9sID4gdGV4dGFyZWEge1xuICBib3JkZXItcmFkaXVzOiAxNXB4O1xuICBtaW4taGVpZ2h0OiAzNTRweDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5maWVsZC5jb21tZW50LnJlcXVpcmVkLFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuZmllbGQuY29tbWVudC5yZXF1aXJlZCB7XG4gICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAuY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5ib3gtaXRlbXMtaW5wdXQsXG4gIC5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5ib3gtaXRlbXMtaW5wdXQge1xuICAgIHBhZGRpbmctcmlnaHQ6IDJyZW07IH0gfVxuXG4uY21zLXN0cmVmYS1kbGEtZmlybSAuZm9ybS5jb250YWN0IC5maWVsZC50ZXJtcyxcbi5jbXMta29ud2Vyc2phLWIyYiAuZm9ybS5jb250YWN0IC5maWVsZC50ZXJtcyB7XG4gIHBhZGRpbmc6IDFyZW0gMCAwIDA7IH1cbiAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuZmllbGQudGVybXMgLmxhYmVsLFxuICAuY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuZmllbGQudGVybXMgLmxhYmVsIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMzBweCk7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuYWN0aW9ucy10b29sYmFyLFxuLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmFjdGlvbnMtdG9vbGJhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuYm94LWl0ZW0tdGVybXMsXG4uY21zLWtvbndlcnNqYS1iMmIgLmZvcm0uY29udGFjdCAuYm94LWl0ZW0tdGVybXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmZvcm0uY29udGFjdCAuYm94LWl0ZW0tdGVybXMsXG4gICAgLmNtcy1rb253ZXJzamEtYjJiIC5mb3JtLmNvbnRhY3QgLmJveC1pdGVtLXRlcm1zIHtcbiAgICAgIG1pbi1oZWlnaHQ6IDM3MHB4OyB9IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gIC5jbXMtc3RyZWZhLWRsYS1maXJtIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbixcbiAgLmNtcy1rb253ZXJzamEtYjJiIC5jcy1pbWFnZS10ZWFzZXJfX3Nsb2dhbiB7XG4gICAgZm9udC1zaXplOiAzcmVtOyB9IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSxcbi5jbXMta29ud2Vyc2phLWIyYiAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgbWluLWhlaWdodDogNDIwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDIzLjExNWVtKSB7XG4gICAgLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSxcbiAgICAuY21zLWtvbndlcnNqYS1iMmIgLmNzLWltYWdlLXRlYXNlcl9fcGljdHVyZSB7XG4gICAgICBhc3BlY3QtcmF0aW86IDEvMSAhaW1wb3J0YW50OyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY21zLXN0cmVmYS1kbGEtZmlybSAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlLFxuICAgIC5jbXMta29ud2Vyc2phLWIyYiAuY3MtaW1hZ2UtdGVhc2VyX19waWN0dXJlIHtcbiAgICAgIG1heC1oZWlnaHQ6IDQwMHB4OyB9IH1cblxuLmNtcy1zdHJlZmEtZGxhLWZpcm0gLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24sXG4uY21zLWtvbndlcnNqYS1iMmIgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDJyZW07XG4gIG1heC13aWR0aDogOTAwcHg7IH1cbiIsIi8vIFN0eWxlcyBtb3ZlZCBmcm9tIHZlbmRvci9tYWdlbnRvL3RoZW1lLWZyb250ZW5kLWJsYW5rL01hZ2VudG9fQ29udGFjdC93ZWIvY3NzL3NvdXJjZS9fbW9kdWxlLmxlc3Ncbi8vIGluIG9yZGVyIHRvIGF2b2lkIGxvYWRpbmcgdGhlbSBvbiBldmVyeSBwYWdlIHZpYSBzdHlsZXMtbS5jc3MgYW5kIHN0eWxlcy1sLnNjc3NcblxuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuXG4uY21zLXN0cmVmYS1kbGEtZmlybSxcbi5jbXMta29ud2Vyc2phLWIyYiB7XG4gICAgLmNvbHVtbjpub3QoLnNpZGViYXItbWFpbikgLmZvcm0uY29udGFjdCB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAuY29sdW1uOm5vdCguc2lkZWJhci1hZGRpdGlvbmFsKSAuZm9ybS5jb250YWN0IHtcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBjbGVhcjogYm90aDtcbiAgICAgICAgcGFkZGluZzogNHJlbSAycmVtO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWluLXdpZHRoOiA2MHJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0IHtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNzLWRhc2hib2FyZCAubGVnZW5kIHtcbiAgICAgICAgaDIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAjbWFpbmNvbnRlbnQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfYmc7XG4gICAgfVxuXG4gICAgLnNlY3Rpb24td3JhcHBlciB7XG4gICAgICAgIHBhZGRpbmc6IDNyZW0gMDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xcmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuXG4gICAgICAgIC5jb250YWN0LWJveCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICBtYXJnaW46IDFyZW07XG5cbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAyNTBweDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIG1pbi1oZWlnaHQ6IDM0N3B4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udGFjdC1idG4ge1xuICAgICAgICAgICAgICAgIGJvcmRlcjogc29saWQgMnB4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDYwcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDFyZW0gMC41cmVtIDMuNXJlbTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwLjVyZW0gMC41cmVtIDAuNXJlbSAwO1xuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy90ZWxlcGhvbmUtcHVycGxlLnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAxLjVyZW07XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTMlO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmNvbnRhY3QtYnRuLW1haWwge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9tYWlsLXB1cnBsZS5zdmdcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udGFjdC1ib3gtaG91cnMge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMi4zcmVtO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jbG9jay1wdXJwbGUuc3ZnXCIpO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogNTMlO1xuICAgICAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250YWN0LWJveC1wZXJzb25hbC1jb2xsZWN0aW9uIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDIuNXJlbTtcbiAgICAgICAgICAgIG1pbi1oZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAzcmVtIDJyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAzcmVtO1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAycHggJGNvbG9yX3BhcGlsYXJ0X29yYW5nZTtcblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogN3JlbTtcblxuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKC4uL2ltYWdlcy9pY29ucy9leGNsYW1hdGlvbi10cmlhbmdsZS1vcmFuZ2Uuc3ZnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogNTAlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbnRhY3Qtcm93LXRhYjkge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IC0xcmVtO1xuICAgICAgICBtYXJnaW4tbGVmdDogLTFyZW07XG5cbiAgICAgICAgLnNlY3Rpb24tdGFiLXRpdGxlIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgMXJlbSAxcmVtIDFyZW07XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRpdGxlLXRhYnMtYm94IHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtO1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAuaXRlbS50aXRsZSB7XG4gICAgICAgICAgICAgICAgLy8gbWluLXdpZHRoOiAxNjVweDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDA7XG5cbiAgICAgICAgICAgICAgICAuc3dpdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9ncmF5Z3JlZW47XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFyZW0gM3JlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5pdGVtLnRpdGxlLmFjdGl2ZT4uc3dpdGNoLFxuICAgICAgICAgICAgLnByb2R1Y3QuZGF0YS5pdGVtcz4uaXRlbS50aXRsZS5hY3RpdmU+LnN3aXRjaDpmb2N1cyxcbiAgICAgICAgICAgIC5wcm9kdWN0LmRhdGEuaXRlbXM+Lml0ZW0udGl0bGUuYWN0aXZlPi5zd2l0Y2g6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IHNvbGlkO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwLjhyZW07XG4gICAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcl9wYXBpbGFydF9hcXVhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAuc2VjdGlvbi1jb250YWN0LXRhYnMge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cmVtO1xuXG4gICAgICAgIC5jb250ZW50LXRhYi1ib3gge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgICAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG5cbiAgICAgICAgICAgIC50YWItbmFtZSB7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAudGFiLWxpbmsge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNHJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRhYi1waG9uZSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL3RlbGVwaG9uZS1ncmF5LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnRhYi1tYWlsIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbC1ncmF5LnN2Z1wiKTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuXG5cbiAgICAvL2Zvcm1cbiAgICAuZm9ybS5jb250YWN0IHtcbiAgICAgICAgLmZpZWxkIC5jb250cm9sPnRleHRhcmVhIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDE1cHg7XG4gICAgICAgICAgICBtaW4taGVpZ2h0OiAzNTRweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC5jb21tZW50LnJlcXVpcmVkIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtaXRlbXMtaW5wdXQge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMnJlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5maWVsZC50ZXJtcyB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxcmVtIDAgMCAwO1xuXG4gICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAzMHB4KTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuYm94LWl0ZW0tdGVybXMge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wTGcnKSB7XG4gICAgICAgICAgICAgICAgbWluLWhlaWdodDogMzcwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vc3RyZWZhIGRsYSBmaXJtXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fc2xvZ2FuIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZScpIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5jcy1pbWFnZS10ZWFzZXJfX3BpY3R1cmUge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lJykge1xuICAgICAgICAgICAgYXNwZWN0LXJhdGlvOiAxLzEgIWltcG9ydGFudDtcbiAgICAgICAgfVxuXG4gICAgICAgIG1pbi1oZWlnaHQ6IDQyMHB4O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLWltYWdlLXRlYXNlcl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIG1heC13aWR0aDogOTAwcHg7XG4gICAgfVxuXG5cbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1hY2NvdW50LmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tbG9nZ2VkLWluIC5jcy1oZWFkZXItdXNlci1uYXZfX2xpbmsge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cblxuLnVzZXItZHJvcGRvd24tbWVudSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMDAlO1xuICBsZWZ0OiAwcHg7XG4gIGJhY2tncm91bmQ6IHdoaXRlO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiA1cHg7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJveC1zaGFkb3c6IDJweCAycHggNXB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG4gIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAudXNlci1kcm9wZG93bi1tZW51IGxpIHtcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsgfVxuICAudXNlci1kcm9wZG93bi1tZW51IGEge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgbWFyZ2luOiAwLjVyZW0gMnJlbTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0LjAxZW0pIHtcbiAgLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbjpob3ZlciAudXNlci1kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBibG9jazsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NC4wMWVtKSB7XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICdcXDI3NkYnO1xuICAgIHJvdGF0ZTogOTBkZWc7XG4gICAgZm9udC1zaXplOiAycmVtOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluazpob3Zlcjo6YWZ0ZXIge1xuICAgIHJvdGF0ZTogMjcwZGVnOyB9XG4gIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICBtaW4td2lkdGg6IDgwcHg7IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuXG5cbi5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGluayB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udXNlci1kcm9wZG93bi1tZW51IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMHB4O1xuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAycHggMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcblxuICAgIGxpIHtcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS42cmVtO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3RleHQtODAwO1xuICAgICAgICBtYXJnaW46IDAuNXJlbSAycmVtO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIH1cbn1cblxuLmNzLWhlYWRlci11c2VyLW5hdl9faXRlbS0tYWNjb3VudC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWxvZ2dlZC1pbjpob3ZlciB7XG4gICAgLnVzZXItZHJvcGRvd24tbWVudSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+bGFwdG9wJykge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBpbmNsdWRlIG1lZGlhKCc+bGFwdG9wJykge1xuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2l0ZW0tLWFjY291bnQuY3MtaGVhZGVyLXVzZXItbmF2X19pdGVtLS1sb2dnZWQtaW4gLmNzLWhlYWRlci11c2VyLW5hdl9fbGlua3tcbiAgICAgICAgJjo6YWZ0ZXJ7XG4gICAgICAgICAgICBjb250ZW50OiAnXFwyNzZGJztcbiAgICAgICAgICAgIHJvdGF0ZTogOTBkZWc7XG4gICAgICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAmOjphZnRlcntcbiAgICAgICAgICAgICAgICByb3RhdGU6IDI3MGRlZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgfVxuICAgIC5jcy1oZWFkZXItdXNlci1uYXZfX2xhYmVsIHtcbiAgICAgICAgbWluLXdpZHRoOiA4MHB4O1xuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jdXN0b20tbW9kYWwtb3BlbiB7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuXG4uY3VzdG9tLW1vZGFsIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgei1pbmRleDogLTE7XG4gIG9wYWNpdHk6IDA7XG4gIGhlaWdodDogMHB4O1xuICB3aWR0aDogMHB4OyB9XG4gIC5jdXN0b20tbW9kYWwgLmNvbnRlbnQge1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3VzdG9tLW1vZGFsIC5jdXN0b20tbW9kYWwtY2xvc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7XG4gICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgIG1hcmdpbjogMXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgcmlnaHQ6IDIlOyB9XG5cbi5jdXN0b20tbW9kYWwub3BlbiB7XG4gIHotaW5kZXg6IDk5NztcbiAgb3BhY2l0eTogMTtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiAwO1xuICB0b3A6IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgaGVpZ2h0OiAxMDB2aDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmN1c3RvbS1tb2RhbC5vcGVuIC5jb250ZW50IHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBwYWRkaW5nOiAycmVtO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgbWF4LWhlaWdodDogOTV2aDtcbiAgICBtaW4td2lkdGg6IDMwMHB4O1xuICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIHdpZHRoOiA4MDBweDtcbiAgICBoZWlnaHQ6IGZpdC1jb250ZW50OyB9XG4gIC5jdXN0b20tbW9kYWwub3BlbiAub3ZlcmxheSB7XG4gICAgei1pbmRleDogOTk4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwYjM7IH1cblxuLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBwYWRkaW5nOiAycmVtO1xuICBmb250LXNpemU6IDIuOHJlbTsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IGgzIHtcbiAgICBmb250LXNpemU6IDRyZW07IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCBoMywgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCBwIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCBwIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5wb3B1cC1ib3gtaW5wdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLnBvcHVwLWJveC1pbnB1dCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH0gfVxuICAgIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLnBvcHVwLWJveC1pbnB1dCAuZmllbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLnBvcHVwLWNvbW1lbnQge1xuICAgIGZvbnQtc2l6ZTogMS42cmVtOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLm5ld3NsZXR0ZXJfX2J0biB7XG4gICAgYmFja2dyb3VuZDogI2ZhNzAxMztcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyOiBzb2xpZCAycHggI2ZhNzAxMztcbiAgICBmb250LXNpemU6IDJyZW07XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMS4ycmVtIDNyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAubmV3c2xldHRlcl9fYnRuIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJyZW07IH0gfVxuICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5hbWZvcm0tZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiA1MDBweDtcbiAgICBwYWRkaW5nOiAwOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLmFtZm9ybS1mb3JtIC5hY3Rpb24ucHJpbWFyeSwgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAuYW1mb3JtLXBhcmVudCAuYWN0aW9uLnByaW1hcnkge1xuICAgIG1hcmdpbi10b3A6IDA7XG4gICAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnQgLmNzLW5ld3NsZXR0ZXJfX2FjdGlvbnMge1xuICAgIGhlaWdodDogNS40cmVtO1xuICAgIHdpZHRoOiA3MHB4OyB9XG4gICAgLm5ld3NsZXR0ZXItcG9wdXAtY29udGVudCAuY3MtbmV3c2xldHRlcl9fYWN0aW9ucyAuY3MtbmV3c2xldHRlcl9fYnV0dG9uIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICAubmV3c2xldHRlci1wb3B1cC1jb250ZW50IC5jcy1uZXdzbGV0dGVyX19hY3Rpb25zIC5jcy1uZXdzbGV0dGVyX19idXR0b246OmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6IFwiPlwiOyB9XG4iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5jdXN0b20tbW9kYWwtb3BlbiB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uY3VzdG9tLW1vZGFsIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgaGVpZ2h0OiAwcHg7XG4gICAgd2lkdGg6IDBweDtcblxuICAgIC5jb250ZW50IHtcbiAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB9XG5cbiAgICAuY3VzdG9tLW1vZGFsLWNsb3NlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3BhcGlsYXJ0X3B1cnBsZTtcbiAgICAgICAgcGFkZGluZzogMXJlbSAycmVtO1xuICAgICAgICBtYXJnaW46IDFyZW07XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICBmb250LXNpemU6IDEuN3JlbTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIHJpZ2h0OiAyJTtcbiAgICB9XG59XG5cbi5jdXN0b20tbW9kYWwub3BlbiB7XG4gICAgei1pbmRleDogOTk3O1xuICAgIG9wYWNpdHk6IDE7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIHdpZHRoOiAxMDB2dztcbiAgICBoZWlnaHQ6IDEwMHZoO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcblxuICAgIC5jb250ZW50IHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3BhcGlsYXJ0X2dyYXlncmVlbjtcbiAgICAgICAgcGFkZGluZzogMnJlbTtcbiAgICAgICAgei1pbmRleDogOTk5O1xuICAgICAgICBtYXgtd2lkdGg6IDk1dnc7XG4gICAgICAgIG1heC1oZWlnaHQ6IDk1dmg7XG4gICAgICAgIG1pbi13aWR0aDogMzAwcHg7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDMwMHB4O1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIHdpZHRoOiA4MDBweDtcbiAgICAgICAgaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgICAgICAgLy8gQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgIC8vICAgICB3aWR0aDogOTUlO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgLm92ZXJsYXkge1xuICAgICAgICB6LWluZGV4OiA5OTg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDBiMztcbiAgICB9XG59XG5cbi5uZXdzbGV0dGVyLXBvcHVwLWNvbnRlbnR7XG4gICAgXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZzogMnJlbTtcbiAgICBmb250LXNpemU6IDIuOHJlbTtcbiAgICBoM3tcbiAgICAgICAgZm9udC1zaXplOiA0cmVtO1xuICAgIH1cbiAgICBoMyxwe1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIHB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgIH1cbiAgICAucG9wdXAtYm94LWlucHV0e1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgfVxuICAgICAgICAuZmllbGR7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAucG9wdXAtY29tbWVudHtcbiAgICAgICAgZm9udC1zaXplOiAxLjZyZW07XG4gICAgICAgIC8vIHBhZGRpbmctdG9wOiAycmVtO1xuICAgIH1cbiAgICAubmV3c2xldHRlcl9fYnRue1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfb3JhbmdlO1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBib3JkZXI6IHNvbGlkIDJweCAkY29sb3JfcGFwaWxhcnRfb3JhbmdlO1xuICAgICAgICBmb250LXNpemU6IDJyZW07XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgICAgcGFkZGluZzogMS4ycmVtIDNyZW07XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0MCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hbWZvcm0tZm9ybXtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogNTAwcHg7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICAgIC5hbWZvcm0tZm9ybSAuYWN0aW9uLnByaW1hcnksIC5hbWZvcm0tcGFyZW50IC5hY3Rpb24ucHJpbWFyeXtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cblxuICAgIC5jcy1uZXdzbGV0dGVyX19hY3Rpb25ze1xuICAgICAgICBoZWlnaHQ6IDUuNHJlbTtcbiAgICAgICAgd2lkdGg6IDcwcHg7XG5cbiAgICAgICAgLmNzLW5ld3NsZXR0ZXJfX2J1dHRvbiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgICAgICAvLyBjb250ZW50OiB1cmwoXCJAe2Jhc2VEaXJ9aW1hZ2VzL2ljb25zL2Fycm93X25leHQuc3ZnXCIpO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiPlwiO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufSIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5yZW5kZXJlZC1mb3JtIGJ1dHRvbixcbi5yZW5kZXJlZC1mb3JtIGlucHV0LFxuLnJlbmRlcmVkLWZvcm0gc2VsZWN0LFxuLnJlbmRlcmVkLWZvcm0gdGV4dGFyZWEge1xuICBmb250LXNpemU6IDFlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGNvbG9yOiAjNDU1YTY0O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XG4gIG1hcmdpbjogMCAwIDAuMmVtO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IH1cblxuLnJlbmRlcmVkLWZvcm0gaW5wdXQuYW1mb3JtLWNoZWNrYm94IHtcbiAgd2lkdGg6IGF1dG87IH1cblxuLmFtY2Zvcm0tcGFnZS13cmFwIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4uYW1mb3JtLWZvcm0ge1xuICBtYXJnaW46IDAgYXV0byAxMHB4O1xuICBtYXgtd2lkdGg6IDcwMHB4O1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm9yZGVyLXJhZGl1czogN3B4O1xuICBwYWRkaW5nOiAzcmVtIDEuNXJlbTsgfVxuXG4uYW1mb3JtLXZlcnNpb250d28tbGFiZWwge1xuICBmb250LXNpemU6IDAuODVlbTsgfVxuXG4ucmVuZGVyZWQtZm9ybSAuY2hlY2tib3gtZ3JvdXAge1xuICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICBwYWRkaW5nOiAycmVtIDRyZW07IH1cblxuLnJlbmRlcmVkLWZvcm0gLmZvcm0tY29udHJvbDpub3QoW25hbWU9XCJkb2N1bWVudFwiXSksIC5yZW5kZXJlZC1mb3JtIG91dHB1dCB7XG4gIGZvbnQtc2l6ZTogMWVtO1xuICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgY29sb3I6ICM0NTVhNjQ7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICBib3gtc2hhZG93OiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41cztcbiAgbWFyZ2luOiAwIDAgMC4yZW07XG4gIHdpZHRoOiAxMDAlO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBmb250LWZhbWlseTogaW5oZXJpdDsgfVxuXG4ucmVuZGVyZWQtZm9ybSAuZmllbGRzZXQgLmZpZWxkcyAuZmllbGQuZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07IH1cblxuLnJlbmRlcmVkLWZvcm0gLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkIC5pbnB1dC10ZXh0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLnJlbmRlcmVkLWZvcm0gLmZpZWxkc2V0IC5maWVsZHMgLmZpZWxkIC5pbnB1dC10ZXh0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICM3ZTU3YzIgIWltcG9ydGFudDtcbiAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi5hbWZvcm0tZm9ybSAuYWN0aW9uLnByaW1hcnksIC5hbWZvcm0tcGFyZW50IC5hY3Rpb24ucHJpbWFyeSB7XG4gIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gIGJvcmRlci1yYWRpdXM6IDUwcHg7XG4gIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xuICBtYXJnaW4tdG9wOiA0cmVtO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC1zaXplOiAxLjhyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBsZXR0ZXItc3BhY2luZzogMXB4O1xuICBib3JkZXI6IG5vbmU7XG4gIHdpZHRoOiAxMDAlOyB9XG4gIC5hbWZvcm0tZm9ybSAuYWN0aW9uLnByaW1hcnk6aG92ZXIsIC5hbWZvcm0tcGFyZW50IC5hY3Rpb24ucHJpbWFyeTpob3ZlciB7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5hbWZvcm0tZm9ybSAuYWN0aW9uLnByaW1hcnksIC5hbWZvcm0tcGFyZW50IC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG5cbi5hbWZvcm0tZm9ybSAuYW1jZm9ybS10b29sYmFyIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XHJcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XHJcblxyXG4ucmVuZGVyZWQtZm9ybSBidXR0b24sIFxyXG4ucmVuZGVyZWQtZm9ybSBpbnB1dCwgXHJcbi5yZW5kZXJlZC1mb3JtIHNlbGVjdCwgXHJcbi5yZW5kZXJlZC1mb3JtIHRleHRhcmVhe1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcclxuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XHJcbiAgICBjb2xvcjogIzQ1NWE2NDtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XHJcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG59XHJcbi5yZW5kZXJlZC1mb3JtIGlucHV0LmFtZm9ybS1jaGVja2JveCB7XHJcbiAgICB3aWR0aDogYXV0bztcclxufVxyXG5cclxuLmFtY2Zvcm0tcGFnZS13cmFwe1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxufVxyXG4uYW1mb3JtLWZvcm0ge1xyXG4gICAgbWFyZ2luOiAwIGF1dG8gMTBweDtcclxuICAgIG1heC13aWR0aDogNzAwcHg7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcclxuICAgIHBhZGRpbmc6IDNyZW0gMS41cmVtO1xyXG59XHJcblxyXG4uYW1mb3JtLXZlcnNpb250d28tbGFiZWx7XHJcbiAgICBmb250LXNpemU6IDAuODVlbTtcclxufVxyXG5cclxuLnJlbmRlcmVkLWZvcm17XHJcbiAgICAuY2hlY2tib3gtZ3JvdXB7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgI2RjZGNkYztcclxuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xyXG4gICAgICAgIHBhZGRpbmc6IDJyZW0gNHJlbTtcclxuICAgIH1cclxufVxyXG4ucmVuZGVyZWQtZm9ybSAuZm9ybS1jb250cm9sOm5vdChbbmFtZT1cImRvY3VtZW50XCJdKSwgLnJlbmRlcmVkLWZvcm0gb3V0cHV0e1xyXG4gICAgZm9udC1zaXplOiAxZW07XHJcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcclxuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XHJcbiAgICBjb2xvcjogIzQ1NWE2NDtcclxuICAgIGJhY2tncm91bmQ6ICNmZmY7XHJcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcclxuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XHJcbiAgICBib3gtc2hhZG93OiBub25lO1xyXG4gICAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuNXM7XHJcbiAgICBtYXJnaW46IDAgMCAwLjJlbTtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xyXG59XHJcbi5yZW5kZXJlZC1mb3JtIC5maWVsZHNldCAuZmllbGRzIHtcclxuICAgIC5maWVsZC5mb3JtLWdyb3Vwe1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDNyZW07XHJcbiAgICB9XHJcblxyXG4gICAgLmZpZWxkIC5pbnB1dC10ZXh0OmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmZpZWxkIC5pbnB1dC10ZXh0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XHJcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgIzdlNTdjMiFpbXBvcnRhbnQ7XHJcbiAgICAgICAgYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgbGFiZWwuZmItY2hlY2tib3gtZ3JvdXAtbGFiZWwubGFiZWx7XHJcbiAgICAgICAgLy8gdG9wOi0zcmVtO1xyXG4gICAgICAgIC8vIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAvLyBsZWZ0OiAwO1xyXG4gICAgICAgIC8vIHdpZHRoOiBpbmhlcml0O1xyXG4gICAgfVxyXG59XHJcblxyXG4uYW1mb3JtLWZvcm0gLmFjdGlvbi5wcmltYXJ5LCAuYW1mb3JtLXBhcmVudCAuYWN0aW9uLnByaW1hcnl7XHJcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3JfcGFwaWxhcnRfcHVycGxlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTBweDtcclxuICAgIHBhZGRpbmc6IDFyZW0gMi41cmVtO1xyXG4gICAgbWFyZ2luLXRvcDogNHJlbTtcclxuICAgIGNvbG9yOiAkY29sb3Jfd2hpdGU7XHJcbiAgICBmb250LXNpemU6IDEuOHJlbTtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGxldHRlci1zcGFjaW5nOiAxcHg7XHJcbiAgICBib3JkZXI6IG5vbmU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgICY6aG92ZXJ7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvcl93aGl0ZTtcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xyXG4gICAgfVxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xyXG4gICAgICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICAvLyByaWdodDogMTIlO1xyXG4gICAgfVxyXG59XHJcbi5hbWZvcm0tZm9ybSAuYW1jZm9ybS10b29sYmFye1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4ucmVkaW5nby11bml0LXByaWNlLXdyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDAgMC41cmVtIDA7XG4gIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4iLCJAaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5cbi5yZWRpbmdvLXVuaXQtcHJpY2Utd3JhcHBlcntcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAwIDAgMC41cmVtIDA7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLndpc2hsaXN0IC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCB7XG4gIGNvbG9yOiAjZmZmO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTdjOGMwO1xuICB0b3A6IC01cHg7XG4gIHJpZ2h0OiAtOHB4O1xuICBwYWRkaW5nOiAwLjhyZW07XG4gIHdpZHRoOiAxNXB4O1xuICBoZWlnaHQ6IDE1cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuICAud2lzaGxpc3QgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0OjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IG5vbmU7IH1cbiAgLndpc2hsaXN0IC5jcy1oZWFkZXItdXNlci1uYXZfX3F0eS1jb3VudGVyLS13aXNobGlzdCAuY3MtaGVhZGVyLXVzZXItbmF2X19xdHktY291bnRlci1zcGFuIHtcbiAgICBtaW4td2lkdGg6IDE1cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMXJlbTsgfVxuXG4uY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMge1xuICBwYWRkaW5nLXRvcDogMS41cmVtICFpbXBvcnRhbnQ7XG4gIHBhZGRpbmctYm90dG9tOiAxLjVyZW0gIWltcG9ydGFudDtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtYnV5Ym94X19zZWN0aW9uLS1leHRyYXMge1xuICAgICAgcGFkZGluZy10b3A6IDAgIWltcG9ydGFudDsgfSB9XG4gIC5jcy1idXlib3hfX3NlY3Rpb24tLWV4dHJhcyAuY3MtYnV5Ym94X19hZGR0by1saXN0IHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH1cbiAgLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFzIC5jcy1idXlib3hfX2FkZHRvLWl0ZW0tLXdpc2hsaXN0IC5jcy1idXlib3hfX2FkZHRvLWljb24tLXdpc2hsaXN0IHtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDJyZW07IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuXG4ud2lzaGxpc3R7XG4gICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItLXdpc2hsaXN0e1xuICAgICAgICBjb2xvcjogJGNvbG9yX3doaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfcGFwaWxhcnRfYXF1YTtcbiAgICAgICAgdG9wOiAtNXB4O1xuICAgICAgICByaWdodDogLThweDtcbiAgICAgICAgcGFkZGluZzogMC44cmVtO1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgaGVpZ2h0OiAxNXB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICY6OmJlZm9yZXtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgLmNzLWhlYWRlci11c2VyLW5hdl9fcXR5LWNvdW50ZXItc3BhbntcbiAgICAgICAgICAgIG1pbi13aWR0aDogMTVweDtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIGNhdGFsb2cgcHJvZHVjdFxuLmNzLWJ1eWJveF9fc2VjdGlvbi0tZXh0cmFze1xuICAgIHBhZGRpbmctdG9wOiAxLjVyZW0haW1wb3J0YW50O1xuICAgIHBhZGRpbmctYm90dG9tOiAxLjVyZW0haW1wb3J0YW50O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jcy1idXlib3hfX2FkZHRvLWxpc3R7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICB9XG4gICAgLmNzLWJ1eWJveF9fYWRkdG8taXRlbS0td2lzaGxpc3R7XG4gICAgICAgIC5jcy1idXlib3hfX2FkZHRvLWljb24tLXdpc2hsaXN0e1xuICAgICAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgICAgICBoZWlnaHQ6IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59IiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLnBhZ2VidWlsZGVyLW1vYmlsZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH0gfVxuXG4ucGFnZWJ1aWxkZXItbW9iaWxlLWhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cbiIsIkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuLnBhZ2VidWlsZGVyLW1vYmlsZS1vbmx5e1xuICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgfVxufVxuLnBhZ2VidWlsZGVyLW1vYmlsZS1oaWRkZW57XG4gICAgZGlzcGxheTogbm9uZTtcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4udWktZGF0ZXBpY2tlciB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHotaW5kZXg6IDk5OTk5OSAhaW1wb3J0YW50O1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IGF1dG87XG4gIG1pbi13aWR0aDogMjVyZW07XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cblxuLnVpLWRhdGVwaWNrZXItaGVhZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBiYWNrZ3JvdW5kOiAjMTFhMDk5O1xuICBwYWRkaW5nOiAxLjJyZW0gMnJlbTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4O1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogN3B4OyB9XG5cbi51aS1kYXRlcGlja2VyLXByZXYsXG4udWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDJyZW07XG4gIHdpZHRoOiAxLjhlbTtcbiAgaGVpZ2h0OiAxLjhlbTtcbiAgY3Vyc29yOiBwb2ludGVyOyB9XG4gIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbixcbiAgLnVpLWRhdGVwaWNrZXItbmV4dCBzcGFuIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogNTAlO1xuICAgIHRvcDogMC4ycmVtO1xuICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDsgfVxuXG4udWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgbGVmdDogMS41cmVtOyB9XG4gIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbiB7XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbjpiZWZvcmUsIC51aS1kYXRlcGlja2VyLXByZXYgc3BhbjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgbGVmdDogMnJlbTtcbiAgICAgIHdpZHRoOiAwO1xuICAgICAgaGVpZ2h0OiAwOyB9XG4gICAgLnVpLWRhdGVwaWNrZXItcHJldiBzcGFuOmJlZm9yZSB7XG4gICAgICBsZWZ0OiAtMS4ycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLXJpZ2h0OiAwLjhyZW0gc29saWQgIzdlNTdjMjtcbiAgICAgIG1hcmdpbi10b3A6IC0wLjhyZW07IH1cbiAgICAudWktZGF0ZXBpY2tlci1wcmV2IHNwYW46YWZ0ZXIge1xuICAgICAgbGVmdDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItcmlnaHQ6IDAuNnJlbSBzb2xpZCAjMTFhMDk5O1xuICAgICAgbWFyZ2luLXRvcDogLTAuNnJlbTsgfVxuXG4udWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgcmlnaHQ6IDEuNXJlbTsgfVxuICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW4ge1xuICAgIGJvcmRlci13aWR0aDogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YmVmb3JlLCAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YWZ0ZXIge1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDA7XG4gICAgICBoZWlnaHQ6IDA7IH1cbiAgICAudWktZGF0ZXBpY2tlci1uZXh0IHNwYW46YmVmb3JlIHtcbiAgICAgIHJpZ2h0OiAtMS4ycmVtO1xuICAgICAgYm9yZGVyLXRvcDogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWJvdHRvbTogMC44cmVtIHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYm9yZGVyLWxlZnQ6IDAuOHJlbSBzb2xpZCAjN2U1N2MyO1xuICAgICAgbWFyZ2luLXRvcDogLTAuOHJlbTsgfVxuICAgIC51aS1kYXRlcGlja2VyLW5leHQgc3BhbjphZnRlciB7XG4gICAgICByaWdodDogLTFyZW07XG4gICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBib3JkZXItbGVmdDogMC42cmVtIHNvbGlkICMxMWEwOTk7XG4gICAgICBtYXJnaW4tdG9wOiAtMC42cmVtOyB9XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDAgMS41cmVtOyB9XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHNlbGVjdCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAxLjRyZW07IH1cblxuc2VsZWN0LnVpLWRhdGVwaWNrZXItbW9udGgteWVhciB7XG4gIHdpZHRoOiAxMDAlOyB9XG5cbi51aS1kYXRlcGlja2VyLW1vbnRoIHtcbiAgd2lkdGg6IDQ3JTtcbiAgbWFyZ2luLXJpZ2h0OiA2JTsgfVxuXG4udWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgd2lkdGg6IDQ3JTsgfVxuXG4udWktZGF0ZXBpY2tlci10YWJsZSB7XG4gIGJvcmRlcjogbm9uZTtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB9XG5cbi51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgbWFyZ2luOiAxcmVtIDEuNXJlbSAxLjVyZW07XG4gIGJvcmRlci13aWR0aDogMDtcbiAgd2lkdGg6IDIzcmVtOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRkLFxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0aCB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIHRoIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1kYXRlcGlja2VyLXdlZWstY29sIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgYSxcbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGggc3BhbixcbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgdGQgc3BhbiB7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgd2lkdGg6IDNyZW07XG4gICAgaGVpZ2h0OiAzcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDNyZW07XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBkaXNwbGF5OiBibG9jazsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBhLFxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciB0ZCBzcGFuIHtcbiAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAudWktZGF0ZXBpY2tlci1jYWxlbmRhciAudWktc3RhdGUtaG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgY29sb3I6ICNmZmY7IH1cbiAgLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIgLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1kaXNhYmxlZCBzcGFuIHtcbiAgICAgIGNvbG9yOiAjZGNkY2RjOyB9XG4gIC51aS1kYXRlcGlja2VyLWNhbGVuZGFyIC51aS1zdGF0ZS1hY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHBhZGRpbmctdG9wOiAxcmVtO1xuICBib3JkZXItdG9wOiAjZGNkY2RjIDFweCBzb2xpZDsgfVxuICAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7XG4gICAgZmxvYXQ6IHJpZ2h0OyB9XG4gIC51aS1kYXRlcGlja2VyLWJ1dHRvbnBhbmUgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gICAgZmxvYXQ6IGxlZnQ7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIHtcbiAgZGlyZWN0aW9uOiBydGw7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLXByZXYge1xuICByaWdodDogMnB4O1xuICBsZWZ0OiBhdXRvOyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgbGVmdDogMnB4O1xuICByaWdodDogYXV0bzsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldjpob3ZlciB7XG4gIHJpZ2h0OiAxcHg7XG4gIGxlZnQ6IGF1dG87IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLW5leHQ6aG92ZXIge1xuICBsZWZ0OiAxcHg7XG4gIHJpZ2h0OiBhdXRvOyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIHtcbiAgY2xlYXI6IHJpZ2h0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1idXR0b25wYW5lIGJ1dHRvbi51aS1kYXRlcGlja2VyLWN1cnJlbnQge1xuICBmbG9hdDogcmlnaHQ7IH1cblxuLnVpLWRhdGVwaWNrZXItcnRsIC51aS1kYXRlcGlja2VyLWdyb3VwIHtcbiAgZmxvYXQ6IHJpZ2h0OyB9XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cC1sYXN0IC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuXG4udWktdGltZXBpY2tlci1kaXYge1xuICBwYWRkaW5nOiAxcmVtIDAgMC41cmVtIDA7IH1cbiAgLnVpLXRpbWVwaWNrZXItZGl2IC51aS13aWRnZXQtaGVhZGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07IH1cbiAgLnVpLXRpbWVwaWNrZXItZGl2IGRsIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gICAgLnVpLXRpbWVwaWNrZXItZGl2IGRsIGR0IHtcbiAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgbWFyZ2luLWJvdHRvbTogLTIuMnJlbTsgfVxuICAgIC51aS10aW1lcGlja2VyLWRpdiBkbCAudWlfdHBpY2tlcl90aW1lX2xhYmVsIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0yLjVyZW07IH1cbiAgICAudWktdGltZXBpY2tlci1kaXYgZGwgZGQge1xuICAgICAgbWFyZ2luOiAwIDAgMXJlbSA2LjVyZW07IH1cbiAgLnVpLXRpbWVwaWNrZXItZGl2IHRkIHtcbiAgICBmb250LXNpemU6IDkwJTsgfVxuXG4udWktdHBpY2tlci1ncmlkLWxhYmVsIHtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLnVpLXNsaWRlciB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4udWktc2xpZGVyLWhhbmRsZSB7XG4gIGhlaWdodDogMXJlbTtcbiAgd2lkdGg6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGJhY2tncm91bmQ6ICM3ZTU3YzI7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDI7XG4gIGN1cnNvcjogZGVmYXVsdDsgfVxuXG4udWktc2xpZGVyLWhvcml6b250YWwge1xuICBoZWlnaHQ6IDFyZW07XG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogI2YwZjBmMDsgfVxuICAudWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1oYW5kbGUge1xuICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtOyB9XG5cbi8qIElFNiBJRlJBTUUgRklYICh0YWtlbiBmcm9tIGRhdGVwaWNrZXIgMS41LjMgKi9cbi51aS1kYXRlcGlja2VyLWNvdmVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICAvKm11c3QgaGF2ZSovXG4gIHotaW5kZXg6IC0xO1xuICAvKm11c3QgaGF2ZSovXG4gIGZpbHRlcjogbWFzaygpO1xuICAvKm11c3QgaGF2ZSovXG4gIHRvcDogLTRweDtcbiAgLyptdXN0IGhhdmUqL1xuICBsZWZ0OiAtNHB4O1xuICAvKm11c3QgaGF2ZSovXG4gIHdpZHRoOiAyMDBweDtcbiAgLyptdXN0IGhhdmUqL1xuICBoZWlnaHQ6IDIwMHB4O1xuICAvKm11c3QgaGF2ZSovIH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJGNhbGVuZGFyX2JveC1zaGFkb3c6ICRib3gtc2hhZG93X2Jhc2UgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcbiRjYWxlbmRhcl9ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I6ICRjb2xvcl9zZWNvbmRhcnktNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2hlYWRlci1hcnJvdy1jb2xvcjogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2JhY2tncm91bmQtY29sb3I6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl93ZWVrZGF5LWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kY2FsZW5kYXJfZGF0ZS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2RhdGUtZGlzYWJsZWQtY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtY29sb3I6ICRjb2xvcl90ZXh0LTIwMCAhZGVmYXVsdDtcbiRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWJhY2tncm91bmQ6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcblxuLnVpLWRhdGVwaWNrZXIge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgei1pbmRleDogOTk5OTk5ICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAkY2FsZW5kYXJfYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRjYWxlbmRhcl9ib3JkZXItcmFkaXVzO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgbWluLXdpZHRoOiAyNXJlbTtcbiAgICBib3gtc2hhZG93OiAkY2FsZW5kYXJfYm94LXNoYWRvdztcbiAgICBiYWNrZ3JvdW5kOiAkY2FsZW5kYXJfYmFja2dyb3VuZC1jb2xvcjtcbn1cblxuLy8gSEVBREVSXG4udWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAkY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgcGFkZGluZzogMS4ycmVtIDJyZW07XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGNhbGVuZGFyX2JvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRjYWxlbmRhcl9ib3JkZXItcmFkaXVzO1xufVxuXG4udWktZGF0ZXBpY2tlci1wcmV2LFxuLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMnJlbTtcbiAgICB3aWR0aDogMS44ZW07XG4gICAgaGVpZ2h0OiAxLjhlbTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgICBzcGFuIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgICB0b3A6IDAuMnJlbTtcbiAgICAgICAgZm9udC1zaXplOiAwcHg7XG4gICAgICAgIHdpZHRoOiAwO1xuICAgICAgICBoZWlnaHQ6IDA7XG4gICAgfVxufVxuXG4udWktZGF0ZXBpY2tlci1wcmV2IHtcbiAgICBsZWZ0OiAxLjVyZW07XG5cbiAgICBzcGFuIHtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgICAgIGxlZnQ6IDJyZW07XG4gICAgICAgICAgICB3aWR0aDogMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IC0xLjJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDAuOHJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWFycm93LWNvbG9yO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogLTAuOHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgbGVmdDogLTFyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDAuNnJlbSBzb2xpZCAkY2FsZW5kYXJfaGVhZGVyLWJhY2tncm91bmQtY29sb3I7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC42cmVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4udWktZGF0ZXBpY2tlci1uZXh0IHtcbiAgICByaWdodDogMS41cmVtO1xuXG4gICAgc3BhbiB7XG4gICAgICAgIGJvcmRlci13aWR0aDogMDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICY6YmVmb3JlLFxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgcmlnaHQ6IC0xLjJyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjhyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC44cmVtIHNvbGlkICRjYWxlbmRhcl9oZWFkZXItYXJyb3ctY29sb3I7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAtMC44cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogLTFyZW07XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwLjZyZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogMC42cmVtIHNvbGlkICRjYWxlbmRhcl9oZWFkZXItYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0wLjZyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi51aS1kYXRlcGlja2VyLXRpdGxlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDEuNXJlbTtcbn1cblxuLnVpLWRhdGVwaWNrZXItdGl0bGUgc2VsZWN0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG59XG5cbnNlbGVjdC51aS1kYXRlcGlja2VyLW1vbnRoLXllYXIge1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG4udWktZGF0ZXBpY2tlci1tb250aCB7XG4gICAgd2lkdGg6IDQ3JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDYlO1xufVxuXG4udWktZGF0ZXBpY2tlci15ZWFyIHtcbiAgICB3aWR0aDogNDclO1xufVxuXG4udWktZGF0ZXBpY2tlci10YWJsZSB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xufVxuXG4vLyBDYWxlbmRhclxuLnVpLWRhdGVwaWNrZXItY2FsZW5kYXIge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gICAgbWFyZ2luOiAxcmVtIDEuNXJlbSAxLjVyZW07XG4gICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgIHdpZHRoOiAyM3JlbTtcblxuICAgIHRkLFxuICAgIHRoIHtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAwO1xuICAgICAgICB3aWR0aDogM3JlbTtcbiAgICAgICAgaGVpZ2h0OiAzcmVtO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgdGgge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBjb2xvcjogJGNhbGVuZGFyX3dlZWtkYXktY29sb3I7XG4gICAgfVxuXG4gICAgLnVpLWRhdGVwaWNrZXItd2Vlay1jb2wge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgdGQgYSxcbiAgICB0aCBzcGFuLFxuICAgIHRkIHNwYW4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICBib3JkZXItd2lkdGg6IDA7XG4gICAgICAgIHdpZHRoOiAzcmVtO1xuICAgICAgICBoZWlnaHQ6IDNyZW07XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBsaW5lLWhlaWdodDogM3JlbTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHRkIGEsXG4gICAgdGQgc3BhbiB7XG4gICAgICAgIGNvbG9yOiAkY2FsZW5kYXJfZGF0ZS1jb2xvcjtcbiAgICB9XG5cbiAgICAudWktc3RhdGUtaG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY2FsZW5kYXJfZGF0ZS1zZWxlY3RlZC1iYWNrZ3JvdW5kO1xuICAgICAgICBjb2xvcjogJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtY29sb3I7XG4gICAgfVxuXG4gICAgLnVpLXN0YXRlLWRpc2FibGVkIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGNhbGVuZGFyX2RhdGUtZGlzYWJsZWQtY29sb3I7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAudWktc3RhdGUtYWN0aXZlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2RhdGUtc2VsZWN0ZWQtYmFja2dyb3VuZDtcbiAgICAgICAgY29sb3I6ICRjYWxlbmRhcl9kYXRlLXNlbGVjdGVkLWNvbG9yO1xuICAgIH1cbn1cblxuLy8gQnV0dG9uc1xuLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nLXRvcDogMXJlbTtcbiAgICBib3JkZXItdG9wOiAkY29sb3JfYm9yZGVyLTUwMCAxcHggc29saWQ7XG5cbiAgICBidXR0b24ge1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgYnV0dG9uLnVpLWRhdGVwaWNrZXItY3VycmVudCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cbn1cblxuLy8gUlRMXG4udWktZGF0ZXBpY2tlci1ydGwge1xuICAgIGRpcmVjdGlvbjogcnRsO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldiB7XG4gICAgcmlnaHQ6IDJweDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dCB7XG4gICAgbGVmdDogMnB4O1xuICAgIHJpZ2h0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItcHJldjpob3ZlciB7XG4gICAgcmlnaHQ6IDFweDtcbiAgICBsZWZ0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItbmV4dDpob3ZlciB7XG4gICAgbGVmdDogMXB4O1xuICAgIHJpZ2h0OiBhdXRvO1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSB7XG4gICAgY2xlYXI6IHJpZ2h0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItYnV0dG9ucGFuZSBidXR0b24udWktZGF0ZXBpY2tlci1jdXJyZW50IHtcbiAgICBmbG9hdDogcmlnaHQ7XG59XG5cbi51aS1kYXRlcGlja2VyLXJ0bCAudWktZGF0ZXBpY2tlci1ncm91cCB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbGFzdCAudWktZGF0ZXBpY2tlci1oZWFkZXIge1xuICAgIGJvcmRlci1yaWdodC13aWR0aDogMDtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xufVxuXG4udWktZGF0ZXBpY2tlci1ydGwgLnVpLWRhdGVwaWNrZXItZ3JvdXAtbWlkZGxlIC51aS1kYXRlcGlja2VyLWhlYWRlciB7XG4gICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAwO1xuICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG59XG5cbi8vIFRpbWVwaWNrZXJcbi51aS10aW1lcGlja2VyLWRpdiB7XG4gICAgcGFkZGluZzogMXJlbSAwIDAuNXJlbSAwO1xuXG4gICAgLnVpLXdpZGdldC1oZWFkZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG4gICAgfVxuXG4gICAgZGwge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIGR0IHtcbiAgICAgICAgICAgIGhlaWdodDogMi41cmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51aV90cGlja2VyX3RpbWVfbGFiZWwge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogLTIuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDFyZW0gNi41cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdGQge1xuICAgICAgICBmb250LXNpemU6IDkwJTtcbiAgICB9XG59XG5cbi51aS10cGlja2VyLWdyaWQtbGFiZWwge1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vLyBTbGlkZXJcbi51aS1zbGlkZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4udWktc2xpZGVyLWhhbmRsZSB7XG4gICAgaGVpZ2h0OiAxcmVtO1xuICAgIHdpZHRoOiAxcmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDFyZW07XG4gICAgYmFja2dyb3VuZDogJGNvbG9yX3ByaW1hcnktNTAwO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAyO1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbn1cblxuLnVpLXNsaWRlci1ob3Jpem9udGFsIHtcbiAgICBoZWlnaHQ6IDFyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogJGNhbGVuZGFyX2JhY2tncm91bmQtY29sb3I7XG5cbiAgICAudWktc2xpZGVyLWhhbmRsZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMC41cmVtO1xuICAgIH1cbn1cblxuLyogSUU2IElGUkFNRSBGSVggKHRha2VuIGZyb20gZGF0ZXBpY2tlciAxLjUuMyAqL1xuLnVpLWRhdGVwaWNrZXItY292ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgLyptdXN0IGhhdmUqL1xuICAgIHotaW5kZXg6IC0xOyAvKm11c3QgaGF2ZSovXG4gICAgZmlsdGVyOiBtYXNrKCk7IC8qbXVzdCBoYXZlKi9cbiAgICB0b3A6IC00cHg7IC8qbXVzdCBoYXZlKi9cbiAgICBsZWZ0OiAtNHB4OyAvKm11c3QgaGF2ZSovXG4gICAgd2lkdGg6IDIwMHB4OyAvKm11c3QgaGF2ZSovXG4gICAgaGVpZ2h0OiAyMDBweDsgLyptdXN0IGhhdmUqL1xufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4uY3MtY2FwdGNoYV9faW1hZ2UtY29udHJvbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgbWFyZ2luLXRvcDogMS41cmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX2ltYWdlLWNvbnRyb2xzIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX2ltYWdlLWNvbnRyb2xzIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kOyB9IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3MtY2FwdGNoYV9faW1hZ2UtY29udHJvbHMge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLmNzLWNhcHRjaGFfX2ltYWdlIHtcbiAgbWFyZ2luLXJpZ2h0OiAxcmVtOyB9XG5cbi5jcy1jYXB0Y2hhX19idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMS44cmVtO1xuICBmb250LXdlaWdodDogNzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gIG1hcmdpbjogMDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgei1pbmRleDogNTsgfVxuICAuY3MtY2FwdGNoYV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWNhcHRjaGFfX2J1dHRvbiwgLmNzLWNhcHRjaGFfX2J1dHRvbjp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmY7IH1cbiAgICAuY3MtY2FwdGNoYV9fYnV0dG9uICosIC5jcy1jYXB0Y2hhX19idXR0b246dmlzaXRlZCAqIHtcbiAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAuY3MtY2FwdGNoYV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWNhcHRjaGFfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1jYXB0Y2hhX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZDJjOTE7IH1cbiAgICAuY3MtY2FwdGNoYV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtY2FwdGNoYV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtY2FwdGNoYV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWNhcHRjaGFfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgY3Vyc29yOiBhdXRvOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX2J1dHRvbiB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAzMGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5jcy1jYXB0Y2hhX19idXR0b24ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwOyB9IH1cblxuLmNzLWNhcHRjaGFfX2J1dHRvbi1zcGFuIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG5cbi5jcy1jYXB0Y2hhX19ub3RlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogMC44NWVtO1xuICBwYWRkaW5nOiAwLjNlbSAwIDA7XG4gIGNvbG9yOiAjNjk2OTY5OyB9XG5cbi5jcy1kYXNoYm9hcmQgLmNzLWNhcHRjaGFfX3dyYXBwZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5cbiRjYXB0Y2hhX2J1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiRjYXB0Y2hhX2J1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuXG4uI3skbnN9Y2FwdGNoYSB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX19pbWFnZS1jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG5cbiAgICAgICAgLiN7JG5zfWRhc2hib2FyZCAmIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgIH1cblxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbihcbiAgICAgICAgICAgICR0eXBlOiAkY2FwdGNoYV9idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGNhcHRjaGFfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgLiN7JG5zfWRhc2hib2FyZCAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGNhcHRjaGFfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRjYXB0Y2hhX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBAaW5jbHVkZSBmaWVsZC1ub3RlKCk7XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIC4jeyRuc31kYXNoYm9hcmQgJiB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi5jcy1kYXNoYm9hcmQge1xuICB3aWR0aDogMTAwJTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnMge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkX19jb2x1bW5zOmJlZm9yZSwgLmNzLWRhc2hib2FyZF9fY29sdW1uczphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3MtZGFzaGJvYXJkX19tZXNzYWdlcyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgb3JkZXI6IDE7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyAzKTtcbiAgICAgICAgcGFkZGluZzogMCAxLjVyZW0gMCAwOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA0KTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX3NpZGViYXIge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC8gNCk7IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiAxMjBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLyA0KTsgfSB9XG4gIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgIG9yZGVyOiAyOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogY2FsYygxMDAlIC0gKDEwMCUgLyAzKSk7XG4gICAgICAgIHBhZGRpbmc6IDEuNXJlbSAwIDAgMS41cmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvIDMpKTtcbiAgICAgICAgcGFkZGluZzogMS41cmVtIDAgMCAxLjVyZW07IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA4MGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICgxMDAlIC8gNCkpOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogOTBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvIDQpKTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDEyMGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkX19tYWluIHtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtICgxMDAlIC8gNCkpOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuY3MtcGFnZS1jYXRlZ29yeV9fbWFpbi0tc2VhcmNoLW5vLXJlc3VsdCB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZF9fY29sdW1ucyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbjogM3JlbSAwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX2NvbHVtbnMge1xuICAgICAgICBwYWRkaW5nOiAwIDAgMnJlbTsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLWRhc2hib2FyZF9fc2lkZWJhciB7XG4gICAgICBwYWRkaW5nOiAwOyB9IH1cbiAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fbWFpbiB7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwIDMuNXJlbTtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC53aXNobGlzdC1pbmRleC1pbmRleC5wYWdlLWxheW91dC0xY29sdW1uIC5jcy1kYXNoYm9hcmRfX21haW4ge1xuICAgICAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9IH1cbiAgLmNzLWRhc2hib2FyZF9fdG9wIHtcbiAgICBwYWRkaW5nOiAwIDAgM3JlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5wYWdlLXRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAwIDFyZW0gMDsgfVxuICAuY3MtZGFzaGJvYXJkIC5jb2x1bW5zIC5jb2x1bW4ubWFpbiB7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3MtZGFzaGJvYXJkIC5tZXNzYWdlLWVycm9yLFxuICAuY3MtZGFzaGJvYXJkIC5tZXNzYWdlLXN1Y2Nlc3MsXG4gIC5jcy1kYXNoYm9hcmQgLm1lc3NhZ2Utbm90aWNlIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLmNzLWRhc2hib2FyZF9fYm90dG9tIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgcGFkZGluZy10b3A6IDJyZW07XG4gICAgYm9yZGVyLXRvcDogMnB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fYm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmctdG9wOiAzcmVtOyB9IH1cbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtbGluZSB7XG4gICAgbWFyZ2luOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQge1xuICAgIG1hcmdpbjogMCAwIDNyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtcHJvZHVjdHMtZ3JpZCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRyZW07IH0gfVxuICAgIC5jcy1kYXNoYm9hcmRfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQtLXNraXAtc3BhY2luZyB7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtZ3Vlc3QtY29kZSB7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsgfVxuICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3Qge1xuICAgIG1hcmdpbjogMCAwIDNyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdCB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRyZW07IH0gfVxuICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdC0tc2tpcC1zcGFjaW5nIHtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2JvdHRvbS13aXNobGlzdC1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtaXRlbSB7XG4gICAgICAgICAgd2lkdGg6IDUwJTsgfSB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtaXRlbSB7XG4gICAgICAgICAgd2lkdGg6IDMzLjMzJTsgfSB9XG4gICAgICAuY3MtZGFzaGJvYXJkX19ib3R0b20td2lzaGxpc3QtaXRlbTpudGgtY2hpbGQobiArIDQpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkX19sb2dpbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmRfX2xvZ2luIHtcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAgIC5jcy1kYXNoYm9hcmRfX2xvZ2luLXNlY3Rpb24ge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICBtYXJnaW4tYm90dG9tOiAycmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgICAuY3MtZGFzaGJvYXJkX19sb2dpbi1zZWN0aW9uIHtcbiAgICAgICAgICB3aWR0aDogNTAlOyB9XG4gICAgICAgICAgLmNzLWRhc2hib2FyZF9fbG9naW4tc2VjdGlvbjpudGgtY2hpbGQoMm4gKyAxKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAycmVtOyB9XG4gICAgICAgICAgLmNzLWRhc2hib2FyZF9fbG9naW4tc2VjdGlvbjpudGgtY2hpbGQoMm4gKyAyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJyZW07IH0gfVxuICAuY3MtZGFzaGJvYXJkX19jb250YWN0LWZvcm0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAuY3MtZGFzaGJvYXJkIC5maWVsZHNldCxcbiAgLmNzLWRhc2hib2FyZCAuZm9ybSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxNXJlbSAhaW1wb3J0YW50OyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZpZWxkc2V0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQge1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDNyZW0pOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuZmllbGRzZXQuZmllbGRzZXQtZnVsbG5hbWUge1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAuY3MtZGFzaGJvYXJkIC5maWVsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5saW1pdGVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAuY3MtZGFzaGJvYXJkIHNlbGVjdCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAxZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAyLjNlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCAjZGNkY2RjO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIG91dGxpbmU6IDA7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjNkY2RjZGMnJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0LCByZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgMC44ZW0gdG9wIDUyJSwgMCAwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMC43ZW0gYXV0bywgMTAwJTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC41czsgfVxuICAgIC5jcy1kYXNoYm9hcmQgc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAuY3MtZGFzaGJvYXJkIHNlbGVjdDo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBjb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwICFpbXBvcnRhbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIHNlbGVjdDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1kYXNoYm9hcmQgc2VsZWN0OmZvY3VzOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3JkZXI6IDJweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVURi04LCUzY3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxNiA5JyBmaWxsPSclMjM3ZTU3YzInJTNlJTNjcGF0aCBkPSdNMCAxLjJDMCAuNS42IDAgMS4yIDBjLjMgMCAuNi4xLjguM2w2IDUuOSA2LTUuOWMuNS0uNCAxLjItLjMgMS43LjEuNC40LjQgMS4xIDAgMS41TDguOSA4LjdjLS41LjQtMS4yLjQtMS43IDBMLjQgMmEuOS45IDAgMCAxLS40LS44eicvJTNlJTNjL3N2ZyUzZVwiKSwgbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAxMDAlKTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgc2VsZWN0W2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1OyB9XG4gICAgLmNzLWRhc2hib2FyZCBzZWxlY3Qgb3B0aW9uIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgY29sb3I6IGluaXRpYWw7IH1cbiAgLmNzLWRhc2hib2FyZCAuY2hvaWNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmNob2ljZSAubGFiZWwge1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jaG9pY2UgLmNoZWNrYm94IHtcbiAgICAgIG1hcmdpbi10b3A6IDAuMnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5maWVsZC1uYW1lLXByZWZpeCB7XG4gICAgbWF4LXdpZHRoOiAxMnJlbTsgfVxuICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uLFxuICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIG1pbi13aWR0aDogMTJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbiwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjp2aXNpdGVkLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZSxcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b24gKiwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjp2aXNpdGVkICosXG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGUgKixcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSAuY3JlYXRlOmZvY3VzOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGU6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSB7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTpmb2N1czpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZTphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b25bZGlzYWJsZWRdLFxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgLmNyZWF0ZVtkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIC53aXNobGlzdC1pbmRleC1pbmRleCAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5ID4gYnV0dG9uLCAud2lzaGxpc3QtaW5kZXgtaW5kZXhcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGUge1xuICAgICAgei1pbmRleDogMTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnByaW1hcnkgPiBidXR0b24gc3BhbixcbiAgICAuY3MtZGFzaGJvYXJkIC5wcmltYXJ5IC5jcmVhdGUgc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cbiAgLmNzLWRhc2hib2FyZCAucHJpbWFyeSA+IGJ1dHRvbi5hY3Rpb24udXBkYXRlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnJlbWluZCxcbiAgLmNzLWRhc2hib2FyZCAuYmFjayB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgbWFyZ2luLXRvcDogMC43cmVtO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfVxuICAuY3MtZGFzaGJvYXJkIC5jb3VudGVyIHtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMXJlbSk7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuY291bnRlcjpiZWZvcmUge1xuICAgICAgY29udGVudDogJygnOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuY291bnRlcjphZnRlciB7XG4gICAgICBjb250ZW50OiAnKSc7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2sge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMS41cmVtIDAgMi41cmVtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMS41cmVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmJsb2NrIHtcbiAgICAgICAgbWFyZ2luOiAxLjVyZW0gMCA0cmVtOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stdGl0bGUsXG4gIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCxcbiAgLmNzLWRhc2hib2FyZCAub3JkZXItdGl0bGUge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgcGFkZGluZy1ib3R0b206IDAuOHJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuYmxvY2stdGl0bGUgc3Ryb25nLFxuICAgIC5jcy1kYXNoYm9hcmQgLmxlZ2VuZCBzdHJvbmcsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXItdGl0bGUgc3Ryb25nIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAudGFibGUtd3JhcHBlciB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stdGl0bGUgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAuY3MtZGFzaGJvYXJkIC5ib3gtdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1jb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgbWFyZ2luOiAycmVtIDAgMDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAuc2FsZXMtb3JkZXItaGlzdG9yeSAuY3MtZGFzaGJvYXJkIC5ibG9jay1jb250ZW50IHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDsgfSB9XG4gICAgLmNzLWRhc2hib2FyZCAuYmxvY2stY29udGVudC5uby1kaXNwbGF5IHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stbmV3LWN1c3RvbWVyIC5ibG9jay1jb250ZW50IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9XG4gICAgLmNzLWRhc2hib2FyZCAuYmxvY2stbmV3LWN1c3RvbWVyIC5ibG9jay1jb250ZW50IC5maWVsZHNldCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWRhc2hib2FyZCAuYmxvY2stcmV3YXJkLWhpc3RvcnkgLmNzLXRvb2xiYXJfX2l0ZW0tLWFtb3VudCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stcmV3YXJkLWhpc3RvcnkgLmNzLXRvb2xiYXJfX2l0ZW0tLWFtb3VudDpudGgtY2hpbGQoMSkge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAucGFnZXMge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBtYXJnaW46IDAuN3JlbSAwIDJyZW07IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAucGFnZXM6bnRoLWNoaWxkKDIpIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWRhc2hib2FyZCAuYmxvY2stcmV3YXJkLWhpc3RvcnkgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIge1xuICAgICAgbWFyZ2luOiAwIGF1dG87IH0gfVxuICAuY3MtZGFzaGJvYXJkIC5ibG9jay1yZXdhcmQtaGlzdG9yeSAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlcjpudGgtY2hpbGQoMykge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LWFjdGlvbnMgYSArIGE6YmVmb3JlLFxuICAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIGEgKyBhOmJlZm9yZSB7XG4gICAgbWFyZ2luOiAwIDAuN3JlbSAwIDAuNXJlbTtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDFweDtcbiAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjZGNkY2RjOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmJveC1hY3Rpb25zIGEsXG4gIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgYSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyLFxuICAuY3MtZGFzaGJvYXJkIC5vcmRlcnMtaGlzdG9yeSxcbiAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyICsgLnRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtd3JhcHBlciArIC5hY3Rpb25zLXRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgKyAudG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5vcmRlcnMtaGlzdG9yeSArIC5hY3Rpb25zLXRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyArIC50b29sYmFyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgcGFkZGluZzogMS41cmVtOyB9XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtd3JhcHBlci5vcmRlci1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3Rvcnkub3JkZXItaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMub3JkZXItaXRlbXMgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgIHBhZGRpbmc6IDA7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyICsgLnRvb2xiYXIsXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgKyAudG9vbGJhcixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zICsgLnRvb2xiYXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS13cmFwcGVyIC5hY3Rpb24sXG4gICAgLmNzLWRhc2hib2FyZCAub3JkZXJzLWhpc3RvcnkgLmFjdGlvbixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIC5hY3Rpb24ge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0td2lzaGxpc3QtaXRlbXMgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIC5hY3Rpb25zLXRvb2xiYXIgLnByaW1hcnkge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS13aXNobGlzdC1pdGVtcyAuYWN0aW9ucy10b29sYmFyIC5wcmltYXJ5IC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMXJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0tcHdhbm90aWZpY2F0aW9ucy1tYW5hZ2UgLmZpZWxkc2V0IHtcbiAgICBtYXgtd2lkdGg6IGluaXRpYWwgIWltcG9ydGFudDsgfVxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLXB3YW5vdGlmaWNhdGlvbnMtbWFuYWdlIC5maWVsZCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1wd2Fub3RpZmljYXRpb25zLW1hbmFnZSAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBtYXJnaW4tdG9wOiAycmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNzLXRvb2xiYXJfX2l0ZW0tLWFtb3VudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyOjphZnRlciwgLmNzLWRhc2hib2FyZCAudG9vbGJhcjo6YmVmb3JlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBtYXJnaW46IGF1dG87IH1cbiAgICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbSBwIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDsgfSB9XG4gICAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC5jcy10b29sYmFyX19pdGVtLS1hbW91bnQgKyAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAuY3MtdG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIuNXJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIgLmNzLXRvb2xiYXJfX2l0ZW0tLWxpbWl0ZXIge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwOyB9IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50b29sYmFyIC50b29sYmFyLWFtb3VudCB7XG4gICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAucGFnZXMge1xuICAgICAgICBtYXJnaW46IDAgYXV0bzsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLnRvb2xiYXIgLnBhZ2VzIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiBhdXRvOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAubGltaXRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAudG9vbGJhciAubGltaXRlciAubGFiZWwge1xuICAgICAgICB3aWR0aDogYXV0bzsgfSB9XG4gICAgLmNzLWRhc2hib2FyZCAudG9vbGJhci53aXNobGlzdC10b29sYmFyIGJyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYWN0aW9ucy10b29sYmFyID4gLnNlY29uZGFyeSAuYWN0aW9uLmJhY2ssXG4gIC5jcy1kYXNoYm9hcmQgLnNlY29uZGFyeSAuYWN0aW9uLmVkaXQtZW1haWwtcHJlZmVyZW5jZXMge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAucmV2aWV3LWN1c3RvbWVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucy10b29sYmFyID4gLnNlY29uZGFyeSAuYWN0aW9uLmJhY2ssIC5yZXZpZXctY3VzdG9tZXItdmlld1xuICAgIC5jcy1kYXNoYm9hcmQgLnNlY29uZGFyeSAuYWN0aW9uLmVkaXQtZW1haWwtcHJlZmVyZW5jZXMge1xuICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNzLWRhc2hib2FyZCAuYm94LFxuICAuY3MtZGFzaGJvYXJkIC5hZGRyZXNzZXMge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMzBlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAuYm94LFxuICAgICAgLmNzLWRhc2hib2FyZCAuYWRkcmVzc2VzIHtcbiAgICAgICAgd2lkdGg6IDQ4JTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmJveC1jb250ZW50LFxuICAuY3MtZGFzaGJvYXJkIC5hZGRyZXNzZXMgLml0ZW0ge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgY29sb3I6ICM2OTY5Njk7XG4gICAgbGluZS1oZWlnaHQ6IDIuNXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnRvb2x0aXAud3JhcHBlciB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMC41cmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmNob2ljZS5wZXJzaXN0ZW50IHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMS41cmVtOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLmNzLXRhYmxlX19jb2w6bGFzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5wcmljZS1leGNsdWRpbmctdGF4LFxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5pdGVtcy1xdHksXG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLnByb2R1Y3QtaXRlbS1uYW1lIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBjb2xvcjogIzY5Njk2OTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5jcy1jYXJ0LWl0ZW1fX29wdGlvbnMtbGFiZWwge1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICB3aWR0aDogYXV0bztcbiAgICAgIG1hcmdpbi1yaWdodDogMXJlbTsgfVxuICAgICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLmNzLWNhcnQtaXRlbV9fb3B0aW9ucy1sYWJlbDphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICc6JzsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5jcy10YWJsZV9fY29sLnN1YnRvdGFsIHtcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAucHJpY2UtZXhjbHVkaW5nLXRheCAucHJpY2Uge1xuICAgICAgZm9udC13ZWlnaHQ6IDQwMDsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLW9yZGVyLWl0ZW1zIC5pdGVtcy1xdHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1vcmRlci1pdGVtcyAuaXRlbXMtcXR5IC5pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTsgfVxuICAgICAgLmNzLWRhc2hib2FyZCAudGFibGUtb3JkZXItaXRlbXMgLml0ZW1zLXF0eSAuaXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zLFxuICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zLFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMnJlbTtcbiAgICBkaXNwbGF5OiBmbGV4OyB9XG4gIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyLFxuICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcixcbiAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTtcbiAgICBmb250LXNpemU6IDEuMnJlbTtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC44cmVtOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Oi1tb3otZm9jdXMtaW5uZXIsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlciwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6dmlzaXRlZCxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcixcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyICosIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOnZpc2l0ZWQgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkICosXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgKixcbiAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjp2aXNpdGVkICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjphY3RpdmU6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6aG92ZXI6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpmb2N1czpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXI6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXJbZGlzYWJsZWRdLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyW2Rpc2FibGVkXSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXJbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5vcmRlcjo6YmVmb3JlLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOjpiZWZvcmUsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyOjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLm9yZGVyIHNwYW4sXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgc3BhbixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAub3JkZXIgc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cbiAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQsXG4gIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6LW1vei1mb2N1cy1pbm5lcixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OnZpc2l0ZWQsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50LFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCAqLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDp2aXNpdGVkICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludCAqLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZCAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50ICosXG4gICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6dmlzaXRlZCAqIHtcbiAgICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICAgIGZpbGw6ICM3ZTU3YzI7IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSksXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmhvdmVyOm5vdChbZGlzYWJsZWRdKSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6Zm9jdXM6bm90KFtkaXNhYmxlZF0pLFxuICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDphY3RpdmU6bm90KFtkaXNhYmxlZF0pIHtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgIzRkMmM5MTtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDphY3RpdmU6bm90KFtkaXNhYmxlZF0pICosXG4gICAgICAuc2FsZXMtb3JkZXItaW52b2ljZSAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDpob3Zlcjpub3QoW2Rpc2FibGVkXSkgKixcbiAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQ6YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLFxuICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLnNhbGVzLW9yZGVyLXZpZXcgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnRbZGlzYWJsZWRdLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50W2Rpc2FibGVkXSxcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnRbZGlzYWJsZWRdIHtcbiAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICBjdXJzb3I6IGF1dG87IH1cbiAgICAuc2FsZXMtb3JkZXItdmlldyAuY3MtZGFzaGJvYXJkIC5hY3Rpb25zIC5wcmludDo6YmVmb3JlLFxuICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlIC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OjpiZWZvcmUsXG4gICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50OjpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5zYWxlcy1vcmRlci12aWV3IC5jcy1kYXNoYm9hcmQgLmFjdGlvbnMgLnByaW50IHNwYW4sXG4gICAgLnNhbGVzLW9yZGVyLWludm9pY2UgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQgc3BhbixcbiAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgLmNzLWRhc2hib2FyZCAuYWN0aW9ucyAucHJpbnQgc3BhbiB7XG4gICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgei1pbmRleDogMTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQgLnByb2R1Y3QtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDsgfVxuICAuY3MtZGFzaGJvYXJkIC5yYXRpbmctcmVzdWx0IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLnJhdGluZy1yZXN1bHQ6OmJlZm9yZSB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1kYXNoYm9hcmQgLnJhdGluZy1zdW1tYXJ5Lml0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LW5hbWUge1xuICAgIGZvbnQtZmFtaWx5OiBcIkRvc2lzXCIsIHN5c3RlbS11aSwgLWFwcGxlLXN5c3RlbSwgU2Vnb2UgVUksIFJvYm90bywgVWJ1bnR1LCBDYW50YXJlbGwsIE94eWdlbiwgc2Fucy1zZXJpZiwgXCJBcHBsZSBDb2xvciBFbW9qaVwiLCBcIlNlZ29lIFVJIEVtb2ppXCIsIFwiU2Vnb2UgVUkgU3ltYm9sXCIsIFwiTm90byBDb2xvciBFbW9qaVwiO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LXRpdGxlIHtcbiAgICBmb250LWZhbWlseTogXCJEb3Npc1wiLCBzeXN0ZW0tdWksIC1hcHBsZS1zeXN0ZW0sIFNlZ29lIFVJLCBSb2JvdG8sIFVidW50dSwgQ2FudGFyZWxsLCBPeHlnZW4sIHNhbnMtc2VyaWYsIFwiQXBwbGUgQ29sb3IgRW1vamlcIiwgXCJTZWdvZSBVSSBFbW9qaVwiLCBcIlNlZ29lIFVJIFN5bWJvbFwiLCBcIk5vdG8gQ29sb3IgRW1vamlcIjtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcudmlldyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldy52aWV3IC5yZXZpZXcudGl0bGUsXG4gICAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3LnZpZXcgLnJhdGluZ3Mtc3VtbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcudmlldyAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LWRldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDRyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LW1lZGlhIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgIG1heC13aWR0aDogMjguNXJlbTtcbiAgICB3aWR0aDogMzAlOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5jdXN0b21lci1yZXZpZXcgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIC5pdGVtIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgICAgIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucmV2aWV3LWRldGFpbHMgLmN1c3RvbWVyLXJldmlldy1yYXRpbmcgLml0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LXRpdGxlIHtcbiAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIG1hcmdpbi10b3A6IDEuNXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZCAuY3VzdG9tZXItcmV2aWV3IC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmF0aW5nLXN1bW1hcnksXG4gIC5jcy1kYXNoYm9hcmQgLmN1c3RvbWVyLXJldmlldyAucHJvZHVjdC1yZXZpZXdzLXN1bW1hcnkgLnJldmlld3MtYWN0aW9ucyB7XG4gICAgZGlzcGxheTogYmxvY2s7IH1cbiAgLmNzLWRhc2hib2FyZCAuY3JlYXRlLWFjY291bnRfX2JveC1iMmMtYjJiIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLWRhc2hib2FyZCAuY3JlYXRlLWFjY291bnRfX2JveC1iMmMtYjJiIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfSB9XG4gICAgLmNzLWRhc2hib2FyZCAuY3JlYXRlLWFjY291bnRfX2JveC1iMmMtYjJiIC5iMmMtYjJiX2JveCB7XG4gICAgICBtYXJnaW4tdG9wOiAwLjVyZW07IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1kYXNoYm9hcmQgLmNyZWF0ZS1hY2NvdW50X19ib3gtYjJjLWIyYiAuYjJjLWIyYl9ib3gge1xuICAgICAgICAgIG1hcmdpbjogMXJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQsXG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0tYWRkcmVzcy1lZGl0LFxuICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCxcbiAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCxcbiAgLmNzLWRhc2hib2FyZCAuZm9ybS5zZW5kLmNvbmZpcm1hdGlvbixcbiAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQsXG4gIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0ge1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHBhZGRpbmc6IDEuNXJlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50LFxuICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCxcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQsXG4gICAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAgICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQsXG4gICAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgYnIsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCBicixcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIGJyLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IGJyLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gYnIge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmZ1bGxuYW1lIC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50IC5mdWxsbmFtZSAubGFiZWwsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZ1bGxuYW1lIC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCAuZnVsbG5hbWUgLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmZ1bGxuYW1lIC5sYWJlbCB7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5mdWxsbmFtZSA+IC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZnVsbG5hbWUgPiAubGFiZWwsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZ1bGxuYW1lID4gLmxhYmVsLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5mdWxsbmFtZSA+IC5sYWJlbCxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5mdWxsbmFtZSA+IC5sYWJlbCB7XG4gICAgICB3aWR0aDogMXB4OyB9XG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5jcmVhdGUuYWNjb3VudCAuZnVsbG5hbWUgLmNvbnRyb2wsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgLmZ1bGxuYW1lIC5jb250cm9sLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tZWRpdC1hY2NvdW50IC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLnJlc2V0IC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIC5mdWxsbmFtZSAuY29udHJvbCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnBhc3N3b3JkLmZvcmdldCAuZnVsbG5hbWUgLmNvbnRyb2wsXG4gICAgLmNzLWRhc2hib2FyZCAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSAuZnVsbG5hbWUgLmNvbnRyb2wge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5hY3Rpb24ucHJpbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuYWN0aW9uLnByaW1hcnksXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmFjdGlvbi5wcmltYXJ5LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5hY3Rpb24ucHJpbWFyeSxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5hY3Rpb24ucHJpbWFyeSB7XG4gICAgICBmb250LXNpemU6IDEuNHJlbTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmJhY2ssXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuYmFjayxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uIC5iYWNrLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5iYWNrLFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmJhY2sge1xuICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQgLmZpZWxkc2V0LFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0tYWRkcmVzcy1lZGl0IC5maWVsZHNldCxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWVkaXQtYWNjb3VudCAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5yZXNldCAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5zZW5kLmNvbmZpcm1hdGlvbiAuZmllbGRzZXQsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS5wYXNzd29yZC5mb3JnZXQgLmZpZWxkc2V0LFxuICAgIC5jcy1kYXNoYm9hcmQgI2F3X2dpZnRjYXJkX19jaGVja19jb2RlX2Zvcm0gLmZpZWxkc2V0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLmNyZWF0ZS5hY2NvdW50IC5maWVsZHNldC1mdWxsbmFtZSxcbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCAuZmllbGRzZXQtZnVsbG5hbWUsXG4gICAgLmNzLWRhc2hib2FyZCAuZm9ybS1lZGl0LWFjY291bnQgLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQucmVzZXQgLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uc2VuZC5jb25maXJtYXRpb24gLmZpZWxkc2V0LWZ1bGxuYW1lLFxuICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0ucGFzc3dvcmQuZm9yZ2V0IC5maWVsZHNldC1mdWxsbmFtZSxcbiAgICAuY3MtZGFzaGJvYXJkICNhd19naWZ0Y2FyZF9fY2hlY2tfY29kZV9mb3JtIC5maWVsZHNldC1mdWxsbmFtZSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1kYXNoYm9hcmQgLmZvcm0uY3JlYXRlLmFjY291bnQge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDQuNXJlbTtcbiAgICAgICAgcGFkZGluZy10b3A6IDQuNXJlbTtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDQuNXJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLmFkZHJlc3NlcyB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgLmNzLWRhc2hib2FyZCAuYmxvY2stYWRkcmVzc2VzLWxpc3QgKyAuYWN0aW9ucy10b29sYmFyIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5jcy1kYXNoYm9hcmQgLmJveC1iaWxsaW5nLWFkZHJlc3Mge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfSB9XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIC5jb2wuc3RhdGUge1xuICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4LjAxZW0pIHtcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0aDpmaXJzdC1jaGlsZCxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OC4wMWVtKSB7XG4gICAgLmNzLWRhc2hib2FyZCAudGFibGUtYWRkaXRpb25hbC1hZGRyZXNzZXMtaXRlbXMgdGg6bGFzdC1jaGlsZCxcbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzkuOTllbSkge1xuICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyAuYWN0aW9uLmRlbGV0ZSB7XG4gICAgd2lkdGg6IDEwMCU7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyAuYWN0aW9uLmRlbGV0ZTpiZWZvcmUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWF4LXdpZHRoOiA3OS45OWVtKSB7XG4gIC5jcy1kYXNoYm9hcmQgLnRhYmxlLWFkZGl0aW9uYWwtYWRkcmVzc2VzLWl0ZW1zIC5hY3Rpb24uZWRpdCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlOyB9IH1cbiAgLmNzLWRhc2hib2FyZCAuZm9ybS1uZXdzbGV0dGVyLW1hbmFnZSB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgICAuY3MtZGFzaGJvYXJkIC5mb3JtLW5ld3NsZXR0ZXItbWFuYWdlIC5maWVsZHNldCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2J1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtZGFzaGJvYXJkX19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2J1dHRvbiwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtZGFzaGJvYXJkX19idXR0b24gKiwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLWRhc2hib2FyZF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLWRhc2hib2FyZF9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLWRhc2hib2FyZF9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtZGFzaGJvYXJkX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1kYXNoYm9hcmRfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1kYXNoYm9hcmRfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAuY3MtZGFzaGJvYXJkX19idXR0b24tc3BhbiB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyB9XG4gIC5jcy1kYXNoYm9hcmRfX2J1dHRvbi1pY29uIHtcbiAgICBtYXgtd2lkdGg6IDFlbTtcbiAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgei1pbmRleDogMjtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1ndWVzdCB7XG4gICAgcGFkZGluZy10b3A6IDJyZW07IH1cbiAgLmNzLWRhc2hib2FyZF9fd2lzaGxpc3QtZ3Vlc3QtY29weSB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAuY3MtZGFzaGJvYXJkX193aXNobGlzdC1ndWVzdC1jb3B5LWljb24ge1xuICAgIHdpZHRoOiAycmVtO1xuICAgIGhlaWdodDogMnJlbTtcbiAgICBmaWxsOiAjNjk2OTY5O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsgfVxuXG4uY3MtY29udGFpbmVyLS1jcmVhdGUtYWNjb3VudC1wYWdlLCAuY3MtY29udGFpbmVyLS1sb2dpbi1wYWdlLCAuY3MtY29udGFpbmVyLS1zdWNjZXNzLXBhZ2UsIC5jcy1jb250YWluZXItLWxvZ291dC1wYWdlLCAuY3MtY29udGFpbmVyLS1jb250YWN0LXBhZ2Uge1xuICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgcGFkZGluZy1ib3R0b206IDJyZW07IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtY29udGFpbmVyLS1jcmVhdGUtYWNjb3VudC1wYWdlLCAuY3MtY29udGFpbmVyLS1sb2dpbi1wYWdlLCAuY3MtY29udGFpbmVyLS1zdWNjZXNzLXBhZ2UsIC5jcy1jb250YWluZXItLWxvZ291dC1wYWdlLCAuY3MtY29udGFpbmVyLS1jb250YWN0LXBhZ2Uge1xuICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICBwYWRkaW5nLWJvdHRvbTogNXJlbTsgfSB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAuY3MtY29udGFpbmVyLS1teS1hY2NvdW50LXBhZ2Uge1xuICAgIHBhZGRpbmctbGVmdDogMS41cmVtO1xuICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTsgfSB9XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5hY3Rpb24ge1xuICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTsgfVxuXG4uYWNjb3VudCAudGFibGUtd3JhcHBlciAuYWN0aW9uOmxhc3QtY2hpbGQge1xuICBtYXJnaW4tcmlnaHQ6IDA7IH1cblxuLmJsb2NrIHA6bGFzdC1jaGlsZCB7XG4gIG1hcmdpbjogMDsgfVxuXG4uYmxvY2sgLmJveC1hY3Rpb25zIHtcbiAgbWFyZ2luLXRvcDogMC41cmVtOyB9XG5cbi5hY2NvdW50LnBhZ2UtcHJpbnQgLml0ZW1zLXF0eSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTsgfVxuXG4uY3MtZGFzaGJvYXJkIC5mb3JtLWFkZHJlc3MtZWRpdCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDdweDsgfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAncGFnZXMvbGF5b3V0LzJjb2x1bW5zLWxlZnQvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAndXRpbHMvY29tcG9uZW50LXNwYWNpbmcnO1xuQGltcG9ydCAndXRpbHMvcmVzZXQtbGlzdC1zdHlsZSc7XG5cbiRkYXNoYm9hcmQtYnV0dG9uX3R5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGRhc2hib2FyZC1idXR0b25fc2Vjb25kYXJ5LXR5cGU6ICdzZWNvbmRhcnknICFkZWZhdWx0O1xuJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfYnV0dG9uX2Zvcm1zLWZvbnQtc2l6ZTogMS40cmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZC1idXR0b25fc21hbGwtZm9udC1zaXplOiAxLjJyZW0gIWRlZmF1bHQ7XG5cbiRkYXNoYm9hcmRfbWFpbi1zZXBhcmF0b3ItYXBwbHk6IGZhbHNlICFkZWZhdWx0O1xuJGRhc2hib2FyZF9zaWRlYmFyLW1haW4tc3BhY2U6IDMuNXJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfYm90dG9tLWJvcmRlci10b3A6IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtbGlua3Mtc2VwYXJhdG9yOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2xvZ2luLXNlY3Rpb25zLXNlcGFyYXRvcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX2hlYWRsaW5lLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oZWFkbGluZS1tYXJnaW4tYm90dG9tOiAxcmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oZWFkbGluZS1wYWRkaW5nLWJvdHRvbTogMC44cmVtICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXNpemU6ICRmb250LXNpemVfaGVhZGxpbmUtMyAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtZm9udC13ZWlnaHQ6IDYwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfaGVhZGxpbmUtbGluay1mb250LXNpemU6ICRmb250LXNpemVfcGFyYWdyYXBoICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX2JveC10aXRsZS1mb250LXNpemU6IDEuMXJlbSAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfYm94LXRpdGxlLWZvbnQtd2VpZ2h0OiA2MDAgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JveC10aXRsZS10ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlICFkZWZhdWx0O1xuXG4kZGFzaGJvYXJkX3RleHQtZm9udC13ZWlnaHQ6IDMwMCAhZGVmYXVsdDtcbiRkYXNoYm9hcmRfdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJGRhc2hib2FyZF90ZXh0LWxpbmUtaGVpZ2h0OiAyLjVyZW0gIWRlZmF1bHQ7XG5cbiRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG5cbi8vIEZvciBzaG9wcyB3aXRoIGRhcmtlciBiYWNrZ3JvdW5kIGVsZW1lbnRzIGluIHVzZXIgYXJlYSBhcmUgcGxhY2VkIGluIHNlcGFyYXRlIGJveGVzXG5cbi8vIFZhbHVlcyBzcGVjaWZpYyBmb3Igc2hvcHMgd2l0aCBiYWNrZ3JvdW5kXG4kZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZDogZmFsc2UgIWRlZmF1bHQ7XG4kZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnM6IGZhbHNlICFkZWZhdWx0O1xuJGRhc2hib2FyZF9oaWRlLXRpdGxlcy1zZXBhcmF0b3JzOiBmYWxzZSAhZGVmYXVsdDtcbi8vIFNldCB2YWx1ZSBpZiAkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCBpcyBzZXQgdG8gdHJ1ZVxuJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nOiAxLjVyZW0gIWRlZmF1bHQ7XG4vLyBGb3Igc2hvcHMgd2hpdGUgd2hpdGUgYmFja2dyb3VuZCBpdCBpcyBhbHNvIG5lZWRlZCBhcyBpdCBpcyBwYXJ0IG9mIHNwYWNpbmcgc3lzdGVtLlxuLy8gRm9yIHNob3BzIHdpdGggZGFya2VyIGJhY2tncm91bmQgdmFsdWUgaGVyZSBjYW4gYmUgc21hbGxlciBvZiBoaWdoZXJcbiRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlczogMnJlbSAhZGVmYXVsdDtcblxuLy8gT3JkZXIgdGFibGVcbiRkYXNoYm9hcmRfcHJpY2UtZm9udC1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuXG4uI3skbnN9ZGFzaGJvYXJkIHtcbiAgICAkcm9vdDogJjtcblxuICAgIEBpbmNsdWRlIHR3by1jb2x1bW5zLWxlZnQoJGRhc2hib2FyZF9tYWluLXNlcGFyYXRvci1hcHBseSk7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAmX19jb2x1bW5zIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBtYXJnaW46IDNyZW0gMDtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NpZGViYXIge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDJyZW07XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcGFkZGluZzogMCAwIDAgJGRhc2hib2FyZF9zaWRlYmFyLW1haW4tc3BhY2U7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBHdWVzdCB3aXNobGlzdCB3aXRob3V0IHNpZGViYXJcbiAgICAgICAgLndpc2hsaXN0LWluZGV4LWluZGV4LnBhZ2UtbGF5b3V0LTFjb2x1bW4gJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RvcCB7XG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oaWRlLXNlY3Rpb25zLXNlcGFyYXRvcnMgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDAgM3JlbTtcbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAxcmVtO1xuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BhZ2UtdGl0bGUge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IGZhbHNlKSB7XG4gICAgICAgICAgICAvLyBwYWRkaW5nLWJvdHRvbTogM3JlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5wYWdlLXRpdGxlIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IGZhbHNlKSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMXJlbSAwO1xuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvbHVtbnMgLmNvbHVtbi5tYWluIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAubWVzc2FnZS1lcnJvcixcbiAgICAubWVzc2FnZS1zdWNjZXNzLFxuICAgIC5tZXNzYWdlLW5vdGljZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgfVxuXG4gICAgLnBhZ2UtdGl0bGUtd3JhcHBlciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JvdHRvbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IGZhbHNlKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICAgICAgICAgIGJvcmRlci10b3A6ICRkYXNoYm9hcmRfYm90dG9tLWJvcmRlci10b3A7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDNyZW07XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0IHtcbiAgICAgICAgJi1saW5lIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LXByb2R1Y3RzLWdyaWQge1xuICAgICAgICBAaW5jbHVkZSBjb21wb25lbnQtc3BhY2luZygpO1xuICAgIH1cblxuICAgICZfX3dpc2hsaXN0LWd1ZXN0LWNvZGUge1xuICAgICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIH1cblxuICAgICZfX2JvdHRvbS13aXNobGlzdCB7XG4gICAgICAgIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lTGcnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMy4zMyU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bnRoLWNoaWxkKG4gKyA0KSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xvZ2luIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1zZWN0aW9uIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoNTAlIC0gKCN7JGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzfSAvIDIpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOm50aC1jaGlsZCgybiArIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYm9yZGVyLXJpZ2h0OiAkZGFzaGJvYXJkX2xvZ2luLXNlY3Rpb25zLXNlcGFyYXRvcjtcblxuICAgICAgICAgICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKDJuICsgMikge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLWNvbnRhY3QtcGFnZSB7XG4gICAgICAgIC5wYWdlLXRpdGxlLXdyYXBwZXIge1xuICAgICAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFjdC1mb3JtIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIEdlbmVyYWwgVXNlciBBcmVhIHN0eWxlc1xuXG4gICAgLmZpZWxkc2V0LFxuICAgIC5mb3JtIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1pbi13aWR0aDogMTVyZW0gIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuZmllbGRzZXQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIC8vIG1heC13aWR0aDogNDVyZW0gIWltcG9ydGFudDtcbiAgICAgICAgXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gM3JlbSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmZpZWxkc2V0LmZpZWxkc2V0LWZ1bGxuYW1le1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmZpZWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICB9XG5cbiAgICAubGltaXRlciB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgZmllbGQtc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgLmNob2ljZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICAvLyBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgIC5sYWJlbCB7XG4gICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0O1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtc2l6ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jaGVja2JveCB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZmllbGQtbmFtZS1wcmVmaXgge1xuICAgICAgICBtYXgtd2lkdGg6IDEycmVtO1xuICAgIH1cblxuICAgIC5wcmltYXJ5IHtcbiAgICAgICAgPiBidXR0b24sXG4gICAgICAgIC5jcmVhdGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBtaW4td2lkdGg6IDEycmVtO1xuXG4gICAgICAgICAgICAud2lzaGxpc3QtaW5kZXgtaW5kZXggJiB7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgID4gYnV0dG9uLmFjdGlvbi51cGRhdGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5yZW1pbmQsXG4gICAgLmJhY2sge1xuICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmRfbGlua3MtZm9udC1zaXplO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjdyZW07XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB9XG5cbiAgICAuY291bnRlciB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTFyZW0pO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJygnO1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiAnKSc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2sge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAxLjVyZW0gMCAyLjVyZW07XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl93aGl0ZTtcbiAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuXG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBtYXJnaW46IDEuNXJlbSAwIDRyZW07XG5cbiAgICAgICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5ibG9jay10aXRsZSxcbiAgICAubGVnZW5kLFxuICAgIC5vcmRlci10aXRsZSB7XG4gICAgICAgIC8vIGJvcmRlci1ib3R0b206ICRkYXNoYm9hcmRfaGVhZGxpbmUtYm9yZGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX2hlYWRsaW5lLW1hcmdpbi1ib3R0b207XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAkZGFzaGJvYXJkX2hlYWRsaW5lLXBhZGRpbmctYm90dG9tO1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWZvbnQtc2l6ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtdGl0bGVzLXNlcGFyYXRvcnMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0cm9uZyB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9oZWFkbGluZS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLXRpdGxlIGEge1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2hlYWRsaW5lLWxpbmstZm9udC1zaXplO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdGV4dC1ib3R0b207XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgfVxuXG4gICAgLmJveC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9ib3gtdGl0bGUtZm9udC13ZWlnaHQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiAkZGFzaGJvYXJkX2JveC10aXRsZS10ZXh0LXRyYW5zZm9ybTtcbiAgICB9XG5cbiAgICAuYmxvY2stY29udGVudCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBtYXJnaW46IDJyZW0gMCAwO1xuXG4gICAgICAgIC5zYWxlcy1vcmRlci1oaXN0b3J5ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYubm8tZGlzcGxheSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLW5ldy1jdXN0b21lciAuYmxvY2stY29udGVudCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYmxvY2stcmV3YXJkLWhpc3Rvcnkge1xuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbS0tYW1vdW50IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUaGVyZSBpcyBubyBvdGhlciB3YXkgdG8gcmVtb3ZlIHRvcCB0b29sYmFyIGVsZW1lbnRzXG4gICAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5wYWdlcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMC43cmVtIDAgMnJlbTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuI3skbnN9dG9vbGJhcl9faXRlbS0tbGltaXRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWFjdGlvbnMsXG4gICAgLmFjdGlvbnMge1xuICAgICAgICBhICsgYSB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAuN3JlbSAwIDAuNXJlbTtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDEuMnJlbTtcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRkYXNoYm9hcmRfaGVhZGxpbmUtbGlua3Mtc2VwYXJhdG9yO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYSB7XG4gICAgICAgICAgICBmb250LXdlaWdodDogJGRhc2hib2FyZF9saW5rcy1mb250LXdlaWdodDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRhYmxlcyBub3QgcGxhY2VkIGluc2lkZSBib3ggaW4gbWFya3VwXG4gICAgLnRhYmxlLXdyYXBwZXIsXG4gICAgLm9yZGVycy1oaXN0b3J5LFxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAudG9vbGJhcixcbiAgICAgICAgJiArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vcmRlci1pdGVtcyArIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYgKyAudG9vbGJhciB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24ge1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLm9yZGVycy1oaXN0b3J5LFxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zLFxuICAgIC5yZXZpZXdzLFxuICAgIC50cmFuc2FjdGlvbnMge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5mb3JtLXdpc2hsaXN0LWl0ZW1zIHtcbiAgICAgICAgLmFjdGlvbnMtdG9vbGJhciAucHJpbWFyeSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPD1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgICAgICAgIC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDFyZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tcHdhbm90aWZpY2F0aW9ucy1tYW5hZ2Uge1xuICAgICAgICAuZmllbGRzZXQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBpbml0aWFsICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGQge1xuICAgICAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucy10b29sYmFyIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6ICRkYXNoYm9hcmRfc3BhY2UtYmV0d2Vlbi1ib3hlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC4jeyRuc310b29sYmFyX19pdGVtLS1hbW91bnQge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgIC50b29sYmFyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgJjo6YWZ0ZXIsXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLiN7JG5zfXRvb2xiYXJfX2l0ZW0ge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBtYXJnaW46IGF1dG87XG5cbiAgICAgICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWFtb3VudCB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICArIC4jeyRuc310b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYtLWxpbWl0ZXIge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC50b29sYmFyLWFtb3VudCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAucGFnZXMge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAubGltaXRlciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLndpc2hsaXN0LXRvb2xiYXIge1xuICAgICAgICAgICAgYnIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWN0aW9ucy10b29sYmFyID4gLnNlY29uZGFyeSAuYWN0aW9uLmJhY2ssXG4gICAgLnNlY29uZGFyeSAuYWN0aW9uLmVkaXQtZW1haWwtcHJlZmVyZW5jZXMge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgIC5yZXZpZXctY3VzdG9tZXItdmlldyAmIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJveCxcbiAgICAuYWRkcmVzc2VzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49cGhvbmVMZycpIHtcbiAgICAgICAgICAgIHdpZHRoOiA0OCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWNvbnRlbnQsXG4gICAgLmFkZHJlc3NlcyAuaXRlbSB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX3RleHQtZm9udC13ZWlnaHQ7XG4gICAgICAgIGNvbG9yOiAkZGFzaGJvYXJkX3RleHQtY29sb3I7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZGFzaGJvYXJkX3RleHQtbGluZS1oZWlnaHQ7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuXG4gICAgLnRvb2x0aXAud3JhcHBlciB7XG4gICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZF9saW5rcy1mb250LXNpemU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjVyZW07XG4gICAgfVxuXG4gICAgLmNob2ljZS5wZXJzaXN0ZW50IHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEuNXJlbTtcbiAgICB9XG5cbiAgICAvLyBPcmRlciBzY3Rpb24gYW5kIHBhZ2VcbiAgICAudGFibGUtb3JkZXItaXRlbXMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIC4jeyRuc310YWJsZV9fY29sOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAycmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAgICAgICAgIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAgICAgICAgICAgLml0ZW1zLXF0eSxcbiAgICAgICAgICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkZGFzaGJvYXJkX3ByaWNlLWZvbnQtY29sb3I7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC4jeyRuc31jYXJ0LWl0ZW1fX29wdGlvbnMtbGFiZWwge1xuICAgICAgICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcblxuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnOic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuI3skbnN9dGFibGVfX2NvbC5zdWJ0b3RhbCB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnByaWNlLWV4Y2x1ZGluZy10YXggLnByaWNlIHtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW1zLXF0eSB7XG4gICAgICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XG5cbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgJixcbiAgICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgJixcbiAgICAgICAgLnNhbGVzLW9yZGVyLXNoaXBtZW50ICYge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5vcmRlciB7XG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItdmlldyAmLFxuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLWludm9pY2UgJixcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci1zaGlwbWVudCAmIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uX2ljb24tcG9zXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6ICRkYXNoYm9hcmQtYnV0dG9uX3NtYWxsLWZvbnQtc2l6ZTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC44cmVtO1xuXG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcGFuIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJpbnQge1xuICAgICAgICAgICAgLnNhbGVzLW9yZGVyLXZpZXcgJixcbiAgICAgICAgICAgIC5zYWxlcy1vcmRlci1pbnZvaWNlICYsXG4gICAgICAgICAgICAuc2FsZXMtb3JkZXItc2hpcG1lbnQgJiB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fc2Vjb25kYXJ5LXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJGRhc2hib2FyZC1idXR0b25fc21hbGwtZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMXJlbTtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjhyZW07XG5cbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b25fc3BhbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl9zZWNvbmRhcnktdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b25faWNvbi1wb3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXZpZXdzIHNlY3Rpb24gYW5kIHBhZ2VcbiAgICAuYmxvY2stcmV2aWV3cy1kYXNoYm9hcmQge1xuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkZGFzaGJvYXJkX2xpbmtzLWZvbnQtd2VpZ2h0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnJhdGluZy1yZXN1bHQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucmF0aW5nLXN1bW1hcnkuaXRlbSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIH1cblxuICAgIC5jdXN0b21lci1yZXZpZXcge1xuICAgICAgICAucHJvZHVjdC1uYW1lIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRmb250LXNpemVfaGVhZGxpbmUtNCk7XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LXRpdGxlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRsaW5lKCRmb250LXNpemVfaGVhZGxpbmUtNCk7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYudmlldyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAycmVtO1xuXG4gICAgICAgICAgICAucmV2aWV3LnRpdGxlLFxuICAgICAgICAgICAgLnJhdGluZ3Mtc3VtbWFyeSxcbiAgICAgICAgICAgIC5wcm9kdWN0LWRldGFpbHMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1kZXRhaWxzIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDRyZW07XG4gICAgICAgIH1cblxuICAgICAgICAucHJvZHVjdC1tZWRpYSB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMyU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDI4LjVyZW07XG4gICAgICAgICAgICB3aWR0aDogMzAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnJldmlldy1kZXRhaWxzIC5jdXN0b21lci1yZXZpZXctcmF0aW5nIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICAgICAgICAgIC5pdGVtIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuXG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAucmV2aWV3LWRldGFpbHMgLnJldmlldy10aXRsZSB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMS4xO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxLjVyZW07XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5yZXZpZXctZGV0YWlscyAucmV2aWV3LWNvbnRlbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmF0aW5nLXN1bW1hcnksXG4gICAgICAgIC5wcm9kdWN0LXJldmlld3Mtc3VtbWFyeSAucmV2aWV3cy1hY3Rpb25zIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAuY3JlYXRlLWFjY291bnRfX2JveC1iMmMtYjJie1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDJyZW07XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYjJjLWIyYl9ib3h7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAxcmVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIEFkZHJlc3MgZm9ybXMgc2VjdGlvbnNcbiAgICAuZm9ybS5jcmVhdGUuYWNjb3VudCxcbiAgICAuZm9ybS1hZGRyZXNzLWVkaXQsXG4gICAgLmZvcm0tZWRpdC1hY2NvdW50LFxuICAgIC5mb3JtLnBhc3N3b3JkLnJlc2V0LFxuICAgIC5mb3JtLnNlbmQuY29uZmlybWF0aW9uLFxuICAgIC5mb3JtLnBhc3N3b3JkLmZvcmdldCxcbiAgICAjYXdfZ2lmdGNhcmRfX2NoZWNrX2NvZGVfZm9ybSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcbiAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgYnIge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mdWxsbmFtZSB7XG4gICAgICAgICAgICAubGFiZWwge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEluIHRoZW1lLWZyb250ZW5kLWJsYW5rL01hZ2VudG9fQ3VzdG9tZXIvd2ViL2Nzcy9zb3VyY2UvX21vZHVsZS5sZXNzIHRoaXMgbGFiZWwgaXMgdmlzdWFsbHkgaGlkZGVuLFxuICAgICAgICAgICAgLy8gYW5kIGZpcnN0IGxhYmVsIHdpZHRoIG11c3QgYmUgMXB4IGhlcmVcbiAgICAgICAgICAgID4gLmxhYmVsIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuY29udHJvbCB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9uLnByaW1hcnkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZGFzaGJvYXJkX2J1dHRvbl9mb3Jtcy1mb250LXNpemU7XG4gICAgICAgIH1cblxuICAgICAgICAuYmFjayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG4gICAgICAgIH1cblxuICAgICAgICAuZmllbGRzZXQtZnVsbG5hbWUge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuZm9ybS5jcmVhdGUuYWNjb3VudHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjs7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNC41cmVtO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDQuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA0LjVyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1lZGl0LWFjY291bnQsXG4gICAgLmZvcm0tYWRkcmVzcy1lZGl0IHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYWRkcmVzc2VzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0IHtcbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hhcy1kYXJrZXItYmFja2dyb3VuZCA9PSB0cnVlKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmJsb2NrLWFkZHJlc3Nlcy1saXN0ICsgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRkYXNoYm9hcmRfYm94ZXMtYmFja2dyb3VuZDtcblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgICAgICAgICAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmdcbiAgICAgICAgICAgICAgICAkZGFzaGJvYXJkX2JveGVzLWlubmVyLXBhZGRpbmc7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAkZGFzaGJvYXJkX3NwYWNlLWJldHdlZW4tYm94ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYm94LWJpbGxpbmctYWRkcmVzcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMnJlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC50YWJsZS1hZGRpdGlvbmFsLWFkZHJlc3Nlcy1pdGVtcyB7XG4gICAgICAgIC5jb2wuc3RhdGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoLFxuICAgICAgICB0ZCB7XG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPnRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmFjdGlvbi5kZWxldGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJywgJzxsYXB0b3BMZycpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5hY3Rpb24uZWRpdCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnLCAnPGxhcHRvcExnJykge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIE5ld3NsZXR0ZXIgc2VjdGlvblxuICAgIC5mb3JtLW5ld3NsZXR0ZXItbWFuYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIEBpZiAoJGRhc2hib2FyZF9oYXMtZGFya2VyLWJhY2tncm91bmQgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgcGFkZGluZzogJGRhc2hib2FyZF9ib3hlcy1pbm5lci1wYWRkaW5nO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZpZWxkc2V0IHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGRhc2hib2FyZC1idXR0b25fdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJGRhc2hib2FyZC1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRkYXNoYm9hcmQtYnV0dG9uX3R5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRkYXNoYm9hcmQtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkZGFzaGJvYXJkLWJ1dHRvbl90eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkZGFzaGJvYXJkLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC5vcmRlci1kZXRhaWxzLWl0ZW1zLm9yZGVyZWQge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwLjVyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZGFzaGJvYXJkX2JveGVzLWJhY2tncm91bmQ7XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGlkZS1zZWN0aW9ucy1zZXBhcmF0b3JzID09IHRydWUpIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAub3JkZXItbGlua3Mge1xuICAgICAgICBAaWYgKCRkYXNoYm9hcmRfaGFzLWRhcmtlci1iYWNrZ3JvdW5kID09IHRydWUpIHtcbiAgICAgICAgICAgIHBhZGRpbmc6ICRkYXNoYm9hcmRfYm94ZXMtaW5uZXItcGFkZGluZztcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgJGRhc2hib2FyZF9zcGFjZS1iZXR3ZWVuLWJveGVzO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhc2hib2FyZF9ib3hlcy1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgQGlmICgkZGFzaGJvYXJkX2hpZGUtc2VjdGlvbnMtc2VwYXJhdG9ycyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3Qge1xuICAgICAgICBwYWRkaW5nLXRvcDogMnJlbTtcbiAgICB9XG5cbiAgICAmX193aXNobGlzdC1ndWVzdC1jb3B5IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgfVxuXG4gICAgJl9fd2lzaGxpc3QtZ3Vlc3QtY29weS1pY29uIHtcbiAgICAgICAgd2lkdGg6IDJyZW07XG4gICAgICAgIGhlaWdodDogMnJlbTtcbiAgICAgICAgZmlsbDogJGRhc2hib2FyZF90ZXh0LWNvbG9yO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgfVxufVxuXG4uI3skbnN9Y29udGFpbmVyIHtcbiAgICAmLS1jcmVhdGUtYWNjb3VudC1wYWdlLFxuICAgICYtLWxvZ2luLXBhZ2UsXG4gICAgJi0tc3VjY2Vzcy1wYWdlLFxuICAgICYtLWxvZ291dC1wYWdlLFxuICAgICYtLWNvbnRhY3QtcGFnZSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMnJlbTtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogM3JlbTtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA1cmVtO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tbXktYWNjb3VudC1wYWdlIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNXJlbTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXI6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLmFjdGlvbiB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxLjVyZW07XG59XG5cbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIC5hY3Rpb246bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uYmxvY2sgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5ibG9jayAuYm94LWFjdGlvbnMge1xuICAgIG1hcmdpbi10b3A6IDAuNXJlbTtcbn1cblxuLmFjY291bnQucGFnZS1wcmludCB7XG4gICAgLml0ZW1zLXF0eSB7XG4gICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpc3Qtc3R5bGUoKTtcbiAgICB9XG59XG5cblxuLmNzLWRhc2hib2FyZCAuZm9ybS1hZGRyZXNzLWVkaXR7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xufSIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbiRsYXlvdXQtMmNvbC1sZWZ0X2NvbHVtbnMtcGVyLXJvdzogZGVlcC1nZXQoXG4gICAgJHZpZXcteG1sLFxuICAgIHZhcnMsXG4gICAgTWFnZVN1aXRlX0NvbnRlbnRDb25zdHJ1Y3RvcixcbiAgICBjb2x1bW5zLFxuICAgIG9uZS1jb2x1bW5cbikgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF93YXMtc2VwYXJhdG9yLWNhbGxlZC15ZXQ6IGZhbHNlICFkZWZhdWx0O1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0OiAkcGFnZV9lZGdlLWd1dHRlciAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci1kZXNrdG9wOiAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0ICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLWRlc2t0b3A6IDIgKlxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci10YWJsZXQgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1zZXBhcmF0b3ItYXBwbHk6IHRydWUgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1zZXBhcmF0b3ItY29sb3I6ICRjb2xvcl9ib3JkZXItMjAwICFkZWZhdWx0O1xuXG4kbGF5b3V0LTJjb2wtbGVmdF9sYXlvdXQtYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWRlZmF1bHQ7XG5cbiRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItcGFkZGluZy10YWJsZXQ6IDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItdGFibGV0IDAgMCAhZGVmYXVsdDtcbiRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItcGFkZGluZy1kZXNrdG9wOiAwXG4gICAgJGxheW91dC0yY29sLWxlZnRfZWxlbWVudHMtZ3V0dGVyLWRlc2t0b3AgMCAwICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1ib3JkZXItcmlnaHQ6IDJweCBzb2xpZFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLXNlcGFyYXRvci1jb2xvciAhZGVmYXVsdDtcblxuJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZzogMS41cmVtICFkZWZhdWx0O1xuJGxheW91dC0yY29sLWxlZnRfbWFpbi1wYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXRvcC1zcGFjaW5nIDAgMFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci10YWJsZXQgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctdGFibGV0OiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXRvcC1zcGFjaW5nIDAgMFxuICAgICRsYXlvdXQtMmNvbC1sZWZ0X2VsZW1lbnRzLWd1dHRlci10YWJsZXQgIWRlZmF1bHQ7XG4kbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctZGVza3RvcDogJGxheW91dC0yY29sLWxlZnRfbWFpbi10b3Atc3BhY2luZyAwIDBcbiAgICAkbGF5b3V0LTJjb2wtbGVmdF9lbGVtZW50cy1ndXR0ZXItZGVza3RvcCAhZGVmYXVsdDtcblxuQG1peGluIHR3by1jb2x1bW5zLWxlZnQoJGFwcGx5LWJvcmRlcjogdHJ1ZSkge1xuICAgICZfX2NvbHVtbnMge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6ICRsYXlvdXQtMmNvbC1sZWZ0X2xheW91dC1hbGlnbi1pdGVtcztcblxuICAgICAgICAgICAgJjpiZWZvcmUsXG4gICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWVzc2FnZXMge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19zaWRlYmFyIHtcbiAgICAgICAgb3JkZXI6IDE7XG5cbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRpdGVtc1BlclJvdyBpbiAkbGF5b3V0LTJjb2wtbGVmdF9jb2x1bW5zLXBlci1yb3cge1xuICAgICAgICAgICAgQGlmICRicmVha3BvaW50ICE9IHBob25lIGFuZCAkYnJlYWtwb2ludCAhPSBwaG9uZUxnIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj0jeyRicmVha3BvaW50fScpIHtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAvICN7JGl0ZW1zUGVyUm93fSk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRpdGVtc1BlclJvdyA+XG4gICAgICAgICAgICAgICAgICAgICAgICAxIGFuZFxuICAgICAgICAgICAgICAgICAgICAgICAgJGxheW91dC0yY29sLWxlZnRfd2FzLXNlcGFyYXRvci1jYWxsZWQteWV0ID09XG4gICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSBhbmRcbiAgICAgICAgICAgICAgICAgICAgICAgICRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItYm9yZGVyLXJpZ2h0ICE9XG4gICAgICAgICAgICAgICAgICAgICAgICBub25lXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkYXBwbHktYm9yZGVyID09IHRydWUge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogJGxheW91dC0yY29sLWxlZnRfc2lkZWJhci1ib3JkZXItcmlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICRsYXlvdXQtMmNvbC1sZWZ0X3dhcy1zZXBhcmF0b3ItY2FsbGVkLXlldDogdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAndGFibGV0JyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9zaWRlYmFyLXBhZGRpbmctdGFibGV0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09ICdsYXB0b3AnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsYXlvdXQtMmNvbC1sZWZ0X3NpZGViYXItcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbWFpbiB7XG4gICAgICAgIG9yZGVyOiAyO1xuXG4gICAgICAgIEBlYWNoICRicmVha3BvaW50LCAkaXRlbXNQZXJSb3cgaW4gJGxheW91dC0yY29sLWxlZnRfY29sdW1ucy1wZXItcm93IHtcbiAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCAhPSBwaG9uZSBhbmQgJGJyZWFrcG9pbnQgIT0gcGhvbmVMZyB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49I3skYnJlYWtwb2ludH0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSAoMTAwJSAvICN7JGl0ZW1zUGVyUm93fSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIEBpZiAkYnJlYWtwb2ludCA9PSAndGFibGV0JyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAkbGF5b3V0LTJjb2wtbGVmdF9tYWluLXBhZGRpbmctdGFibGV0O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICRicmVha3BvaW50ID09ICdsYXB0b3AnIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsYXlvdXQtMmNvbC1sZWZ0X21haW4tcGFkZGluZy1kZXNrdG9wO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNzLXBhZ2UtY2F0ZWdvcnlfX21haW4tLXNlYXJjaC1uby1yZXN1bHQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtZm9ybSwgLmNzLWZvcm1fX2ZpZWxkc2V0IHtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDA7IH1cblxuLmNzLWZvcm1fX2ZpZWxkICsgLmNzLWZvcm1fX2ZpZWxkIHtcbiAgbWFyZ2luLXRvcDogMWVtOyB9XG5cbi5jcy1mb3JtLS1kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IDAuNjsgfVxuXG4uY3MtZm9ybV9fYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6IDEuOHJlbTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBtYXJnaW46IDA7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHotaW5kZXg6IDU7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjpob3ZlciwgLmNzLWZvcm1fX2J1dHRvbjpmb2N1cywgLmNzLWZvcm1fX2J1dHRvbjphY3RpdmUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzIgIWltcG9ydGFudDsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOmJlZm9yZSwgLmNzLWZvcm1fX2J1dHRvbjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLTFweDtcbiAgICBib3R0b206IC0xcHg7XG4gICAgcmlnaHQ6IC0xcHg7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjpiZWZvcmUge1xuICAgIHdpZHRoOiAzLjRlbTtcbiAgICBib3JkZXItcmFkaXVzOiAwIDIwMHB4IDIwMHB4IDA7XG4gICAgei1pbmRleDogLTE7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOmFmdGVyIHtcbiAgICB3aWR0aDogM2VtO1xuICAgIG1pbi13aWR0aDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxO1xuICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICB6LWluZGV4OiAtMjtcbiAgICBib3JkZXItcmFkaXVzOiAyMDBweDsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICB3aWR0aDogY2FsYygxMDAlICsgMnB4KTsgfVxuICAuY3MtZm9ybV9fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbiwgLmNzLWZvcm1fX2J1dHRvbjp2aXNpdGVkIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgLmNzLWZvcm1fX2J1dHRvbiAqLCAuY3MtZm9ybV9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGZpbGw6ICNmZmY7IH1cbiAgLmNzLWZvcm1fX2J1dHRvbjpob3Zlcjpub3QoW2Rpc2FibGVkXSksIC5jcy1mb3JtX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pLCAuY3MtZm9ybV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgIC5jcy1mb3JtX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1mb3JtX19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1mb3JtX19idXR0b246YWN0aXZlOm5vdChbZGlzYWJsZWRdKSAqIHtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgZmlsbDogI2ZmZjsgfVxuICAuY3MtZm9ybV9fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgb3BhY2l0eTogMC42NTtcbiAgICBjdXJzb3I6IGF1dG87IH1cblxuLmNzLWZvcm1fX2J1dHRvbi1zcGFuIHtcbiAgbWFyZ2luLXRvcDogMDtcbiAgei1pbmRleDogMTtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuXG4uY3MtZm9ybV9fYnV0dG9uLWljb24ge1xuICBtYXgtd2lkdGg6IDFlbTtcbiAgbWF4LWhlaWdodDogMS44cmVtO1xuICB6LWluZGV4OiAyO1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIHJpZ2h0OiAxZW07IH1cblxuLmZvcm0sXG4uZm9ybSAuZmllbGRzZXQge1xuICBib3JkZXI6IDA7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDsgfVxuXG4uZm9ybSAuZmllbGQgKyAuZmllbGQge1xuICBtYXJnaW4tdG9wOiAwOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYnV0dG9uL21peGluJztcblxuJGZvcm1fYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJGZvcm1fYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbi4jeyRuc31mb3JtIHtcbiAgICAmLFxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgJl9fZmllbGQge1xuICAgICAgICAmICsgJiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLS1kaXNhYmxlZCB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG5cbiAgICAmX19idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1zcGFuIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX3NwYW4oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX2J1dHRvbi1pY29uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAkdHlwZTogJGZvcm1fYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRmb3JtX2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cbn1cblxuLmZvcm0ge1xuICAgICYsXG4gICAgLmZpZWxkc2V0IHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgLmZpZWxkIHtcbiAgICAgICAgKyAuZmllbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gIGhlaWdodDogMy4ycmVtO1xuICBsaW5lLWhlaWdodDogMy4ycmVtO1xuICBwYWRkaW5nOiAwIDFyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogMTtcbiAgYmFja2dyb3VuZC1zaXplOiAycmVtIDAuN3JlbTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbi15OiA1MCU7XG4gIGJhY2tncm91bmQtcG9zaXRpb24teDogY2FsYygxMDAlIC0gMXJlbSksIGNhbGMoMTAwJSAtICgyLjVyZW0gKyAxcmVtKSksIGNhbGMoMTAwJSAtICgyLjVyZW0gKiAyICsgMXJlbSkpLCBjYWxjKDEwMCUgLSAoMi41cmVtICogMyArIDFyZW0pKSwgY2FsYygxMDAlIC0gKDIuNXJlbSAqIDQgKyAxcmVtKSksIGNhbGMoMTAwJSAtICgyLjVyZW0gKiA1ICsgMXJlbSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyIHtcbiAgICAgIGZvbnQtc2l6ZTogMXJlbTtcbiAgICAgIHBhZGRpbmc6IDAgMC41cmVtOyB9IH1cbiAgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyOmJlZm9yZSB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuICAucGFzc3dvcmQtd2VhayAucGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItd2Vhay5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXdlYWsuc3ZnXCIpOyB9XG4gIC5wYXNzd29yZC1tZWRpdW0gLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1tZWRpdW0uc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1tZWRpdW0uc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1tZWRpdW0uc3ZnXCIpOyB9XG4gIC5wYXNzd29yZC1zdHJvbmcgLnBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmdcIik7IH1cbiAgLnBhc3N3b3JkLXZlcnktc3Ryb25nIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2Z1wiKSwgdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnXCIpLCB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmdcIiksIHVybChcIi4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2Z1wiKTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogMjkuOTllbSkge1xuICAgIC5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEuNXJlbSAwLjVyZW07XG4gICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNhbGMoMTAwJSAtIDFyZW0pLCBjYWxjKCAxMDAlIC0gKCAxLjdyZW0gKyAxcmVtICkpLCBjYWxjKCAxMDAlIC0gKCAxLjdyZW0gKiAyICsgMXJlbSApKSwgY2FsYyggMTAwJSAtICggMS43cmVtICogMyArIDFyZW0gKSksIGNhbGMoIDEwMCUgLSAoIDEuN3JlbSAqIDQgKyAxcmVtICkpLCBjYWxjKCAxMDAlIC0gKCAxLjdyZW0gKiA1ICsgMXJlbSApKTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5cbiRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoOiAycmVtICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24taGVpZ2h0OiAwLjdyZW0gIWRlZmF1bHQ7XG4kcGFzc3dvcmQtc3RyZW5ndGhfaWNvbnMtc3BhY2U6IDAuNXJlbSAhZGVmYXVsdDtcblxuJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24td2lkdGgtc21hbGwtbW9iaWxlOiAxLjVyZW0gIWRlZmF1bHQ7XG4kcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi1oZWlnaHQtc21hbGwtbW9iaWxlOiAwLjVyZW0gIWRlZmF1bHQ7XG4kcGFzc3dvcmQtc3RyZW5ndGhfaWNvbnMtc3BhY2Utc21hbGwtbW9iaWxlOiAwLjJyZW0gIWRlZmF1bHQ7XG5cbiRwYXNzd29yZC1zdHJlbmd0aF9iYWNrZ3JvdW5kLWNvbG9yOiBpbml0aWFsICFkZWZhdWx0O1xuJHBhc3N3b3JkLXN0cmVuZ3RoX2JvcmRlcjogbm9uZSAhZGVmYXVsdDtcbiRwYXNzd29yZC1zdHJlbmd0aF9oZWlnaHQ6IDMuMnJlbSAhZGVmYXVsdDtcblxuJHBhc3N3b3JkLXN0cmVuZ3RoX2NvbWJpbmVkLWljb24td2lkdGg6ICRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoICtcbiAgICAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbnMtc3BhY2U7XG4kcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGU6ICRwYXNzd29yZC1zdHJlbmd0aF9pY29uLXdpZHRoLXNtYWxsLW1vYmlsZSArXG4gICAgJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb25zLXNwYWNlLXNtYWxsLW1vYmlsZTtcblxuLy8gT3JpZ2luYWwgTWFnZW50byBjbGFzcyBpcyBsZWZ0IGZvciB0aGlzIGNvbXBvbmVudFxuLy9cbi5wYXNzd29yZC1zdHJlbmd0aC1tZXRlciB7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHBhc3N3b3JkLXN0cmVuZ3RoX2JhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyOiAkcGFzc3dvcmQtc3RyZW5ndGhfYm9yZGVyO1xuICAgIGJvcmRlci10b3Atd2lkdGg6IDA7XG4gICAgaGVpZ2h0OiAkcGFzc3dvcmQtc3RyZW5ndGhfaGVpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFzc3dvcmQtc3RyZW5ndGhfaGVpZ2h0O1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCc8cGhvbmVMZycpIHtcbiAgICAgICAgZm9udC1zaXplOiAxcmVtO1xuICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICB9XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi13aWR0aFxuICAgICAgICAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi1oZWlnaHQ7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6IDUwJTtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNhbGMoMTAwJSAtIDFyZW0pLFxuICAgICAgICBjYWxjKDEwMCUgLSAoI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aH0gKyAxcmVtKSksXG4gICAgICAgIGNhbGMoMTAwJSAtICgjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRofSAqIDIgKyAxcmVtKSksXG4gICAgICAgIGNhbGMoMTAwJSAtICgjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRofSAqIDMgKyAxcmVtKSksXG4gICAgICAgIGNhbGMoMTAwJSAtICgjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRofSAqIDQgKyAxcmVtKSksXG4gICAgICAgIGNhbGMoMTAwJSAtICgjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRofSAqIDUgKyAxcmVtKSk7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKTtcblxuICAgIC5wYXNzd29yZC13ZWFrICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci13ZWFrLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci13ZWFrLnN2ZycpO1xuICAgIH1cblxuICAgIC5wYXNzd29yZC1tZWRpdW0gJiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXIuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItbWVkaXVtLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1tZWRpdW0uc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLW1lZGl1bS5zdmcnKTtcbiAgICB9XG5cbiAgICAucGFzc3dvcmQtc3Ryb25nICYge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXN0cm9uZy5zdmcnKTtcbiAgICB9XG5cbiAgICAucGFzc3dvcmQtdmVyeS1zdHJvbmcgJiB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmcnKSxcbiAgICAgICAgICAgIHVybCgnLi4vaW1hZ2VzL2ljb25zL2Zvcm1zL2ljb24tcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItdmVyeS1zdHJvbmcuc3ZnJyksXG4gICAgICAgICAgICB1cmwoJy4uL2ltYWdlcy9pY29ucy9mb3Jtcy9pY29uLXBhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXZlcnktc3Ryb25nLnN2ZycpLFxuICAgICAgICAgICAgdXJsKCcuLi9pbWFnZXMvaWNvbnMvZm9ybXMvaWNvbi1wYXNzd29yZC1zdHJlbmd0aC1tZXRlci12ZXJ5LXN0cm9uZy5zdmcnKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHBob25lTGcnKSB7XG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogJHBhc3N3b3JkLXN0cmVuZ3RoX2ljb24td2lkdGgtc21hbGwtbW9iaWxlXG4gICAgICAgICAgICAkcGFzc3dvcmQtc3RyZW5ndGhfaWNvbi1oZWlnaHQtc21hbGwtbW9iaWxlO1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNhbGMoMTAwJSAtIDFyZW0pLFxuICAgICAgICAgICAgY2FsYyhcbiAgICAgICAgICAgICAgICAxMDAlIC1cbiAgICAgICAgICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgICAgICAgICAgI3skcGFzc3dvcmQtc3RyZW5ndGhfY29tYmluZWQtaWNvbi13aWR0aC1zbWFsbC1tb2JpbGV9ICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAxcmVtXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLVxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRoLXNtYWxsLW1vYmlsZX0gKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIgKyAxcmVtXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLVxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRoLXNtYWxsLW1vYmlsZX0gKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgKyAxcmVtXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLVxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRoLXNtYWxsLW1vYmlsZX0gKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQgKyAxcmVtXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBjYWxjKFxuICAgICAgICAgICAgICAgIDEwMCUgLVxuICAgICAgICAgICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgICAgICAgICAjeyRwYXNzd29yZC1zdHJlbmd0aF9jb21iaW5lZC1pY29uLXdpZHRoLXNtYWxsLW1vYmlsZX0gKlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUgKyAxcmVtXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXJldmlldyB7XG4gIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gIC5jcy1yZXZpZXdfX3RpdGxlIHtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbjogMCAwIDAuN3JlbTtcbiAgICBjb2xvcjogIzQ1NWE2NDsgfVxuICAuY3MtcmV2aWV3X19yYXRpbmcsIC5jcy1yZXZpZXdfX3JhdGluZ3Mge1xuICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3MtcmV2aWV3X19jb21wb3VuZC1yYXRpbmcge1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBtYXgtd2lkdGg6IDIwcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IDAuM2VtOyB9XG4gICAgLmNzLXJldmlld19fY29tcG91bmQtcmF0aW5nOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtcmV2aWV3X19tZXRhIHtcbiAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07IH1cbiAgICAuY3MtcmV2aWV3X19tZXRhLS12YXJpYW50LXN1cHBvcnQge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgLmNzLXJldmlld19fbWV0YS1pdGVtIHtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHBhZGRpbmc6IDAgMXJlbTtcbiAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICNkY2RjZGM7IH1cbiAgICAuY3MtcmV2aWV3X19tZXRhLWl0ZW06Zmlyc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gICAgLmNzLXJldmlld19fbWV0YS1pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiBub25lOyB9XG4gIC5jcy1yZXZpZXdfX2F1dGhvciB7XG4gICAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLXJldmlld19fZGF0ZSB7XG4gICAgbWFyZ2luLWxlZnQ6IC00cHg7XG4gICAgY29sb3I6ICM4ODg7IH1cbiAgLmNzLXJldmlld19fdmFyaWFudCB7XG4gICAgZmxleC1ncm93OiAxO1xuICAgIHBhZGRpbmc6IDAgMXJlbTsgfVxuICAgIC5jcy1yZXZpZXdfX3ZhcmlhbnQgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gICAgLmNzLXJldmlld19fdmFyaWFudCAuc3dhdGNoLW9wdGlvbiB7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLmNzLXJldmlld19fY29udGVudCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjODg4OyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcblxuJHJldmlld19mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRyZXZpZXdfdGl0bGUtZm9udC13ZWlnaHQ6IDcwMCAhZGVmYXVsdDtcbiRyZXZpZXdfdGl0bGUtY29sb3I6ICRjb2xvcl90ZXh0LTgwMCAhZGVmYXVsdDtcbiRyZXZpZXdfYXV0aG9yLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kcmV2aWV3X2NvbnRlbnQtY29sb3I6ICRjb2xvcl90ZXh0LTQwMCAhZGVmYXVsdDtcbiRyZXZpZXdfZGF0ZS1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld19tZXRhLWl0ZW0tZm9udC1zaXplOiAwLjllbSAhZGVmYXVsdDtcbiRyZXZpZXdfbWV0YS1pdGVtLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHJldmlld19tZXRhLWl0ZW0tcGFkZGluZzogMCAxcmVtICFkZWZhdWx0O1xuJHJldmlld19oaWRlLWNvbXBvdW5kLXJhdGluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG4uI3skbnN9cmV2aWV3IHtcbiAgICBmb250LXNpemU6ICRyZXZpZXdfZm9udC1zaXplO1xuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBmb250LXdlaWdodDogJHJldmlld190aXRsZS1mb250LXdlaWdodDtcbiAgICAgICAgbWFyZ2luOiAwIDAgMC43cmVtO1xuICAgICAgICBjb2xvcjogJHJldmlld190aXRsZS1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19yYXRpbmcsXG4gICAgJl9fcmF0aW5ncyB7XG4gICAgICAgIG1hcmdpbjogMCAwIDJyZW07XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fY29tcG91bmQtcmF0aW5nIHtcbiAgICAgICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIG1heC13aWR0aDogMjByZW07XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtO1xuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICgkcmV2aWV3X2hpZGUtY29tcG91bmQtcmF0aW5ncykge1xuICAgICAgICAmX19jb21wb3VuZC1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICAgICAgJiAuY3Mtc3Rhci1yYXRpbmdfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9fb3ZlcmFsbC1yYXRpbmcge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21ldGEge1xuICAgICAgICBtYXJnaW46IDAgMCAycmVtO1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdfbWV0YS1pdGVtLWZvbnQtc2l6ZTtcblxuICAgICAgICAmLS12YXJpYW50LXN1cHBvcnQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19tZXRhLWl0ZW0ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYWRkaW5nOiAkcmV2aWV3X21ldGEtaXRlbS1wYWRkaW5nO1xuICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRyZXZpZXdfbWV0YS1pdGVtLWJvcmRlcjtcblxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19hdXRob3Ige1xuICAgICAgICBjb2xvcjogJHJldmlld19hdXRob3ItY29sb3I7XG4gICAgfVxuXG4gICAgJl9fZGF0ZSB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtNHB4O1xuICAgICAgICBjb2xvcjogJHJldmlld19kYXRlLWNvbG9yO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQge1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdfbWV0YS1pdGVtLXBhZGRpbmc7XG5cbiAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtb3B0aW9ucyB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnN3YXRjaC1vcHRpb24ge1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdfY29udGVudC1jb2xvcjtcbiAgICB9XG59XG4iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4uY3MtcmV2aWV3cy1zdW1tYXJ5IHtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDNyZW07XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgZmxleDogMSAwIDEwMCU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeSB7XG4gICAgICBmbGV4OiAwIDAgMzVyZW07XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjVyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyLjVyZW07XG4gICAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgICAgYm9yZGVyLWJvdHRvbTogMDtcbiAgICAgIGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7IH0gfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19ub3RlIHtcbiAgICBmb250LXNpemU6IDRyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEwMCU7XG4gICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjVyZW07IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fbm90ZS1yaWdodCB7XG4gICAgY29sb3I6ICM2OTY5Njk7IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYWxsLWNvdW50IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW46IDFyZW0gMCAycmVtOyB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbi13cmFwcGVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07XG4gICAgcGFkZGluZzogMi41cmVtIDA7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkY2RjZGM7IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbi13cmFwcGVyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIGJvcmRlci10b3A6IDA7IH0gfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBmb250LXNpemU6IDEuOHJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjc1ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuNXMsIGJvcmRlci1jb2xvciAwLjVzLCBmaWxsIDAuNXMsIGNvbG9yIDAuNXM7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB6LWluZGV4OiA1O1xuICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmhvdmVyLCAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246Zm9jdXMsIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjphY3RpdmUge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMiAhaW1wb3J0YW50OyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmJlZm9yZSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmFmdGVyIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAtMXB4O1xuICAgICAgYm90dG9tOiAtMXB4O1xuICAgICAgcmlnaHQ6IC0xcHg7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246YmVmb3JlIHtcbiAgICAgIHdpZHRoOiAzLjRlbTtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDAgMjAwcHggMjAwcHggMDtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDBkZWcsIHRyYW5zcGFyZW50IDAlLCB0cmFuc3BhcmVudCAwJSwgIzRkMmM5MSAwJSwgIzRkMmM5MSAxMDAlKTsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjphZnRlciB7XG4gICAgICB3aWR0aDogM2VtO1xuICAgICAgbWluLXdpZHRoOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIDAuMjVzIGxpbmVhcjtcbiAgICAgIHotaW5kZXg6IC0yO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246aG92ZXI6YWZ0ZXIge1xuICAgICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbiwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgYm9yZGVyLXJhZGl1czogMjAwcHg7XG4gICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjN2U1N2MyOyB9XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24gKiwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b246Zm9jdXM6bm90KFtkaXNhYmxlZF0pICosIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbltkaXNhYmxlZF0ge1xuICAgICAgb3BhY2l0eTogMC42NTtcbiAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAyOS45OWVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24ge1xuICAgICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2J1dHRvbi1zcGFuIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRlbTsgfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19idXR0b24taWNvbiB7XG4gICAgbWF4LXdpZHRoOiAxZW07XG4gICAgbWF4LWhlaWdodDogMS44cmVtO1xuICAgIHotaW5kZXg6IDI7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICByaWdodDogMWVtOyB9XG4gIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3N0YXJzIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDFyZW07XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3N0YXJzIHtcbiAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHJlbTsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3N0YXJzIHtcbiAgICAgICAgZmxleDogMCAxIDEwMCU7IH0gfVxuICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXJzIHtcbiAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAyLjVyZW0gMCAwO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBjb2xvcjogIzY5Njk2OTtcbiAgICBtYXgtd2lkdGg6IDQwcmVtO1xuICAgIHdpZHRoOiAxMDAlOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDIzLjEyNWVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXJzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgd2lkdGg6IGF1dG87IH0gfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXJzIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMi41cmVtOyB9IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYmFyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIDAgMXJlbSAwOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fYmFyOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2Jhci1sYWJlbCB7XG4gICAgICBmbGV4OiAwIDEgMy41ZW07IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXItY291bnQge1xuICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19iYXItcHJvZ3Jlc3Mge1xuICAgICAgZmxleDogMSAwIGF1dG87XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBtaW4td2lkdGg6IDlyZW07XG4gICAgICBoZWlnaHQ6IDAuOWVtO1xuICAgICAgbWFyZ2luOiAwIDAuOHJlbSAwIDAuN3JlbTtcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7IH1cbiAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX2Jhci1wcm9ncmVzcy1pbm5lciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBoZWlnaHQ6IGluaGVyaXQ7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZWRmYTQ7IH1cbiAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcyB7XG4gICAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMi41cmVtIDAgMDtcbiAgICBwYWRkaW5nOiAyLjVyZW0gMCAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZGNkY2RjO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQzOyB9XG4gICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcy1pdGVtIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDAuM2VtOyB9XG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogMjMuMTI1ZW0pIHtcbiAgICAgICAgLmNzLXJldmlld3Mtc3VtbWFyeV9fcmF0aW5ncy1hdmVyYWdlcy1pdGVtIHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDI1cmVtOyB9IH1cbiAgICAgIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgICAgIC5jcy1yZXZpZXdzLXN1bW1hcnlfX3JhdGluZ3MtYXZlcmFnZXMtaXRlbSB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MHJlbTsgfSB9XG4gICAgICAuY3MtcmV2aWV3cy1zdW1tYXJ5X19yYXRpbmdzLWF2ZXJhZ2VzLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHJldmlld3Mtc3VtbWFyeV9ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZzogMi41cmVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9kZXNrdG9wLXdpZHRoOiAzNXJlbSAhZGVmYXVsdDtcblxuJHJldmlld3Mtc3VtbWFyeV9idXR0b24tZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi10eXBlOiAkYnV0dG9uX2RlZmF1bHQtdHlwZSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zOiAkYnV0dG9uX2RlZmF1bHQtaWNvbi1wb3MgIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXN1bW1hcnlfYmFycy1mbGV4LWdyb3c6IDEgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2JhcnMtZm9udC1zaXplOiAxLjRyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2JhcnMtY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFyLW1heC13aWR0aDogNDByZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2Jhci1oZWlnaHQ6IDEuMnJlbSAhZGVmYXVsdDtcbiRyZXZpZXdzLXN1bW1hcnlfYmFyLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1taW4td2lkdGg6IDlyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1oZWlnaHQ6IDAuOWVtICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9wcm9ncmVzcy1iYXItZmlsbC1iYWNrZ3JvdW5kOiAkY29sb3JfcmV2aWV3LWJhci1hY3RpdmUgIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXN1bW1hcnlfbm90ZS1mb250LXNpemU6IDRyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X25vdGUtbGVmdC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3VtbWFyeV9ub3RlLXJpZ2h0LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbiRyZXZpZXdzLXJhdGluZ3MtYXZlcmFnZXNfaGlkZTogZmFsc2UgIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aDogNDByZW0gIWRlZmF1bHQ7XG4kcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aC1tb2JpbGU6IDI1cmVtICFkZWZhdWx0O1xuXG4uI3skbnN9cmV2aWV3cy1zdW1tYXJ5IHtcbiAgICAkcm9vdDogJjtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDNyZW07XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGZsZXg6IDEgMCAxMDAlO1xuICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICBmbGV4OiAwIDAgJHJldmlld3Mtc3VtbWFyeV9kZXNrdG9wLXdpZHRoO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZztcbiAgICAgICAgcGFkZGluZy1yaWdodDogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nO1xuICAgICAgICBib3JkZXItcmlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgICZfX25vdGUge1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzLXN1bW1hcnlfbm90ZS1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxMDAlO1xuICAgICAgICBjb2xvcjogJHJldmlld3Mtc3VtbWFyeV9ub3RlLWxlZnQtY29sb3I7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgICB9XG5cbiAgICAmX19ub3RlLXJpZ2h0IHtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzLXN1bW1hcnlfbm90ZS1yaWdodC1jb2xvcjtcbiAgICB9XG5cbiAgICAmX19hbGwtY291bnQge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luOiAxcmVtIDAgMnJlbTtcbiAgICB9XG5cbiAgICAmX19idXR0b24td3JhcHBlciB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tdG9wOiAkcmV2aWV3cy1zdW1tYXJ5X3NwYWNpbmc7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwO1xuICAgICAgICBib3JkZXItdG9wOiAkcmV2aWV3cy1zdW1tYXJ5X2JvcmRlcjtcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnPGxhcHRvcCcpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uKFxuICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG5cbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1mb250LXNpemU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxwaG9uZUxnJykge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19idXR0b24tc3BhbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzLXN1bW1hcnlfYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgJl9fYnV0dG9uLWljb24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b25faWNvbihcbiAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi10eXBlLFxuICAgICAgICAgICAgJGljb25fcG9zOiAkcmV2aWV3cy1zdW1tYXJ5X2J1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuICAgIH1cblxuICAgICZfX3N0YXJzIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxcmVtO1xuICAgICAgICBmbGV4OiAxIDAgYXV0bztcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1waG9uZScpIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSBhdXRvO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA0cmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZmxleDogMCAxIDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19iYXJzIHtcbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3cy1zdW1tYXJ5X2JhcnMtZm9udC1zaXplO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSBub25lO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwIDA7XG4gICAgICAgIGZsZXgtZ3JvdzogJHJldmlld3Mtc3VtbWFyeV9iYXJzLWZsZXgtZ3JvdztcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzLXN1bW1hcnlfYmFycy1jb2xvcjtcbiAgICAgICAgbWF4LXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X2Jhci1tYXgtd2lkdGg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogJHJldmlld3Mtc3VtbWFyeV9zcGFjaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYmFyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDAgMCAkcmV2aWV3cy1zdW1tYXJ5X2Jhci1tYXJnaW4tYm90dG9tIDA7XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmLWxhYmVsIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMSAzLjVlbTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtY291bnQge1xuICAgICAgICAgICAgd2lkdGg6IDEuNWVtO1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLXByb2dyZXNzIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBhdXRvO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbWluLXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1taW4td2lkdGg7XG4gICAgICAgICAgICBoZWlnaHQ6ICRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWhlaWdodDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwLjhyZW0gMCAwLjdyZW07XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkcmV2aWV3cy1zdW1tYXJ5X3Byb2dyZXNzLWJhci1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBpbmhlcml0O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRyZXZpZXdzLXN1bW1hcnlfcHJvZ3Jlc3MtYmFyLWZpbGwtYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGluZ3MtYXZlcmFnZXMge1xuICAgICAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwIDA7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzLXN1bW1hcnlfc3BhY2luZyAwIDA7XG4gICAgICAgIGJvcmRlci10b3A6ICRyZXZpZXdzLXN1bW1hcnlfYm9yZGVyO1xuICAgICAgICBAaWYgKCRyZXZpZXdzLXJhdGluZ3MtYXZlcmFnZXNfaGlkZSkge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICBsaW5lLWhlaWdodDogMS40MztcblxuICAgICAgICAmLWl0ZW0ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXBob25lJykge1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogJHJldmlld3Mtc3VtbWFyeV9hdmVyYWdlc19tYXgtd2lkdGgtbW9iaWxlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAkcmV2aWV3cy1zdW1tYXJ5X2F2ZXJhZ2VzX21heC13aWR0aDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLypcbiAqIEZ1bmN0aW9uIHRvIGdldCB2YWx1ZSBmcm9tIGEgbGlzdCBvZiB2YWx1ZXMsIGJhc2VkIG9uIHNpZGVcbiAqIEBwYXJhbSB7c3RyaW5nfSAkdmFyaWFibGU6IHZhcmlhYmxlIHdpdGggYSBsaXN0IG9mIHZhbHVlcyAobGlrZSBwYWRkaW5ncywgbWFyZ2lucyBldGMuKTtcbiAqIEBwYXJhbSB7c3RyaW5nfSAkc2lkZTogc2lkZSAodXAgLyByaWdodCAvIGRvd24gLyBsZWZ0KSBmb3Igd2hpY2ggd2Ugd2FudCB0byBnZXQgdmFsdWVcbiAqIEV4YW1wbGU6XG4gKiAkY29tcG9uZW50X3BhZGRpbmc6IDFyZW0gMnJlbSAzcmVtO1xuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdyaWdodCcpIC8vIDJyZW1cbiAqIGdldC12YWx1ZS1mcm9tLWxpc3QoJGNvbXBvbmVudF9wYWRkaW5nLCAnYm90dG9tJykgLy8gM3JlbVxuICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIFJhZGlvIGFuZCBjaGVja2JveCBzdHlsaW5nICovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLmNzLXJldmlld3Mge1xuICBmbGV4OiAxIDEgMDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5jcy1yZXZpZXdzIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZGNkY2RjOyB9IH1cbiAgLmNzLXJldmlld3NfX3RpdGxlIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX190aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDA7IH0gfVxuICAuY3MtcmV2aWV3c19fbGlzdCB7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDsgfVxuICAuY3MtcmV2aWV3c19fbGFiZWwge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGxpbmUtaGVpZ2h0OiA0cmVtOyB9XG4gIC5jcy1yZXZpZXdzX19pdGVtIHtcbiAgICBwYWRkaW5nOiAwIDAgMi41cmVtO1xuICAgIG1hcmdpbjogMCAwIDIuNXJlbTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgICBsaXN0LXN0eWxlOiBub25lOyB9XG4gICAgLmNzLXJldmlld3NfX2l0ZW06bGFzdC1vZi10eXBlIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIC5jcy1yZXZpZXdzX19mb3JtIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgbWFyZ2luOiAyLjVyZW0gMDsgfVxuICAgIEBtZWRpYSAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgICAgIHBhZGRpbmc6IDNyZW07IH0gfVxuICAgIC5jcy1yZXZpZXdzX19mb3JtIC5zd2F0Y2gtb3B0IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgICB3aWR0aDogMTAwJTsgfVxuICAgICAgLmNzLXJldmlld3NfX2Zvcm0gLnN3YXRjaC1vcHQgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydCAhaW1wb3J0YW50OyB9XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGNvbG9yOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMC41cmVtOyB9XG4gICAgICAgIC5jcy1yZXZpZXdzX19mb3JtIC5zd2F0Y2gtb3B0IC5zd2F0Y2gtYXR0cmlidXRlLWxhYmVsOmFmdGVyIHtcbiAgICAgICAgICBjb250ZW50OiAnIConOyB9XG4gICAgICAuY3MtcmV2aWV3c19fZm9ybSAuc3dhdGNoLW9wdCAuc3dhdGNoLWF0dHJpYnV0ZS1vcHRpb25zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuICAuY3MtcmV2aWV3c19faGVhZGxpbmUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCAwIDEuNGVtO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZm9udC1zaXplOiAxLjhyZW07IH1cbiAgLmNzLXJldmlld3NfX3Byb2R1Y3QtbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDIwMDsgfVxuICAuY3MtcmV2aWV3c19fcmF0aW5nLWl0ZW06bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgbWFyZ2luLXRvcDogMWVtOyB9XG4gIC5jcy1yZXZpZXdzX19vcHRpb25zIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19vcHRpb25zIHtcbiAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogM3JlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gIC5jcy1yZXZpZXdzX19yYXRpbmdzIHtcbiAgICB3aWR0aDogMTAwJTsgfVxuICAgIC5jcy1yZXZpZXdzX19yYXRpbmdzOmhhcyguY3Mtc3Rhci1yYXRpbmdfX2Zvcm0tc3Rhci0tYWN0aXZlKSAubWFnZS1lcnJvciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5jcy1yZXZpZXdzX19maWVsZHNldCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19maWVsZHNldCB7XG4gICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgIHBhZGRpbmctbGVmdDogM3JlbTsgfSB9XG4gIC5jcy1yZXZpZXdzX19zdWJtaXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19zdWJtaXQge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfSB9XG4gIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAxLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjVzLCBib3JkZXItY29sb3IgMC41cywgZmlsbCAwLjVzLCBjb2xvciAwLjVzO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgei1pbmRleDogNTsgfVxuICAgIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbiwgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246dmlzaXRlZCB7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICBib3JkZXItcmFkaXVzOiAyMDBweDtcbiAgICAgIG91dGxpbmUtb2Zmc2V0OiAxcHg7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICBjb2xvcjogI2ZmZjtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICM3ZTU3YzI7IH1cbiAgICAgIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uICosIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pLCAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSksIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgLmNzLXJldmlld3NfX3N1Ym1pdC1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSAqLCAuY3MtcmV2aWV3c19fc3VibWl0LWJ1dHRvbjphY3RpdmU6bm90KFtkaXNhYmxlZF0pICoge1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAgIC5jcy1yZXZpZXdzX19zdWJtaXQtYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAuY3MtcmV2aWV3c19fcmF0aW5nLWNvbnRyb2wge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xuICAgIHBhZGRpbmc6IDAuNzVlbSAxZW07XG4gICAgaGVpZ2h0OiAxLjI3NWVtO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjsgfVxuICAgIC5jcy1yZXZpZXdzX19yYXRpbmctY29udHJvbCBpbnB1dFt0eXBlPSdyYWRpbyddLFxuICAgIC5jcy1yZXZpZXdzX19yYXRpbmctY29udHJvbCAuY3MtcmV2aWV3c19fcmF0ZS1zdGFycyBzcGFuIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICBoZWlnaHQ6IDFweDtcbiAgICAgIG1hcmdpbjogLTFweDtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBwYWRkaW5nOiAwO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDFweDtcbiAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAvKiAxICovIH1cbiAgLmNzLXJldmlld3NfX3JhdGUtc3RhcnMge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3JkZXI6IDA7IH1cbiAgLmNzLXJldmlld3NfX3JhdGUtZmVlZGJhY2sge1xuICAgIG9yZGVyOiAxO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIGxpbmUtaGVpZ2h0OiAwLjllbTtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1yZXZpZXdzX19yZXZpZXctZmllbGQge1xuICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICAgIHJlc2l6ZTogdmVydGljYWw7IH1cbiAgLmNzLXJldmlld3MgLmNzLXBhZ2luYXRpb25fX2NvbnRlbnQge1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMi41cmVtIDA7IH1cbiAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSB7XG4gICAgcGFkZGluZy1ib3R0b206IDNyZW07IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fY29udGVudCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG4gICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjI3NWVtO1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB6LWluZGV4OiA1O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgbWFyZ2luOiAycmVtIDAgMC41cmVtO1xuICAgICAgcGFkZGluZy1yaWdodDogNHJlbTtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBtYXJnaW46IDA7IH1cbiAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbiwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOnZpc2l0ZWQge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzdlNTdjMjsgfVxuICAgICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24gKiwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBjb2xvcjogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRkMmM5MTsgfVxuICAgICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgICAgZmlsbDogI2ZmZjsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNjU7XG4gICAgICAgIGN1cnNvcjogYXV0bzsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmJlZm9yZSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgbGVmdDogYXV0bztcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgICAgIGJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOmJlZm9yZSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmJlZm9yZSwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uW2FyaWEtZXhwYW5kZWQ9XCJ0cnVlXCJdOmFmdGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzg4ODsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbiAgICAgICAgcmlnaHQ6IGNhbGMoIDEuNXJlbSArIDEuMnJlbSAtIDAuNHJlbSk7IH1cbiAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbjphZnRlciB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgICAgIHJpZ2h0OiAxLjZyZW07IH1cbiAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbjpob3ZlcjphZnRlciwgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uOmhvdmVyOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24gc3BhbiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIC5jb3VudCB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTsgfVxuICAgICAgICAuY3MtcmV2aWV3cy0tbG9hZC1tb3JlIC5jcy1yZXZpZXdzX19idXR0b24gLmNvdW50OmJlZm9yZSB7XG4gICAgICAgICAgY29udGVudDogJygnOyB9XG4gICAgICAgIC5jcy1yZXZpZXdzLS1sb2FkLW1vcmUgLmNzLXJldmlld3NfX2J1dHRvbiAuY291bnQ6YWZ0ZXIge1xuICAgICAgICAgIGNvbnRlbnQ6ICcpJzsgfVxuICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIC5sb2FkaW5nLW1hc2sge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9zcGlubmVyLnN2Z1wiKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDIuNXJlbSAyLjVyZW07IH1cbiAgICAgICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fYnV0dG9uIC5sb2FkaW5nLW1hc2sgaW1nIHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLmNzLXJldmlld3MtLWxvYWQtbW9yZSAuY3MtcmV2aWV3c19fY291bnQge1xuICAgICAgY29sb3I6ICM2OTY5Njk7IH1cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2J1dHRvbi9taXhpbic7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvcHNldWRvaWNvbi9taXhpbic7XG5cbiRyZXZpZXdzLWJvcmRlcjogMXB4IHNvbGlkICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHJldmlld3Mtc3BhY2luZzogMi41cmVtICFkZWZhdWx0O1xuXG4vLyBSZXZpZXdzIGZvcm0gc3R5bGluZ1xuJHJldmlld3NfZm9ybS1wYWRkaW5nLWRlc2t0b3A6IDNyZW0gIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLWRlc2t0b3A6IHRydWUgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLXNwYWNpbmc6ICRyZXZpZXdzX2Zvcm0tcGFkZGluZy1kZXNrdG9wICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1iYWNrZ3JvdW5kLWRlc2t0b3A6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcblxuJHJldmlld3NfZm9ybS1idXR0b24tYWxpZ246IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWJ1dHRvbi1hbGlnbi1kZXNrdG9wOiBjZW50ZXIgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWhlYWRsaW5lLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZV9oZWFkbGluZS0zICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ6IDIwMCAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtcGFkZGluZzogJGZpZWxkX2lucHV0LXBhZGRpbmcgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWNvbnRlbnQtaGVpZ2h0OiAkZmllbGRfaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWJvcmRlcjogJGZpZWxkX2lucHV0LWJvcmRlciAhZGVmYXVsdDtcbiRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLWZlZGJhY2stdGV4dC1jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuJHJldmlld3NfZm9ybS1mZWRiYWNrLWZvbnQtc2l6ZTogMC44NWVtICFkZWZhdWx0O1xuXG4kcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24tdHlwZTogJGJ1dHRvbl9kZWZhdWx0LXR5cGUgIWRlZmF1bHQ7XG4kcmV2aWV3c19mb3JtLXN1Ym1pdC1idXR0b24taWNvbi1wb3M6ICduby1pY29uJyAhZGVmYXVsdDtcblxuJHJldmlld3NfbG9hZC1tb3JlLXNjZW5hcmlvLWVuYWJsZWQ6IHRydWUgIWRlZmF1bHQ7XG4kcmV2aWV3c19sb2FkLW1vcmUtYnV0dG9uLXR5cGU6ICRidXR0b25fZGVmYXVsdC10eXBlICFkZWZhdWx0O1xuJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvczogJ25vLWljb24nICFkZWZhdWx0O1xuJHJldmlld3NfbG9hZC1tb3JlLXBzZXVkb2ljb24tZW5hYmxlZDogdHJ1ZSAhZGVmYXVsdDtcbiRyZXZpZXdzX2NvdW50LWNvbG9yOiAkY29sb3JfdGV4dC01MDAgIWRlZmF1bHQ7XG5cbi4jeyRuc31yZXZpZXdzIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGZsZXg6IDEgMSAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLWJvcmRlcjtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9nYWxsZXJ5O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBsaW5lLWhlaWdodDogNHJlbTtcbiAgICB9XG5cbiAgICAmX19pdGVtIHtcbiAgICAgICAgcGFkZGluZzogMCAwICRyZXZpZXdzLXNwYWNpbmc7XG4gICAgICAgIG1hcmdpbjogMCAwICRyZXZpZXdzLXNwYWNpbmc7XG4gICAgICAgIGJvcmRlci1ib3R0b206ICRyZXZpZXdzLWJvcmRlcjtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Zvcm0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICAgICAgbWFyZ2luOiAkcmV2aWV3cy1zcGFjaW5nIDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJHJldmlld3NfZm9ybS1iYWNrZ3JvdW5kLWRlc2t0b3A7XG4gICAgICAgICAgICBwYWRkaW5nOiAkcmV2aWV3c19mb3JtLXBhZGRpbmctZGVza3RvcDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN0eWxlcyBvZiB2YXJpbmFudCBzZWxlY3QgZm9yIHJldmlldyAoZGlzcGxheWVkIGlmIGVuYWJsZWQgaW4gY29uZmlndXJhdGlvbilcbiAgICAgICAgLnN3YXRjaC1vcHQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMS41ZW07XG4gICAgICAgICAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUge1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnN3YXRjaC1hdHRyaWJ1dGUtbGFiZWwge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZpZWxkLWxhYmVsKCk7XG5cbiAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyAqJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5zd2F0Y2gtYXR0cmlidXRlLW9wdGlvbnMge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19oZWFkbGluZSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW46IDAgMCAxLjRlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgZm9udC1zaXplOiAkcmV2aWV3c19mb3JtLWhlYWRsaW5lLWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19wcm9kdWN0LW5hbWUge1xuICAgICAgICBmb250LXdlaWdodDogJHJldmlld3NfZm9ybS1wcm9kdWN0LW5hbWUtZm9udC13ZWlnaHQ7XG4gICAgfVxuXG4gICAgJl9fcmF0aW5nLWl0ZW06bm90KDpmaXJzdC1vZi10eXBlKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICB9XG5cbiAgICAmX19vcHRpb25zIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICBmb250LXNpemU6ICRmaWVsZF9mb250LXNpemU7XG5cbiAgICAgICAgQGlmICgkcmV2aWV3c19mb3JtLXR3by1jb2x1bW5zLWRlc2t0b3ApIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtc3BhY2luZztcbiAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICRyZXZpZXdzLWJvcmRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGluZ3Mge1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmhhcyguI3skbnN9c3Rhci1yYXRpbmdfX2Zvcm0tc3Rhci0tYWN0aXZlKSB7XG4gICAgICAgICAgICAubWFnZS1lcnJvciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2ZpZWxkc2V0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEuNWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIEBpZiAoJHJldmlld3NfZm9ybS10d28tY29sdW1ucy1kZXNrdG9wKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6ICRyZXZpZXdzX2Zvcm0tdHdvLWNvbHVtbnMtc3BhY2luZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Ym1pdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6ICRyZXZpZXdzX2Zvcm0tYnV0dG9uLWFsaWduO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHJldmlld3NfZm9ybS1idXR0b24tYWxpZ24tZGVza3RvcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Ym1pdC1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHJldmlld3NfZm9ybS1zdWJtaXQtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICRyZXZpZXdzX2Zvcm0tc3VibWl0LWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICApO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8PXBob25lTGcnKSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3JhdGluZy1jb250cm9sIHtcbiAgICAgICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgICAgIGJvcmRlcjogJHJldmlld3NfZm9ybS1yYXRpbmctY29udHJvbC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgIHBhZGRpbmc6ICRyZXZpZXdzX2Zvcm0tcmF0aW5nLWNvbnRyb2wtcGFkZGluZztcbiAgICAgICAgaGVpZ2h0OiAkcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWNvbnRlbnQtaGVpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmV2aWV3c19mb3JtLXJhdGluZy1jb250cm9sLWJhY2tncm91bmQ7XG4gICAgICAgIG1hcmdpbjogMCAwIDAuMmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIGlucHV0W3R5cGU9J3JhZGlvJ10sXG4gICAgICAgICN7JHJvb3R9X19yYXRlLXN0YXJzIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19yYXRlLXN0YXJzIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgb3JkZXI6IDA7XG4gICAgfVxuXG4gICAgJl9fcmF0ZS1mZWVkYmFjayB7XG4gICAgICAgIG9yZGVyOiAxO1xuICAgICAgICBmb250LXNpemU6ICRyZXZpZXdzX2Zvcm0tZmVkYmFjay1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAwLjllbTtcbiAgICAgICAgY29sb3I6ICRyZXZpZXdzX2Zvcm0tZmVkYmFjay10ZXh0LWNvbG9yO1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIH1cblxuICAgICZfX3Jldmlldy1maWVsZCB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDEwcmVtO1xuICAgICAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIH1cblxuICAgIC4jeyRuc31wYWdpbmF0aW9uX19jb250ZW50IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbjogJHJldmlld3Mtc3BhY2luZyAwO1xuICAgIH1cblxuICAgIEBpZiAoJHJldmlld3NfbG9hZC1tb3JlLXNjZW5hcmlvLWVuYWJsZWQpIHtcbiAgICAgICAgJi0tbG9hZC1tb3JlIHtcbiAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAzcmVtO1xuXG4gICAgICAgICAgICAjeyRyb290fV9fY29udGVudCB7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fYnV0dG9uIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAgICAgICAgICR0eXBlOiAkcmV2aWV3c19sb2FkLW1vcmUtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBAaWYgKCRyZXZpZXdzX2xvYWQtbW9yZS1wc2V1ZG9pY29uLWVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgcHNldWRvaWNvbihcbiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlOiAnYXJyb3cnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGNvbG9yOiAkYnV0dG9uX3ByaW1hcnktZmlsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICR3aWR0aDogMXJlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRoZWlnaHQ6IDFweCxcbiAgICAgICAgICAgICAgICAgICAgICAgICRhcnJvdy1kZWZhdWx0OiAnZG93bicsXG4gICAgICAgICAgICAgICAgICAgICAgICAkcG9zaXRpb24tc2lkZS1vZmZzZXQ6IDEuNnJlbVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMnJlbSAwIDAuNXJlbTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogNHJlbTtcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICAgICAgJjphZnRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJGJ1dHRvbl9wcmltYXJ5LS1ob3Zlci1maWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1zcGFuKFxuICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGU6ICRyZXZpZXdzX2xvYWQtbW9yZS1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRpY29uX3BvczogJHJldmlld3NfbG9hZC1tb3JlLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5jb3VudCB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNXJlbTtcblxuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiAnKCc7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcpJztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5sb2FkaW5nLW1hc2sge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vaW1hZ2VzL3NwaW5uZXIuc3ZnJyk7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiAyLjVyZW0gMi41cmVtO1xuXG4gICAgICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAjeyRyb290fV9fY291bnQge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkcmV2aWV3c19jb3VudC1jb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLmNzLXN0YWNrLW5hdl9fdHJpZ2dlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMXJlbSAxLjVyZW07XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZm9udC1zaXplOiAxLjZyZW07XG4gIGZvbnQtd2VpZ2h0OiA3MDA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3Mtc3RhY2stbmF2X190cmlnZ2VyIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7IH0gfVxuICAuY3Mtc3RhY2stbmF2X190cmlnZ2VyLWljb24ge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjVyZW07XG4gICAgd2lkdGg6IDZweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgZmlsbDogIzg4ODtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7IH1cbiAgLmNzLXN0YWNrLW5hdl9fdHJpZ2dlclthcmlhLWV4cGFuZGVkPSd0cnVlJ10gLmNzLXN0YWNrLW5hdl9fdHJpZ2dlci1pY29uIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOyB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gIC5jcy1zdGFjay1uYXZfX2NvbnRlbnQge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMGYwZjA7IH0gfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3Mtc3RhY2stbmF2X19jb250ZW50IHtcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIHBhZGRpbmc6IDJyZW0gMDsgfSB9XG5cbi5jcy1zdGFjay1uYXZfX2xpc3Qge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cbiAgLmNzLXN0YWNrLW5hdl9fbGlzdCA+IHN2ZyxcbiAgLmNzLXN0YWNrLW5hdl9fbGlzdCA+IGltZyB7XG4gICAgZGlzcGxheTogbm9uZTsgfVxuXG4uY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSB7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBhLFxuLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkgc3Ryb25nIHtcbiAgZm9udC1zaXplOiAxLjRyZW07XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiAjNjk2OTY5O1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAwLjFyZW07XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkgYSxcbiAgICAuY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBzdHJvbmcge1xuICAgICAgcGFkZGluZzogMC41cmVtIDEuOHJlbSAwLjVyZW0gMi41cmVtOyB9IH1cbiAgLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkgYSBzdmcsXG4gIC5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpIGEgaW1nLFxuICAuY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBzdHJvbmcgc3ZnLFxuICAuY3Mtc3RhY2stbmF2X19uYXYgLmNzLXN0YWNrLW5hdl9fbGlzdCBsaSBzdHJvbmcgaW1nIHtcbiAgICB3aWR0aDogMnJlbTtcbiAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICBtYXJnaW4tbGVmdDogMC4zcmVtO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwLjFyZW0pOyB9XG5cbi5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpIGE6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGNkY2RjO1xuICBjb2xvcjogIzQ1NWE2NDsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpIGE6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDsgfSB9XG5cbi5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpLmN1cnJlbnQgc3Ryb25nIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgY29sb3I6ICM0NTVhNjQ7IH1cbiAgLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkuY3VycmVudCBzdHJvbmc6aG92ZXIge1xuICAgIGNvbG9yOiAjNDU1YTY0OyB9XG4gIC5jcy1zdGFjay1uYXZfX25hdiAuY3Mtc3RhY2stbmF2X19saXN0IGxpLmN1cnJlbnQgc3Ryb25nOmJlZm9yZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAwLjVyZW07XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICMxMWEwOTk7IH1cblxuLmNzLXN0YWNrLW5hdl9fbmF2IC5pdGVtIC5kZWxpbWl0ZXIge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgI2RjZGNkYztcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbjogMXJlbSAxLjhyZW07IH1cblxuLmNzLXN0YWNrLW5hdl9fbmF2IC5jcy1zdGFjay1uYXZfX2xpc3QgbGkuY3VycmVudCBhIHtcbiAgcGFkZGluZzogMDtcbiAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAuY3Mtc3RhY2stbmF2X19uYXYge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfSB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICd1dGlscy9yZXNldC1saXN0LXN0eWxlJztcblxuJHN0YWNrLW5hdl9ib3gtc2hhZG93OiAkYm94LXNoYWRvd19iYXNlICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9ib3gtYm9yZGVyLXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZSAhZGVmYXVsdDtcblxuJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X21vYmlsZS10cmlnZ2VyLWZvbnQtc2l6ZTogMS42cmVtICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9tb2JpbGUtY29udGVudC1iYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5cbiRzdGFjay1uYXZfaXRlbS1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiRzdGFjay1uYXZfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtNTAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2l0ZW0tY3VycmVudC1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2l0ZW0tY3VycmVudC1mb250LXdlaWdodDogNzAwICFkZWZhdWx0O1xuJHN0YWNrLW5hdl9pdGVtLWhvdmVyLWJhY2tncm91bmQ6ICRjb2xvcl9iYWNrZ3JvdW5kLTUwMCAhZGVmYXVsdDtcbiRzdGFjay1uYXZfaXRlbS1tb2JpbGUtaG92ZXItYmFja2dyb3VuZDogJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiRzdGFjay1uYXZfY3VycmVudC1pbmRpY2F0b3ItYmFja2dyb3VuZDogJGNvbG9yX3NlY29uZGFyeS01MDAgIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2N1cnJlbnQtaW5kaWNhdG9yLXdpZHRoOiAwLjVyZW0gIWRlZmF1bHQ7XG4kc3RhY2stbmF2X2luZGljYXRvci1lbmFibGVkOiB0cnVlICFkZWZhdWx0O1xuXG4kc3RhY2stbmF2X2RlbGltaXRlci1ib3JkZXI6IDFweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiRzdGFjay1uYXZfZGVsaW1pdGVyLWRpc2FibGVkOiBmYWxzZSAhZGVmYXVsdDtcblxuLiN7JG5zfXN0YWNrLW5hdiB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICAmX190cmlnZ2VyIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxcmVtIDEuNXJlbTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1iYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZvbnQtc2l6ZTogJHN0YWNrLW5hdl9tb2JpbGUtdHJpZ2dlci1mb250LXNpemU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaWNvbiB7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogMS41cmVtO1xuICAgICAgICAgICAgd2lkdGg6IDZweDtcbiAgICAgICAgICAgIGhlaWdodDogMTBweDtcbiAgICAgICAgICAgIGZpbGw6ICM4ODg7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1leHBhbmRlZD0ndHJ1ZSddICN7JHJvb3R9X190cmlnZ2VyLWljb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTkwZGVnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGFjay1uYXZfbW9iaWxlLWNvbnRlbnQtYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRzdGFjay1uYXZfYm94LWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3Jfd2hpdGU7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAkc3RhY2stbmF2X2JveC1zaGFkb3c7XG4gICAgICAgICAgICBwYWRkaW5nOiAycmVtIDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgID4gc3ZnLFxuICAgICAgICA+IGltZyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fbmF2IHtcbiAgICAgICAgI3skcm9vdH1fX2xpc3QgbGkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBhLFxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBzdHJvbmcge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkc3RhY2stbmF2X2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6ICRzdGFjay1uYXZfaXRlbS1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RhY2stbmF2X2l0ZW0tY29sb3I7XG4gICAgICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNzVyZW0gMS41cmVtO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjFyZW07XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC41cmVtIDEuOHJlbSAwLjVyZW0gMi41cmVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzdmcsXG4gICAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMS40cmVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwLjNyZW07XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDAuMXJlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAjeyRyb290fV9fbGlzdCBsaSBhOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRzdGFjay1uYXZfaXRlbS1tb2JpbGUtaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RhY2stbmF2X2l0ZW0taG92ZXItY29sb3I7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkc3RhY2stbmF2X2l0ZW0taG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19saXN0IGxpLmN1cnJlbnQgc3Ryb25nIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiAkc3RhY2stbmF2X2l0ZW0tY3VycmVudC1mb250LXdlaWdodDtcbiAgICAgICAgICAgIGNvbG9yOiAkc3RhY2stbmF2X2l0ZW0tY3VycmVudC1jb2xvcjtcblxuICAgICAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRzdGFjay1uYXZfaXRlbS1jdXJyZW50LWNvbG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgJHN0YWNrLW5hdl9pbmRpY2F0b3ItZW5hYmxlZCB7XG4gICAgICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJHN0YWNrLW5hdl9jdXJyZW50LWluZGljYXRvci13aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkc3RhY2stbmF2X2N1cnJlbnQtaW5kaWNhdG9yLWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLml0ZW0gLmRlbGltaXRlciB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAkc3RhY2stbmF2X2RlbGltaXRlci1ib3JkZXI7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG1hcmdpbjogMXJlbSAxLjhyZW07XG5cbiAgICAgICAgICAgIEBpZiAkc3RhY2stbmF2X2RlbGltaXRlci1kaXNhYmxlZCB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlc2V0IHN0eWxlIGZvciBsaW5rIGlmIGl0IGlzIGEgY2hpbGQgb2YgY3VycmVudCBpdGVtXG4gICAgICAgICN7JHJvb3R9X19saXN0IGxpLmN1cnJlbnQgYSB7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLmNzLXN0aWNreS1ibG9jayB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3Mtc3RpY2t5LWJsb2NrIHtcbiAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICB6LWluZGV4OiAxMDtcbiAgICAgIHRvcDogMWVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3Mtc3RpY2t5LWJsb2NrLS1wZHAge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogMztcbiAgICAgIG1hcmdpbi1yaWdodDogY2FsYygxNXB4IC0gMC41cmVtKTsgfVxuICAgICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgLmNzLXN0aWNreS1ibG9jay0tcGRwIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3Mtc3RpY2t5LWJsb2NrLS1wZHAge1xuICAgICAgdG9wOiAzcmVtO1xuICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4OyB9XG4gICAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAuY3Mtc3RpY2t5LWJsb2NrLS1wZHAge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjMwcHgpIHtcbiAgICAuY3Mtc3RpY2t5LWJsb2NrLS1wZHAge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAuY3Mtc3RpY2t5LWJsb2NrLS1uby1tb2JpbGUge1xuICAgICAgcG9zaXRpb246IHN0aWNreTtcbiAgICAgIHRvcDogOC41cmVtOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3Mtc3RpY2t5LWJsb2NrLS1uby1tb2JpbGUge1xuICAgICAgdG9wOiAxLjVyZW07IH0gfVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3ktYmxvY2svbWl4aW4nO1xuXG4uI3skbnN9c3RpY2t5LWJsb2NrIHtcbiAgICBAaW5jbHVkZSBzdGlja3lCbG9jaztcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgJi0tcGRwIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgei1pbmRleDogMztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogY2FsYygxNXB4IC0gMC41cmVtKTtcblxuICAgICAgICAgICAgLnBhZ2UtcHJvZHVjdC1idW5kbGUgJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgdG9wOiAzcmVtO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuXG4gICAgICAgICAgICAucGFnZS1wcm9kdWN0LWJ1bmRsZSAmIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjMwcHgpIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtLW5vLW1vYmlsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgICAgICB0b3A6IDguNXJlbTtcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgICAgICB0b3A6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBtaXhpbiBzdGlja3lCbG9jaygpIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgnPj1sYXB0b3AnKSB7XG4gICAgICAgIHBvc2l0aW9uOiBzdGlja3k7XG4gICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB0b3A6IDFlbTtcbiAgICB9XG59XG4iLCIvKiogU3R5bGVzIGZvcm0gX3RhYmxlcy5sZXNzIG9mIHRoZW1lIGJsYW5rIGFyZSBtb3ZlZCBoZXJlLlxuICAgKiBGb3Igc29tZSB0YWJsZXMgdGhlcmUgaXMgbW9iaWxlIGxheW91dCBhcHBsaWVkIGFsc28gZm9yIHRhYmxldCByZXNvbHV0aW9uc1xuICAgKiBWYXJpYWJsZXMgZm9yIHR5cG9ncmFweSwgY29sb3JzLCBib3JkZXIgZXRjLiBhcmUgYWRkZWRcbiovXG5cbkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Zpc3VhbGx5LWhpZGRlbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3R5cG9ncmFwaHkvbWl4aW4nO1xuQGltcG9ydCAnY29tcG9uZW50cy90YWJsZS9taXhpbic7XG5cbiR0YWJsZV9iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiR0YWJsZV9ib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbiR0YWJsZV9yb3ctYm9yZGVyOiBub25lICFkZWZhdWx0O1xuJHRhYmxlX2NvbHVtbi1ib3JkZXI6IG5vbmUgIWRlZmF1bHQ7XG4kdGFibGVfZXZlbi1yb3ctYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWRlZmF1bHQ7XG5cbiR0YWJsZV9oZWFkLWJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkY29sb3JfYm9yZGVyLTUwMCAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkLWNvbG9yOiAkY29sb3JfdGV4dC04MDAgIWRlZmF1bHQ7XG4kdGFibGVfaGVhZC1mb250LXNpemU6IDEuNHJlbSAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkLXRleHQtdHJhbnNmb3JtOiBub25lICFkZWZhdWx0O1xuJHRhYmxlX2hlYWRfZm9udC1zaXplLS1tb2JpbGU6IDEuNHJlbSAhZGVmYXVsdDtcbiR0YWJsZV9oZWFkX21vdmUtb24tbW9iaWxlOiB0cnVlICFkZWZhdWx0O1xuXG4kdGFibGVfaXRlbS1jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHRhYmxlX2l0ZW0tZm9udC1zaXplOiAkZm9udC1zaXplX3BhcmFncmFwaCAhZGVmYXVsdDtcbiR0YWJsZV9pdGVtLWZvbnQtd2VpZ2h0OiAzMDAgIWRlZmF1bHQ7XG4kdGFibGVfaXRlbS1saW5lLWhlaWdodDogaW5oZXJpdDtcbiR0YWJsZV9pdGVtLXBhZGRpbmc6IDAuOHJlbSAxcmVtICFkZWZhdWx0O1xuJHRhYmxlX2FjdGlvbnMtbGlua3Mtc2VwYXJhdG9yOiAycHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cblxuLnRhYmxlLXdyYXBwZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDJyZW07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPHRhYmxldCcpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAmLmNhcnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgICAgICAudGFibGUtd3JhcHBlci5jYXJ0ICYge1xuICAgICAgICAgICAgICAgIGJvcmRlci10b3A6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmdyb3VwZWQge1xuICAgICAgICB0Ym9keTpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4udGFibGUge1xuICAgIGJvcmRlci1ib3R0b206ICR0YWJsZV9ib3JkZXItYm90dG9tO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiAkdGFibGVfYmFja2dyb3VuZDtcblxuICAgICYgPiBjYXB0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgfVxuXG4gICAgJjpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuXG4gICAgICAgIHRkIHtcbiAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0YWJsZV9pdGVtLXBhZGRpbmc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfaGVhZC1ib3JkZXItYm90dG9tO1xuXG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAkdGFibGVfaGVhZC1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgdGV4dC10cmFuc2Zvcm06ICR0YWJsZV9oZWFkLXRleHQtdHJhbnNmb3JtO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGVfaGVhZC1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkge1xuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICAgICAgICAgIGNvbG9yOiAkdGFibGVfaXRlbS1jb2xvcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJHRhYmxlX2l0ZW0tZm9udC13ZWlnaHQ7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogJHRhYmxlX3Jvdy1ib3JkZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6ICR0YWJsZV9jb2x1bW4tYm9yZGVyO1xuXG4gICAgICAgICAgICAgICAgJi5hY3Rpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tOiAkdGFibGVfcm93LWJvcmRlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGEgKyBhOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAkdGFibGVfaXRlbS1mb250LXNpemU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmlnaHQ6ICR0YWJsZV9hY3Rpb25zLWxpbmtzLXNlcGFyYXRvcjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRib3JkZXItcmFkaXVzX2Jhc2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkYm9yZGVyLXJhZGl1c19iYXNlO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJvcmRlci1yYWRpdXNfYmFzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgICAgICAuYWNjb3VudCAmIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHIge1xuICAgICAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJHRhYmxlX2V2ZW4tcm93LWJhY2tncm91bmQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGZvb3Qge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkdGFibGVfaXRlbS1mb250LXNpemU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRjb2xvcl9nYWxsZXJ5O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAubWFyayB7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8dGFibGV0Jykge1xuICAgICAgICAgICAgICAgIC5hbW91bnQge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgICAucHJpY2UtaW5jbHVkaW5nLXRheCxcbiAgICAuaXRlbXMtcXR5LFxuICAgIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHRhYmxlX2l0ZW0tZm9udC1zaXplO1xuICAgICAgICBsaW5lLWhlaWdodDogJHRhYmxlX2l0ZW0tbGluZS1oZWlnaHQ7XG4gICAgfVxufVxuXG4vLyAgTW9iaWxlIGxheW91dFxuQGluY2x1ZGUgbWVkaWEoJzx0YWJsZXQnKSB7XG4gICAgLnRhYmxlLXdyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQoKTtcblxuICAgICAgICAudGFibGUge1xuICAgICAgICAgICAgJjpub3QoLmNvbXBhcmlzb24pIHtcbiAgICAgICAgICAgICAgICAmOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSB0YWJsZS1tb2JpbGUtbGF5b3V0KFxuICAgICAgICAgICAgICAgICAgICAgICAgJGhlYWRfY29sb3I6ICR0YWJsZV9oZWFkLWNvbG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGhlYWRfbW92ZS1vbi1tb2JpbGU6ICR0YWJsZV9oZWFkX21vdmUtb24tbW9iaWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJGhlYWRfZm9udC1zaXplLS1tb2JpbGU6ICR0YWJsZV9oZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgQGlmICgkdGFibGVfaGVhZF9tb3ZlLW9uLW1vYmlsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJi5hZGRpdGlvbmFsLWF0dHJpYnV0ZXMge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRib2R5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRkIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMCAwLjVyZW07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3Qge1xuICAgICAgICB0aGVhZCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgdGJvZHkgdGgge1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICAgIH1cblxuICAgICAgICB0Ym9keSB0aCxcbiAgICAgICAgdGJvZHkgdGQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBTb21lIHRhYmxlcyBkaXNwbGF5IG1vYmlsZSBsYXlvdXQgYWxzbyBvbiB0YWJsZXQgcmVzb2x1dGlvblxuLnRhYmxlLXdyYXBwZXIuY2FydCxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIHtcbiAgICBAaW5jbHVkZSB0YWJsZS13cmFwcGVyLW1vYmlsZS1sYXlvdXQoKTtcblxuICAgIC50YWJsZSB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgQGluY2x1ZGUgdGFibGUtbW9iaWxlLWxheW91dCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKiogU3R5bGVzIGZvcm0gX3RhYmxlcy5sZXNzIG9mIHRoZW1lIGJsYW5rIGFyZSBtb3ZlZCBoZXJlLlxuICAgKiBGb3Igc29tZSB0YWJsZXMgdGhlcmUgaXMgbW9iaWxlIGxheW91dCBhcHBsaWVkIGFsc28gZm9yIHRhYmxldCByZXNvbHV0aW9uc1xuICAgKiBWYXJpYWJsZXMgZm9yIHR5cG9ncmFweSwgY29sb3JzLCBib3JkZXIgZXRjLiBhcmUgYWRkZWRcbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBIaWRlIG9ubHkgdmlzdWFsbHksIGJ1dCBoYXZlIGl0IGF2YWlsYWJsZSBmb3Igc2NyZWVuIHJlYWRlcnM6XG4gKiBodHRwczovL3Nub29rLmNhL2FyY2hpdmVzL2h0bWxfYW5kX2Nzcy9oaWRpbmctY29udGVudC1mb3ItYWNjZXNzaWJpbGl0eVxuICpcbiAqIDEuIEZvciBsb25nIGNvbnRlbnQsIGxpbmUgZmVlZHMgYXJlIG5vdCBpbnRlcnByZXRlZCBhcyBzcGFjZXMgYW5kIHNtYWxsIHdpZHRoXG4gKiAgICBjYXVzZXMgY29udGVudCB0byB3cmFwIDEgd29yZCBwZXIgbGluZTpcbiAqICAgIGh0dHBzOi8vbWVkaXVtLmNvbS9AamVzc2ViZWFjaC9iZXdhcmUtc211c2hlZC1vZmYtc2NyZWVuLWFjY2Vzc2libGUtdGV4dC01OTUyYTRjMmNiZmVcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2Jsb2IvbWFzdGVyL3NyYy9jc3MvbWFpbi5jc3MjTDEzMFxuICovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqKlxuICogSGlkZSBvbmx5IHZpc3VhbGx5LCBidXQgaGF2ZSBpdCBhdmFpbGFibGUgZm9yIHNjcmVlbiByZWFkZXJzOlxuICogaHR0cHM6Ly9zbm9vay5jYS9hcmNoaXZlcy9odG1sX2FuZF9jc3MvaGlkaW5nLWNvbnRlbnQtZm9yLWFjY2Vzc2liaWxpdHlcbiAqXG4gKiAxLiBGb3IgbG9uZyBjb250ZW50LCBsaW5lIGZlZWRzIGFyZSBub3QgaW50ZXJwcmV0ZWQgYXMgc3BhY2VzIGFuZCBzbWFsbCB3aWR0aFxuICogICAgY2F1c2VzIGNvbnRlbnQgdG8gd3JhcCAxIHdvcmQgcGVyIGxpbmU6XG4gKiAgICBodHRwczovL21lZGl1bS5jb20vQGplc3NlYmVhY2gvYmV3YXJlLXNtdXNoZWQtb2ZmLXNjcmVlbi1hY2Nlc3NpYmxlLXRleHQtNTk1MmE0YzJjYmZlXG4gKlxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vaDVicC9odG1sNS1ib2lsZXJwbGF0ZS9ibG9iL21hc3Rlci9zcmMvY3NzL21haW4uY3NzI0wxMzBcbiAqL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkB1c2UgJ3Nhc3M6bWFwJztcbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIG5vLWRlc2NlbmRpbmctc3BlY2lmaWNpdHkgKi9cbi50YWJsZS13cmFwcGVyIHtcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC50YWJsZS13cmFwcGVyIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZS13cmFwcGVyLmNhcnQge1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTsgfSB9XG4gIC50YWJsZS13cmFwcGVyLmdyb3VwZWQgdGJvZHk6bGFzdC1jaGlsZCB0ZCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTsgfVxuXG4udGFibGUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYztcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7IH1cbiAgLnRhYmxlID4gY2FwdGlvbiB7XG4gICAgYm9yZGVyOiAwO1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDFweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIC8qIDEgKi8gfVxuICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB7XG4gICAgYm9yZGVyOiBub25lOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGQge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgcGFkZGluZzogMC44cmVtIDFyZW07IH1cbiAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0aGVhZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2RjZGNkYzsgfVxuICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGhlYWQgdGgge1xuICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsOyB9XG4gICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQge1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7IH1cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRkLmFjdGlvbnMge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7IH0gfVxuICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQuYWN0aW9ucyBhICsgYTpiZWZvcmUge1xuICAgICAgICBtYXJnaW46IDAgMC43cmVtIDAgMC41cmVtO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogMXB4O1xuICAgICAgICBoZWlnaHQ6IDEuNHJlbTtcbiAgICAgICAgYm9yZGVyLXJpZ2h0OiAycHggc29saWQgI2RjZGNkYztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxuICAgICAgLnRhYmxlOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGJvZHkgdGQ6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4O1xuICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA3cHg7IH1cbiAgICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogN3B4O1xuICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogN3B4OyB9XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgIC5hY2NvdW50IC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7IH0gfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRib2R5IHRyOm50aC1jaGlsZChldmVuKSB7XG4gICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsgfVxuICAgIC50YWJsZTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHtcbiAgICAgIGZvbnQtc2l6ZTogMS40cmVtOyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB7XG4gICAgICAgICAgYmFja2dyb3VuZDogI2YwZjBmMDsgfSB9XG4gICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCAubWFyayB7XG4gICAgICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgICAgICAudGFibGU6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCAuYW1vdW50IHtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDsgfSB9XG4gIC50YWJsZSAucHJpY2UtZXhjbHVkaW5nLXRheCxcbiAgLnRhYmxlIC5wcmljZS1pbmNsdWRpbmctdGF4LFxuICAudGFibGUgLml0ZW1zLXF0eSxcbiAgLnRhYmxlIC5wcm9kdWN0LWl0ZW0tbmFtZSB7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgLnRhYmxlLXdyYXBwZXIge1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykge1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4ycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRoZWFkIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTsgfVxuICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDByZW07IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZDpsYXN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWJvdHRvbTogMXJlbTsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Ym9keSB0ZC5hY3Rpb25zOmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgbWFyZ2luOiAtMXB4O1xuICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgIC8qIDEgKi8gfSB9XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0aCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIHdpZHRoOiA3MCU7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0ZCB7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICB3aWR0aDogMzAlOyB9XG4gICAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykgdGZvb3QgdHIge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAgICAgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOm5vdCguY29tcGFyaXNvbik6bm90KC50b3RhbHMpOm5vdCgudGFibGUtdG90YWxzKSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0aCxcbiAgICAgICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkIHtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtOyB9XG4gICAgICAudGFibGUtd3JhcHBlciAudGFibGU6bm90KC5jb21wYXJpc29uKTpub3QoLnRvdGFscyk6bm90KC50YWJsZS10b3RhbHMpLmFkZGl0aW9uYWwtYXR0cmlidXRlcyB0Ym9keSB0aCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyIC50YWJsZTpub3QoLmNvbXBhcmlzb24pOm5vdCgudG90YWxzKTpub3QoLnRhYmxlLXRvdGFscykuYWRkaXRpb25hbC1hdHRyaWJ1dGVzIHRib2R5IHRkOmxhc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAwLjVyZW07IH1cbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRoZWFkIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4gIC5kYXRhLXRhYmxlLWRlZmluaXRpb24tbGlzdCB0Ym9keSB0aCB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7IH1cbiAgLmRhdGEtdGFibGUtZGVmaW5pdGlvbi1saXN0IHRib2R5IHRoLFxuICAuZGF0YS10YWJsZS1kZWZpbml0aW9uLWxpc3QgdGJvZHkgdGQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLnRhYmxlLXdyYXBwZXIuY2FydCxcbi5hY2NvdW50IC50YWJsZS13cmFwcGVyIHtcbiAgb3ZlcmZsb3cteDogYXV0bztcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICB3aWR0aDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSxcbiAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlOmxhc3QtY2hpbGQsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlOmxhc3QtY2hpbGQge1xuICAgICAgcGFkZGluZy1ib3R0b206IDEuMnJlbTsgfVxuICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRoZWFkLFxuICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0aGVhZCB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGJvZHkgdGQsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkIHtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICBwYWRkaW5nOiAwLjJyZW07IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDByZW07IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRib2R5IHRkOmxhc3QtY2hpbGQsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQ6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxcmVtOyB9IH1cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Ym9keSB0ZC5hY3Rpb25zLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRib2R5IHRkLmFjdGlvbnMge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RjZGNkYzsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSBhbmQgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGJvZHkgdGQuYWN0aW9uczpiZWZvcmUsXG4gICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGJvZHkgdGQuYWN0aW9uczpiZWZvcmUge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNsaXA6IHJlY3QoMCAwIDAgMCk7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBtYXJnaW46IC0xcHg7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgd2lkdGg6IDFweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgLyogMSAqLyB9IH1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIGFuZCAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QsXG4gICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrOyB9XG4gICAgICAudGFibGUtd3JhcHBlci5jYXJ0IC50YWJsZSB0Zm9vdCB0aCxcbiAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Zm9vdCB0aCB7XG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIHdpZHRoOiA3MCU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRkLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRkIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdpZHRoOiAzMCU7IH1cbiAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRyLFxuICAgICAgLmFjY291bnQgLnRhYmxlLXdyYXBwZXIgLnRhYmxlIHRmb290IHRyIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7IH1cbiAgICAgICAgLnRhYmxlLXdyYXBwZXIuY2FydCAudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gICAgICAgIC50YWJsZS13cmFwcGVyLmNhcnQgLnRhYmxlIHRmb290IHRyOmZpcnN0LWNoaWxkIHRkLFxuICAgICAgICAuYWNjb3VudCAudGFibGUtd3JhcHBlciAudGFibGUgdGZvb3QgdHI6Zmlyc3QtY2hpbGQgdGgsXG4gICAgICAgIC5hY2NvdW50IC50YWJsZS13cmFwcGVyIC50YWJsZSB0Zm9vdCB0cjpmaXJzdC1jaGlsZCB0ZCB7XG4gICAgICAgICAgcGFkZGluZy10b3A6IDJyZW07IH0gfVxuXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHRhYmxlLW1vYmlsZS1sYXlvdXQtaG9vaygpIHtcbn1cblxuQG1peGluIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dC1ob29rKCkge1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuIiwiQGltcG9ydCAndXRpbHMvdmlzdWFsbHktaGlkZGVuJztcclxuQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XHJcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFibGUvaG9vayc7XHJcblxyXG4kaGVhZF9jb2xvcjogJGNvbG9yX21pbmVzaGFmdCAhZGVmYXVsdDtcclxuJGhlYWRfbW92ZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XHJcbiRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlOiAxLjRyZW0gIWRlZmF1bHQ7XHJcblxyXG5AbWl4aW4gdGFibGUtbW9iaWxlLWxheW91dCgkaGVhZF9jb2xvcjogJGhlYWRfY29sb3IsXHJcbiAgICAkaGVhZF9tb3ZlLW9uLW1vYmlsZTogJGhlYWRfbW92ZS1vbi1tb2JpbGUsXHJcbiAgICAkaGVhZF9mb250LXNpemUtLW1vYmlsZTogJGhlYWRfZm9udC1zaXplLS1tb2JpbGUpIHtcclxuICAgIGJvcmRlcjogbm9uZTtcclxuICAgIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gICAgcGFkZGluZzogMDtcclxuXHJcbiAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxLjJyZW07XHJcbiAgICB9XHJcblxyXG4gICAgdGhlYWQge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgdGJvZHkgdGQge1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBmb250LXNpemU6ICRoZWFkX2ZvbnQtc2l6ZS0tbW9iaWxlO1xyXG4gICAgICAgIHBhZGRpbmc6IDAuMnJlbTtcclxuXHJcbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAwcmVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcclxuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206IDFyZW07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBAaWYgKCRoZWFkX21vdmUtb24tbW9iaWxlKSB7XHJcbiAgICAgICAgLy8gICAgICY6YmVmb3JlIHtcclxuICAgICAgICAvLyAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc8bGFwdG9wJykge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRoKSAnOiAnO1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICAvLyAgICAgICAgICAgICBjb2xvcjogJGhlYWRfY29sb3I7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAvLyAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xyXG4gICAgICAgIC8vICAgICAgICAgfVxyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICAmLmFjdGlvbnMge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgnPGxhcHRvcCcpIHtcclxuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkY29sb3JfYWx0bztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJzxsYXB0b3AnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRmb290IHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgdGgge1xyXG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcclxuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xyXG4gICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xyXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgICAgICB3aWR0aDogNzAlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgbm8tZGVzY2VuZGluZy1zcGVjaWZpY2l0eVxyXG4gICAgICAgIHRkIHtcclxuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcclxuICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgIHdpZHRoOiAzMCU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBzdHlsZWxpbnQtZW5hYmxlXHJcbiAgICAgICAgdHIge1xyXG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG5cclxuICAgICAgICAgICAgICAgIHRoLFxyXG4gICAgICAgICAgICAgICAgdGQge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycmVtO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIHRhYmxlLW1vYmlsZS1sYXlvdXQtaG9vaygpO1xyXG59XHJcblxyXG5AbWl4aW4gdGFibGUtd3JhcHBlci1tb2JpbGUtbGF5b3V0KCkge1xyXG4gICAgb3ZlcmZsb3cteDogYXV0bztcclxuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlOyAvLyBUbyBoaWRlIHVubmVjZXNzYXJ5IGhvcml6b250YWwgc2Nyb2xsYmFyIGluIFNhZmFyaVxyXG5cclxuICAgIEBpbmNsdWRlIHRhYmxlLXdyYXBwZXItbW9iaWxlLWxheW91dC1ob29rKCk7XHJcbn0iLCIvKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3MtdG9vbGJhciB7XG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy10b29sYmFyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgZmxleC13cmFwOiB3cmFwICFpbXBvcnRhbnQ7IH0gfVxuICAuY3MtdG9vbGJhcl9faXRlbSB7XG4gICAgbWFyZ2luOiAwIDAgMS41cmVtOyB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMS41cmVtO1xuICAgICAgICBwYWRkaW5nOiAwOyB9XG4gICAgICAgIC5jcy10b29sYmFyX19pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgICAgICAgLmNzLXRvb2xiYXJfX2l0ZW06bGFzdC1jaGlsZCB7XG4gICAgICAgICAgcGFkZGluZy1yaWdodDogMDsgfSB9XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC5jcy10b29sYmFyX19pdGVtLS1wYWdpbmF0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH0gfVxuICAgIC5jcy10b29sYmFyX19pdGVtLS1saW1pdGVyIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gICAgLmNzLXRvb2xiYXJfX2l0ZW0tLW9mZmNhbnZhcyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICB6LWluZGV4OiAxOyB9XG4gIC5jcy10b29sYmFyIC5maWVsZCAubGFiZWwge1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIHdpZHRoOiBhdXRvOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMS44cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBtYXJnaW46IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgcGFkZGluZzogMC43NWVtIDFlbTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC41cywgYm9yZGVyLWNvbG9yIDAuNXMsIGZpbGwgMC41cywgY29sb3IgMC41cztcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIHotaW5kZXg6IDU7IH1cbiAgICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246OmJlZm9yZSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOjphZnRlciB7XG4gICAgICBjb250ZW50OiBub25lOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOjotbW96LWZvY3VzLWlubmVyIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgICBtYXJnaW46IDA7IH1cbiAgICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24sIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjp2aXNpdGVkIHtcbiAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgIGJvcmRlci1yYWRpdXM6IDIwMHB4O1xuICAgICAgb3V0bGluZS1vZmZzZXQ6IDFweDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjN2U1N2MyO1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmOyB9XG4gICAgICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b24gKiwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOnZpc2l0ZWQgKiB7XG4gICAgICAgIGNvbG9yOiAjN2U1N2MyO1xuICAgICAgICBmaWxsOiAjN2U1N2MyOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmhvdmVyOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmZvY3VzOm5vdChbZGlzYWJsZWRdKSwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkge1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAjNGQyYzkxO1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGQyYzkxOyB9XG4gICAgICAuY3MtdG9vbGJhcl9fZmlsdGVycy1idXR0b246aG92ZXI6bm90KFtkaXNhYmxlZF0pICosIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbjpmb2N1czpub3QoW2Rpc2FibGVkXSkgKiwgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uOmFjdGl2ZTpub3QoW2Rpc2FibGVkXSkgKiB7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBmaWxsOiAjZmZmOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uW2Rpc2FibGVkXSB7XG4gICAgICBvcGFjaXR5OiAwLjY1O1xuICAgICAgY3Vyc29yOiBhdXRvOyB9XG4gICAgLmNzLXRvb2xiYXJfX2ZpbHRlcnMtYnV0dG9uLWljb24ge1xuICAgICAgbWF4LXdpZHRoOiAxZW07XG4gICAgICBtYXgtaGVpZ2h0OiAxLjhyZW07XG4gICAgICB6LWluZGV4OiAyO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDUwJTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgLTUwJSwgMCk7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgIGxlZnQ6IDFlbTtcbiAgICAgIG1heC13aWR0aDogMi4zcmVtO1xuICAgICAgbWF4LWhlaWdodDogMi4zcmVtOyB9XG4gIC5jcy10b29sYmFyX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgbWFyZ2luLXRvcDogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBsaW5lLWhlaWdodDogMS4yNzVlbTtcbiAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsO1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiA0ZW07IH1cblxuLnRvb2xiYXItYW1vdW50IHtcbiAgbWFyZ2luOiAwO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwOyB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi5jcy1zb3J0ZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1zb3J0ZXJfX2xhYmVsIHtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3Mtc29ydGVyX19zZWxlY3Qge1xuICAgICAgbWF4LXdpZHRoOiAxOHJlbTsgfSB9XG5cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1saW1pdGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgMXJlbSAwIDA7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogbm93cmFwOyB9XG4gIC5jcy1saW1pdGVyX19sYWJlbCxcbiAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbCB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuICAgIC5jcy1saW1pdGVyX19sYWJlbC0tcHJlZml4LFxuICAgIC5maWVsZCAuY3MtbGltaXRlcl9fbGFiZWwtLXByZWZpeCB7XG4gICAgICBwYWRkaW5nOiAwIDFyZW0gMCAxcmVtOyB9XG4gICAgLmNzLWxpbWl0ZXJfX2xhYmVsLS1zdWZmaXgsXG4gICAgLmZpZWxkIC5jcy1saW1pdGVyX19sYWJlbC0tc3VmZml4IHtcbiAgICAgIHBhZGRpbmc6IDAgMCAwIDFyZW07IH1cbiAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDIwMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMjAwcHg7XG4gICAgICBib3JkZXItcmlnaHQtd2lkdGg6IDFweDsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW06bGFzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMjAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogMjAwcHg7XG4gICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4OyB9XG4gIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6dmlzaXRlZCB7XG4gICAgICBjb2xvcjogIzY5Njk2OTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpob3ZlciwgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmZvY3VzLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6YWN0aXZlIHtcbiAgICAgIGJvcmRlcjogMDtcbiAgICAgIGNvbG9yOiAjNDU1YTY0O1xuICAgICAgYmFja2dyb3VuZDogaW5oZXJpdDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogaW5oZXJpdDsgfVxuICAgIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyLCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1pdGVtLS1jdXJyZW50IC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLW51bWJlcjpob3ZlciwgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24taXRlbS0tY3VycmVudCAuY3MtbGltaXRlcl9fcGFnaW5hdGlvbi1udW1iZXI6Zm9jdXMsIC5jcy1saW1pdGVyX19wYWdpbmF0aW9uLWl0ZW0tLWN1cnJlbnQgLmNzLWxpbWl0ZXJfX3BhZ2luYXRpb24tbnVtYmVyOmFjdGl2ZSB7XG4gICAgICBjb2xvcjogIzdlNTdjMjtcbiAgICAgIGJhY2tncm91bmQ6ICNmMGYwZjA7XG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7IH1cbiAgLmNzLWxpbWl0ZXIgc2VsZWN0IHtcbiAgICBtaW4td2lkdGg6IDNyZW07XG4gICAgbWluLWhlaWdodDogMy41cmVtOyB9XG5cbi5jcy1kYXNoYm9hcmQgLmxpbWl0ZXItbGFiZWwsXG4uY3MtZGFzaGJvYXJkIC5saW1pdGVyLXRleHQge1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXNpemU6IDEuNHJlbTtcbiAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07IH1cblxuLmNzLWRhc2hib2FyZCAubGltaXRlci10ZXh0IHtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgfVxuXG4uY3MtZGFzaGJvYXJkIC5saW1pdGVyLW9wdGlvbnMge1xuICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKlxuICogRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGZyb20gYSBsaXN0IG9mIHZhbHVlcywgYmFzZWQgb24gc2lkZVxuICogQHBhcmFtIHtzdHJpbmd9ICR2YXJpYWJsZTogdmFyaWFibGUgd2l0aCBhIGxpc3Qgb2YgdmFsdWVzIChsaWtlIHBhZGRpbmdzLCBtYXJnaW5zIGV0Yy4pO1xuICogQHBhcmFtIHtzdHJpbmd9ICRzaWRlOiBzaWRlICh1cCAvIHJpZ2h0IC8gZG93biAvIGxlZnQpIGZvciB3aGljaCB3ZSB3YW50IHRvIGdldCB2YWx1ZVxuICogRXhhbXBsZTpcbiAqICRjb21wb25lbnRfcGFkZGluZzogMXJlbSAycmVtIDNyZW07XG4gKiBnZXQtdmFsdWUtZnJvbS1saXN0KCRjb21wb25lbnRfcGFkZGluZywgJ3JpZ2h0JykgLy8gMnJlbVxuICogZ2V0LXZhbHVlLWZyb20tbGlzdCgkY29tcG9uZW50X3BhZGRpbmcsICdib3R0b20nKSAvLyAzcmVtXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4vKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuLyogc3R5bGVsaW50LWVuYWJsZSAqL1xuLyogUmFkaW8gYW5kIGNoZWNrYm94IHN0eWxpbmcgKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG5AdXNlICdzYXNzOm1hcCc7XG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKipcbiAqIFJlbW92ZSBicm93c2VyJ3MgbWFyZ2lucywgcGFkZGluZ3MgYW5kIGxpc3Qgc3R5bGUgcnVsZXNcbiAqL1xuLyogc3R5bGVsaW50LWRpc2FibGUgYmxvY2stbm8tZW1wdHkgKi9cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbi5jcy1wYWdpbmF0aW9uIHtcbiAgLyoqXG4gICAgICogSW5wdXQgbW9kZVxuICAgICAqL1xuICAvKipcbiAgICAgKiBCdWxsZXQgcG9pbnRzIG1vZGVcbiAgICAgKi8gfVxuICAuY3MtcGFnaW5hdGlvbl9fY29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19wcmVmaXgtbGFiZWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAwOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19wYWdlLXByb3ZpZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB3aWR0aDogYXV0bzsgfVxuICAuY3MtcGFnaW5hdGlvbl9fcGFnZS1wcm92aWRlci1pbnB1dC5pbnB1dC10ZXh0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWF4LWhlaWdodDogMy41cmVtO1xuICAgIHdpZHRoOiA0LjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07IH1cbiAgLmNzLXBhZ2luYXRpb25fX3BhZ2UtcHJvdmlkZXItbGFiZWwge1xuICAgIHBhZGRpbmctbGVmdDogMXJlbTtcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50OyB9XG4gIC5jcy1wYWdpbmF0aW9uX19pdGVtcyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19pdGVtIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9faXRlbTpmaXJzdC1jaGlsZCB7XG4gICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAyMDBweDtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDIwMHB4O1xuICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9faXRlbTpsYXN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAyMDBweDtcbiAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAyMDBweDtcbiAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7IH1cbiAgLmNzLXBhZ2luYXRpb25fX251bWJlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuM2VtO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIGZvbnQtc2l6ZTogMS4ycmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX251bWJlciwgLmNzLXBhZ2luYXRpb25fX251bWJlcjp2aXNpdGVkIHtcbiAgICAgIGNvbG9yOiAjNjk2OTY5O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX251bWJlcjpob3ZlciwgLmNzLXBhZ2luYXRpb25fX251bWJlcjpmb2N1cywgLmNzLXBhZ2luYXRpb25fX251bWJlcjphY3RpdmUge1xuICAgICAgYm9yZGVyOiAwO1xuICAgICAgY29sb3I6ICM0NTVhNjQ7XG4gICAgICBiYWNrZ3JvdW5kOiBpbmhlcml0O1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiBpbmhlcml0OyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQgLmNzLXBhZ2luYXRpb25fX251bWJlciwgLmNzLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQgLmNzLXBhZ2luYXRpb25fX251bWJlcjpob3ZlciwgLmNzLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQgLmNzLXBhZ2luYXRpb25fX251bWJlcjpmb2N1cywgLmNzLXBhZ2luYXRpb25fX2l0ZW0tLWN1cnJlbnQgLmNzLXBhZ2luYXRpb25fX251bWJlcjphY3RpdmUge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5jcy1wYWdpbmF0aW9uX19wcmV2IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNXJlbTsgfVxuICAuY3MtcGFnaW5hdGlvbl9fbmV4dCB7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNXJlbTsgfVxuICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1pbi13aWR0aDogMy41cmVtO1xuICAgIG1pbi1oZWlnaHQ6IDMuNXJlbTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG4gIC5jcy1wYWdpbmF0aW9uX19hY3Rpb24taWNvbiB7XG4gICAgd2lkdGg6IDEuM3JlbTtcbiAgICBoZWlnaHQ6IDIuNHJlbTtcbiAgICBmaWxsOiAjN2U1N2MyO1xuICAgIHRyYW5zaXRpb246IGZpbGwgMC4xNXMgbGluZWFyOyB9XG4gICAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbi0tZGlzYWJsZWQgLmNzLXBhZ2luYXRpb25fX2FjdGlvbi1pY29uIHtcbiAgICAgIGZpbGw6ICNkY2RjZGM7IH1cbiAgICAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uOm5vdCguY3MtcGFnaW5hdGlvbl9fYWN0aW9uLS1kaXNhYmxlZCk6aG92ZXIgLmNzLXBhZ2luYXRpb25fX2FjdGlvbi1pY29uLFxuICAgIC5jcy1wYWdpbmF0aW9uX19hY3Rpb246bm90KC5jcy1wYWdpbmF0aW9uX19hY3Rpb24tLWRpc2FibGVkKTpmb2N1cyAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24sXG4gICAgLmNzLXBhZ2luYXRpb25fX2FjdGlvbjpub3QoLmNzLXBhZ2luYXRpb25fX2FjdGlvbi0tZGlzYWJsZWQpOmFjdGl2ZSAuY3MtcGFnaW5hdGlvbl9fYWN0aW9uLWljb24ge1xuICAgICAgZmlsbDogIzE0MmI5ZTsgfVxuXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuQHVzZSAnc2FzczptYXAnO1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKioqXG4gKiBSZW1vdmUgYnJvd3NlcidzIG1hcmdpbnMsIHBhZGRpbmdzIGFuZCBsaXN0IHN0eWxlIHJ1bGVzXG4gKi9cbi8qIHN0eWxlbGludC1kaXNhYmxlIGJsb2NrLW5vLWVtcHR5ICovXG4vKiBzdHlsZWxpbnQtZW5hYmxlICovXG4uY3Mtdmlld21vZGUtc3dpdGNoZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbGFiZWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDFyZW0gMCAwOyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZXMge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDhlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlcyB7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtOyB9IH1cbiAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgbWFyZ2luLXRvcDogLTRweDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkICNkY2RjZGM7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1sZWZ0OiAtMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGU6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMjAwcHg7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAyMDBweDtcbiAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4OyB9XG4gICAgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDIwMHB4O1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDIwMHB4O1xuICAgICAgYm9yZGVyLWxlZnQtd2lkdGg6IDFweDsgfVxuICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAzLjVyZW07XG4gICAgbWluLWhlaWdodDogMy41cmVtO1xuICAgIGJvcmRlcjogMDtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMC4zZW07XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAxLjJyZW07XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjE1cyBsaW5lYXI7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHBhZGRpbmctbGVmdDogMC43ZW07XG4gICAgcGFkZGluZy1yaWdodDogMC43ZW07IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOnZpc2l0ZWQge1xuICAgICAgY29sb3I6ICM2OTY5Njk7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmhvdmVyLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmZvY3VzLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmFjdGl2ZSB7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBjb2xvcjogIzQ1NWE2NDtcbiAgICAgIGJhY2tncm91bmQ6IGluaGVyaXQ7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IGluaGVyaXQ7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbiwgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLS1jdXJyZW50IC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1hY3Rpb246aG92ZXIsIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS0tY3VycmVudCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtYWN0aW9uOmZvY3VzLCAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWFjdGlvbjphY3RpdmUge1xuICAgICAgY29sb3I6ICM3ZTU3YzI7XG4gICAgICBiYWNrZ3JvdW5kOiAjZjBmMGYwO1xuICAgICAgY3Vyc29yOiBkZWZhdWx0OyB9XG4gIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uIHtcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbi0tZ3JpZCB7XG4gICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxLjFyZW07IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtaWNvbi0tbGlzdCB7XG4gICAgICB3aWR0aDogMS41cmVtO1xuICAgICAgaGVpZ2h0OiAxLjFyZW07IH1cbiAgICAuY3Mtdmlld21vZGUtc3dpdGNoZXJfX21vZGUtLWN1cnJlbnQgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWljb24ge1xuICAgICAgZmlsbDogIzdlNTdjMjsgfVxuICAgIC5jcy12aWV3bW9kZS1zd2l0Y2hlcl9fbW9kZS1pY29uICsgLmNzLXZpZXdtb2RlLXN3aXRjaGVyX19tb2RlLWxhYmVsIHtcbiAgICAgIHBhZGRpbmctbGVmdDogMC43cmVtOyB9XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24vbWl4aW4nO1xuXG4kdG9vbGJhcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuJHRvb2xiYXJfZmxleC1qdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mbGV4LXdyYXA6IHdyYXAgIWRlZmF1bHQ7XG4kdG9vbGJhcl9mb250LXNpemU6IDEuMnJlbSAhZGVmYXVsdDtcbiR0b29sYmFyX2ZvbnQtd2VpZ2h0OiBpbmhlcml0ICFkZWZhdWx0O1xuJHRvb2xiYXJfdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZSAhZGVmYXVsdDtcblxuJHRvb2xiYXJfZWxlbWVudHMtcGFkZGluZy10YWJsZXQtdXA6IDAgIWRlZmF1bHQ7XG4kdG9vbGJhcl9lbGVtZW50cy1tYXJnaW46IDAgMCAxLjVyZW0gIWRlZmF1bHQ7XG4kdG9vbGJhcl9lbGVtZW50cy1tYXJnaW4tdGFibGV0LXVwOiAwIDAgMS41cmVtICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9zZWxlY3QtbWluLWhlaWdodDogMy41cmVtICFkZWZhdWx0O1xuJHRvb2xiYXJfaW5wdXQtbWF4LWhlaWdodDogJHRvb2xiYXJfc2VsZWN0LW1pbi1oZWlnaHQgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX3NlbGVjdHMtbWF4LXdpZHRoLXRhYmxldDogMjByZW0gIWRlZmF1bHQ7IC8vIHNldCAnbm9uZScgdG8gZGlzYWJsZVxuXG4kdG9vbGJhcl9jb21wb25lbnRzLWFsaWdubWVudDogKFxuICAgIGFtb3VudDogbGVmdCxcbiAgICBzb3J0ZXI6IGxlZnQsXG4gICAgbGltaXRlcjogbGVmdCxcbiAgICB2aWV3bW9kZS1zd2l0Y2hlcjogbGVmdCxcbiAgICBwYWdpbmF0aW9uOiByaWdodCxcbikgIWRlZmF1bHQ7XG5cbiR0b29sYmFyX2Ftb3VudC1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3NvcnRlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX2xpbWl0ZXItYWxpZ246IGxlZnQgIWRlZmF1bHQ7XG4kdG9vbGJhcl92aWV3bW9kZS1zd2l0Y2hlci1hbGlnbjogbGVmdCAhZGVmYXVsdDtcbiR0b29sYmFyX3BhZ2luYXRpb24tYWxpZ246IHJpZ2h0ICFkZWZhdWx0O1xuXG4kdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi10eXBlOiAnc2Vjb25kYXJ5JyAhZGVmYXVsdDtcbiR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zOiAnbGVmdCcgIWRlZmF1bHQ7XG5cbi4jeyRuc310b29sYmFyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGZvbnQtc2l6ZTogJHRvb2xiYXJfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkdG9vbGJhcl9mb250LXdlaWdodDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogJHRvb2xiYXJfdGV4dC10cmFuc2Zvcm07XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnKSB7XG4gICAgICAgIGRpc3BsYXk6ICR0b29sYmFyX2Rpc3BsYXk7XG5cbiAgICAgICAgQGlmICR0b29sYmFyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJHRvb2xiYXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogJHRvb2xiYXJfZmxleC1qdXN0aWZ5LWNvbnRlbnQ7XG4gICAgICAgICAgICBmbGV4LXdyYXA6ICR0b29sYmFyX2ZsZXgtd3JhcCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIG1hcmdpbjogJHRvb2xiYXJfZWxlbWVudHMtbWFyZ2luO1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcpIHtcbiAgICAgICAgICAgIG1hcmdpbjogJHRvb2xiYXJfZWxlbWVudHMtbWFyZ2luLXRhYmxldC11cDtcbiAgICAgICAgICAgIHBhZGRpbmc6ICR0b29sYmFyX2VsZW1lbnRzLXBhZGRpbmctdGFibGV0LXVwO1xuXG4gICAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlYWNoICRtb2RpZmllciwgJHZhbHVlIGluICR0b29sYmFyX2NvbXBvbmVudHMtYWxpZ25tZW50IHtcbiAgICAgICAgICAgIEBpZiAkdmFsdWUgPT0gcmlnaHQge1xuICAgICAgICAgICAgICAgICYtLSN7JG1vZGlmaWVyfSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PWxhcHRvcCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAkdG9vbGJhcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tbGltaXRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLW9mZmNhbnZhcyB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDNyZW07XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmZpZWxkIC5sYWJlbCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkdG9vbGJhcl9mb250LXdlaWdodDtcbiAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgJl9fZmlsdGVycy1idXR0b24ge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICAkdHlwZTogJHRvb2xiYXJfZmlsdGVycy1idXR0b24tdHlwZSxcbiAgICAgICAgICAgICRpY29uX3BvczogJHRvb2xiYXJfZmlsdGVycy1idXR0b24taWNvbi1wb3NcbiAgICAgICAgKTtcblxuICAgICAgICAmLWljb24ge1xuICAgICAgICAgICAgQGluY2x1ZGUgYnV0dG9uX2ljb24oXG4gICAgICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAgICAgJGljb25fcG9zOiAkdG9vbGJhcl9maWx0ZXJzLWJ1dHRvbi1pY29uLXBvc1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgbWF4LXdpZHRoOiAyLjNyZW07XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyLjNyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19maWx0ZXJzLWJ1dHRvbi1sYWJlbCB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbl9zcGFuKFxuICAgICAgICAgICAgJHR5cGU6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLXR5cGUsXG4gICAgICAgICAgICAkaWNvbl9wb3M6ICR0b29sYmFyX2ZpbHRlcnMtYnV0dG9uLWljb24tcG9zXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvYW1vdW50LnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3NvcnRlci5zY3NzJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9saW1pdGVyLnNjc3MnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL3BhZ2luYXRpb24uc2Nzcyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvdmlld21vZGUtc3dpdGNoZXIuc2Nzcyc7XG4iLCIudG9vbGJhci1hbW91bnQge1xuICAgIG1hcmdpbjogMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuJHNvcnRlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHNvcnRlcl9mbGV4LWFsaWduLWl0ZW1zOiBjZW50ZXIgIWRlZmF1bHQ7XG5cbiRzb3J0ZXJfbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMCAhZGVmYXVsdDtcbiRzb3J0ZXJfbGFiZWwtd2hpdGUtc3BhY2U6IG5vd3JhcCAhZGVmYXVsdDtcblxuJHNvcnRlcl9zZWxlY3QtbWF4LXdpZHRoOiAxOHJlbSAhZGVmYXVsdDtcblxuLiN7JG5zfXNvcnRlciB7XG4gICAgZGlzcGxheTogJHNvcnRlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICRzb3J0ZXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICB9XG5cbiAgICAmX19sYWJlbCB7XG4gICAgICAgIHBhZGRpbmc6ICRzb3J0ZXJfbGFiZWwtcGFkZGluZztcbiAgICAgICAgd2hpdGUtc3BhY2U6ICRzb3J0ZXJfbGFiZWwtd2hpdGUtc3BhY2U7XG4gICAgfVxuXG4gICAgJl9fc2VsZWN0IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJz49bGFwdG9wJykge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAkc29ydGVyX3NlbGVjdC1tYXgtd2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBzdHlsZWxpbnQtZGlzYWJsZSBibG9jay1uby1lbXB0eSAqL1xuQG1peGluIHBhZ2luYXRpb24tbGlzdC1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtLWhvb2soKSB7XG59XG5cbkBtaXhpbiBwYWdpbmF0aW9uLW51bWJlci1ob29rKCkge1xufVxuXG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQtaG9vaygpIHtcbn1cbi8qIHN0eWxlbGludC1lbmFibGUgKi9cbiIsIkBpbXBvcnQgJ2NvbmZpZy92YXJpYWJsZXMnO1xuQGltcG9ydCAnY29uZmlnL2JyZWFrcG9pbnRzJztcbkBpbXBvcnQgJ3ZlbmRvcnMvaW5jbHVkZS1tZWRpYSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kbGltaXRlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJGxpbWl0ZXJfZmxleC1hbGlnbi1pdGVtczogY2VudGVyICFkZWZhdWx0O1xuXG4kbGltaXRlcl9sYWJlbHMtd2hpdGUtc3BhY2U6IG5vd3JhcCAhZGVmYXVsdDtcbiRsaW1pdGVyX21hcmdpbjogMCAxcmVtIDAgMDtcbiRsaW1pdGVyX3ByZWZpeC1sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAxcmVtICFkZWZhdWx0O1xuJGxpbWl0ZXJfc3VmZml4LWxhYmVsLXBhZGRpbmc6IDAgMCAwIDFyZW0gIWRlZmF1bHQ7XG5cbiRzb3J0ZXJfc2VsZWN0LW1pbi1oZWlnaHQ6ICR0b29sYmFyX3NlbGVjdC1taW4taGVpZ2h0ICFkZWZhdWx0O1xuXG4uI3skbnN9bGltaXRlciB7XG4gICAgJHJvb3Q6ICY7XG5cbiAgICBkaXNwbGF5OiAkbGltaXRlcl9kaXNwbGF5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46ICRsaW1pdGVyX21hcmdpbjtcblxuICAgIEBpZiAkbGltaXRlcl9kaXNwbGF5ID09IGZsZXgge1xuICAgICAgICBhbGlnbi1pdGVtczogJGxpbWl0ZXJfZmxleC1hbGlnbi1pdGVtcztcbiAgICAgICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgfVxuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICAmLFxuICAgICAgICAuZmllbGQgJiB7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogJGxpbWl0ZXJfbGFiZWxzLXdoaXRlLXNwYWNlO1xuXG4gICAgICAgICAgICAmLS1wcmVmaXgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsaW1pdGVyX3ByZWZpeC1sYWJlbC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLS1zdWZmaXgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6ICRsaW1pdGVyX3N1ZmZpeC1sYWJlbC1wYWRkaW5nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcGFnaW5hdGlvbiB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbGlzdCgpO1xuICAgIH1cblxuICAgICZfX3BhZ2luYXRpb24taXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX3BhZ2luYXRpb24tbnVtYmVyIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXIoKTtcblxuICAgICAgICAjeyRyb290fV9fcGFnaW5hdGlvbi1pdGVtLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNlbGVjdCB7XG4gICAgICAgIG1pbi13aWR0aDogM3JlbTtcbiAgICAgICAgbWluLWhlaWdodDogJHNvcnRlcl9zZWxlY3QtbWluLWhlaWdodDtcbiAgICB9XG59XG5cbi8vdXNlciBhcmVhIGxpbWl0ZXIgYWZ0ZXIgcmVmYWN0b3JcblxuLiN7JG5zfWRhc2hib2FyZCB7XG4gICAgLmxpbWl0ZXItbGFiZWwsXG4gICAgLmxpbWl0ZXItdGV4dCB7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDAuNXJlbTtcbiAgICB9XG5cbiAgICAubGltaXRlci10ZXh0IHtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB9XG5cbiAgICAubGltaXRlci1vcHRpb25zIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAwLjVyZW07XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ3V0aWxzL3Jlc2V0LWxpc3Qtc3R5bGUnO1xuQGltcG9ydCAnY29tcG9uZW50cy90b29sYmFyL2hvb2tzLnNjc3MnO1xuXG4kcGFnaW5hdGlvbi1saXN0X2Rpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1saXN0X2ZsZXgtYWxpZ24taXRlbXM6IHN0cmV0Y2ggIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1saXN0IHtcbiAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG4gICAgZGlzcGxheTogJHBhZ2luYXRpb24tbGlzdF9kaXNwbGF5O1xuXG4gICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgIGFsaWduLWl0ZW1zOiAkcGFnaW5hdGlvbi1saXN0X2ZsZXgtYWxpZ24taXRlbXM7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0LWhvb2soKTtcbn1cblxuJHBhZ2luYXRpb24taXRlbV9tYXJnaW46IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX3BhZGRpbmc6IDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX2JvcmRlci13aWR0aDogMnB4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9ib3JkZXItY29sb3I6ICRjb2xvcl9ib3JkZXItNTAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9ib3JkZXI6ICRwYWdpbmF0aW9uLWl0ZW0tYm9yZGVyLXdpZHRoIHNvbGlkXG4gICAgJHBhZ2luYXRpb24taXRlbS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzOiB0cnVlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM6IDIwMHB4ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24taXRlbV9hcy1jaXJjbGU6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gcGFnaW5hdGlvbi1pdGVtIHtcbiAgICBtYXJnaW46ICRwYWdpbmF0aW9uLWl0ZW1fbWFyZ2luO1xuICAgIG1hcmdpbi10b3A6IC00cHg7XG4gICAgcGFkZGluZzogJHBhZ2luYXRpb24taXRlbV9wYWRkaW5nO1xuICAgIGJvcmRlcjogJHBhZ2luYXRpb24taXRlbV9ib3JkZXI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGlmICRwYWdpbmF0aW9uLWl0ZW1fbWFyZ2luID09XG4gICAgICAgIDAgYW5kXG4gICAgICAgICRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyLXdpZHRoICE9XG4gICAgICAgIDAgYW5kXG4gICAgICAgICRwYWdpbmF0aW9uLWl0ZW1fYm9yZGVyICE9XG4gICAgICAgIG5vbmVcbiAgICB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtI3skcGFnaW5hdGlvbi1pdGVtX2JvcmRlci13aWR0aH07XG4gICAgfVxuXG4gICAgQGlmICRwYWdpbmF0aW9uLWl0ZW1fcm91bmQtZWRnZXMge1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHBhZ2luYXRpb24taXRlbV9yb3VuZC1lZGdlcy1yYWRpdXM7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC13aWR0aDogMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcGFnaW5hdGlvbi1pdGVtX3JvdW5kLWVkZ2VzLXJhZGl1cztcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LXdpZHRoOiAxcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJHBhZ2luYXRpb24taXRlbV9hcy1jaXJjbGUge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1pdGVtLWhvb2soKTtcbn1cblxuJHBhZ2luYXRpb24tbnVtYmVyX21pbi13aWR0aDogMy41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfcGFkZGluZzogMC4zZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfYmFja2dyb3VuZDogJGNvbG9yX2JhY2tncm91bmQtMjAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX2ZvbnQtc2l6ZTogMS4ycmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyX2ZvbnQtd2VpZ2h0OiA0MDAgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfY29sb3I6ICRjb2xvcl90ZXh0LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlcl90ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1udW1iZXJfdHJhbnNpdGlvbjogY29sb3IgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9jb2xvcjogJGNvbG9yX3RleHQtODAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl9iYWNrZ3JvdW5kOiBpbmhlcml0ICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb246IGluaGVyaXQgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6ICRwYWdpbmF0aW9uLW51bWJlcl9taW4td2lkdGg7XG4gICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7XG4gICAgYm9yZGVyOiAwO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbi1udW1iZXJfcGFkZGluZztcbiAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXJfYmFja2dyb3VuZDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC1zaXplO1xuICAgIGZvbnQtd2VpZ2h0OiAkcGFnaW5hdGlvbi1udW1iZXJfZm9udC13ZWlnaHQ7XG4gICAgdHJhbnNpdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RyYW5zaXRpb247XG5cbiAgICAmLFxuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXJfY29sb3I7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyX3RleHQtZGVjb3JhdGlvbjtcbiAgICB9XG5cbiAgICAmOmhvdmVyLFxuICAgICY6Zm9jdXMsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIGNvbG9yOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2NvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1udW1iZXItLWhvdmVyX2JhY2tncm91bmQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogJHBhZ2luYXRpb24tbnVtYmVyLS1ob3Zlcl90ZXh0LWRlY29yYXRpb247XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItaG9vaygpO1xufVxuXG4kcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnRfY29sb3I6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9iYWNrZ3JvdW5kOiAkY29sb3JfYmFja2dyb3VuZC01MDAgIWRlZmF1bHQ7XG5AbWl4aW4gcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQge1xuICAgICYsXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudF9jb2xvcjtcbiAgICAgICAgYmFja2dyb3VuZDogJHBhZ2luYXRpb24tbnVtYmVyLS1jdXJyZW50X2JhY2tncm91bmQ7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudC1ob29rKCk7XG59XG4iLCJAaW1wb3J0ICdjb25maWcvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbmZpZy9icmVha3BvaW50cyc7XG5AaW1wb3J0ICd2ZW5kb3JzL2luY2x1ZGUtbWVkaWEnO1xuQGltcG9ydCAnY29tcG9uZW50cy9maWVsZC9taXhpbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Rvb2xiYXIvbWl4aW5zLnNjc3MnO1xuXG4kcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk6IGZsZXggIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9jb250ZW50LWZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb25fcHJlZml4LWxhYmVsLW1hcmdpbjogMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3ByZWZpeC1sYWJlbC1wYWRkaW5nOiAwIDFyZW0gMCAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LXdpZHRoOiA0LjVlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtZm9udC1zaXplOiAwLjg1ZW0gIWRlZmF1bHQ7XG5cbi8vIHByZXYvbmV4dCBhcnJvd3NcbiRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI6IDEuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXdpZHRoOiAxLjNyZW0gIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ6IDIuNHJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLWZpbGw6ICRjb2xvcl9wcmltYXJ5LTUwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXRyYW5zaXRpb246IGZpbGwgMC4xNXMgbGluZWFyICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYWN0aW9uLS1ob3Zlcl9pY29uLWZpbGw6ICRjb2xvcl90b3JlYS1iYXkgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3Rpb24tLWRpc2FibGVkX2ljb24tZmlsbDogJGNvbG9yX2FsdG8gIWRlZmF1bHQ7XG5cbi4jeyRuc31wYWdpbmF0aW9uIHtcbiAgICAkcm9vdDogJjtcblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiAkcGFnaW5hdGlvbl9jb250ZW50LWRpc3BsYXk7XG5cbiAgICAgICAgQGlmICRsaW1pdGVyX2Rpc3BsYXkgPT0gZmxleCB7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogJHBhZ2luYXRpb25fY29udGVudC1mbGV4LWFsaWduLWl0ZW1zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJlZml4LWxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtbWFyZ2luO1xuICAgICAgICBwYWRkaW5nOiAkcGFnaW5hdGlvbl9wcmVmaXgtbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbnB1dCBtb2RlXG4gICAgICovXG4gICAgJl9fcGFnZS1wcm92aWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWlucHV0LmlucHV0LXRleHQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIG1heC1oZWlnaHQ6ICR0b29sYmFyX2lucHV0LW1heC1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL3Rvb2xiYXJcbiAgICAgICAgd2lkdGg6ICRwYWdpbmF0aW9uX3BhZ2UtcHJvdmlkZXItaW5wdXQtd2lkdGg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgZm9udC1zaXplOiAkcGFnaW5hdGlvbl9wYWdlLXByb3ZpZGVyLWlucHV0LWZvbnQtc2l6ZTtcbiAgICB9XG5cbiAgICAmX19wYWdlLXByb3ZpZGVyLWxhYmVsIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJ1bGxldCBwb2ludHMgbW9kZVxuICAgICAqL1xuICAgICZfX2l0ZW1zIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX251bWJlciB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24tbnVtYmVyKCk7XG5cbiAgICAgICAgI3skcm9vdH1fX2l0ZW0tLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWdpbmF0aW9uLW51bWJlci0tY3VycmVudCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcHJldiB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJHBhZ2luYXRpb25fYWN0aW9uLWd1dHRlcjtcbiAgICB9XG5cbiAgICAmX19uZXh0IHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6ICRwYWdpbmF0aW9uX2FjdGlvbi1ndXR0ZXI7XG4gICAgfVxuXG4gICAgJl9fYWN0aW9uIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgbWluLXdpZHRoOiAkcGFnaW5hdGlvbi1udW1iZXJfbWluLXdpZHRoOyAvLyB2YXIgaW5oZXJpdGVkIGZyb20gLi9taXhpbnNcbiAgICAgICAgbWluLWhlaWdodDogJHBhZ2luYXRpb24tbnVtYmVyX21pbi1oZWlnaHQ7IC8vIHZhciBpbmhlcml0ZWQgZnJvbSAuL21peGluc1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX19hY3Rpb24taWNvbiB7XG4gICAgICAgIHdpZHRoOiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi13aWR0aDtcbiAgICAgICAgaGVpZ2h0OiAkcGFnaW5hdGlvbl9hY3Rpb24taWNvbi1oZWlnaHQ7XG4gICAgICAgIGZpbGw6ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLWZpbGw7XG4gICAgICAgIHRyYW5zaXRpb246ICRwYWdpbmF0aW9uX2FjdGlvbi1pY29uLXRyYW5zaXRpb247XG5cbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQgJiB7XG4gICAgICAgICAgICBmaWxsOiAkcGFnaW5hdGlvbi1hY3Rpb24tLWRpc2FibGVkX2ljb24tZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICN7JHJvb3R9X19hY3Rpb246bm90KCN7JHJvb3R9X19hY3Rpb24tLWRpc2FibGVkKTpob3ZlciAmLFxuICAgICAgICAjeyRyb290fV9fYWN0aW9uOm5vdCgjeyRyb290fV9fYWN0aW9uLS1kaXNhYmxlZCk6Zm9jdXMgJixcbiAgICAgICAgI3skcm9vdH1fX2FjdGlvbjpub3QoI3skcm9vdH1fX2FjdGlvbi0tZGlzYWJsZWQpOmFjdGl2ZSAmIHtcbiAgICAgICAgICAgIGZpbGw6ICRwYWdpbmF0aW9uLWFjdGlvbi0taG92ZXJfaWNvbi1maWxsO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbGJhci9taXhpbnMuc2Nzcyc7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9kaXNwbGF5OiBmbGV4ICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2ZsZXgtYWxpZ24taXRlbXM6IGNlbnRlciAhZGVmYXVsdDtcbiR2aWV3bW9kZS1zd2l0Y2hlcl9jb2xvcjogJGNvbG9yX3RleHQtNDAwICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfbGFiZWwtcGFkZGluZzogMCAxcmVtIDAgMCAhZGVmYXVsdDtcblxuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi14LWF4aXMtcGFkZGluZzogMC43ZW0gIWRlZmF1bHQ7XG5cbiR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1maWxsOiBjdXJyZW50Q29sb3IgIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tLWN1cnJlbnQtZmlsbDogJGNvbG9yX3ByaW1hcnktNTAwICFkZWZhdWx0O1xuXG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtaGVpZ2h0OiAxLjFyZW0gIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC13aWR0aDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWdyaWQtd2lkdGggIWRlZmF1bHQ7XG4kdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC1oZWlnaHQ6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLWhlaWdodCAhZGVmYXVsdDtcblxuLiN7JG5zfXZpZXdtb2RlLXN3aXRjaGVyIHtcbiAgICAkcm9vdDogJjtcblxuICAgIGRpc3BsYXk6ICR2aWV3bW9kZS1zd2l0Y2hlcl9kaXNwbGF5O1xuXG4gICAgQGlmICRzb3J0ZXJfZGlzcGxheSA9PSBmbGV4IHtcbiAgICAgICAgYWxpZ24taXRlbXM6ICR2aWV3bW9kZS1zd2l0Y2hlcl9mbGV4LWFsaWduLWl0ZW1zO1xuICAgIH1cblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAkdmlld21vZGUtc3dpdGNoZXJfbGFiZWwtcGFkZGluZztcbiAgICB9XG5cbiAgICAmX19tb2RlcyB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCc+PXRhYmxldCcsICc8bGFwdG9wJykge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1saXN0KCk7XG4gICAgfVxuXG4gICAgJl9fbW9kZSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZ2luYXRpb24taXRlbSgpO1xuICAgIH1cblxuICAgICZfX21vZGUtYWN0aW9uIHtcbiAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXIoKTtcblxuICAgICAgICBoZWlnaHQ6IDEwMCU7IC8vIHNldCBoZWlnaHQgZXhwbGljaXRseSBmb3IgSUVcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLXgtYXhpcy1wYWRkaW5nO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLXgtYXhpcy1wYWRkaW5nO1xuXG4gICAgICAgICN7JHJvb3R9X19tb2RlLS1jdXJyZW50ICYge1xuICAgICAgICAgICAgQGluY2x1ZGUgcGFnaW5hdGlvbi1udW1iZXItLWN1cnJlbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX21vZGUtaWNvbiB7XG4gICAgICAgIGZpbGw6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1maWxsO1xuXG4gICAgICAgICYtLWdyaWQge1xuICAgICAgICAgICAgd2lkdGg6ICR2aWV3bW9kZS1zd2l0Y2hlcl9hY3Rpb24taWNvbi1ncmlkLXdpZHRoO1xuICAgICAgICAgICAgaGVpZ2h0OiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tZ3JpZC1oZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmLS1saXN0IHtcbiAgICAgICAgICAgIHdpZHRoOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tbGlzdC13aWR0aDtcbiAgICAgICAgICAgIGhlaWdodDogJHZpZXdtb2RlLXN3aXRjaGVyX2FjdGlvbi1pY29uLWxpc3QtaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgI3skcm9vdH1fX21vZGUtLWN1cnJlbnQgJiB7XG4gICAgICAgICAgICBmaWxsOiAkdmlld21vZGUtc3dpdGNoZXJfYWN0aW9uLWljb24tLWN1cnJlbnQtZmlsbDtcbiAgICAgICAgfVxuXG4gICAgICAgICsgI3skcm9vdH1fX21vZGUtbGFiZWwge1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwLjdyZW07XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBOztBQ0VBO0FEQ0E7QUVIQTs7O0FET0E7QURrQkE7O0FDZkE7QURWQTs7QUNhQTtBRFZBO0FFSEE7OztBRGtCQTtBRE9BOztBQ0pBO0FFZkE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFFQTs7O0FBR0E7QUFDQTtBQUVBO0FDakJBO0FEbUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBOzs7O0FBSUE7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUFBO0FBQUE7QUFEQTtBQUtBO0FBQ0E7QUFDQTtBQUlBO0FBRUE7QUFFQTtBQVFBO0FBVkE7QUFLQTtBQUNBO0FBQ0E7QUFQQTtBQWVBO0FBQ0E7QUFJQTtBQUVBOztBSDFFQTs7QUtFQTtBTENBO0FFSEE7OztBR09BO0FMa0JBOztBS2ZBO0FMVkE7O0FLYUE7QUxWQTtBRUhBOzs7QUdrQkE7QUxPQTs7QUtKQTtBTHJCQTs7QUt3QkE7QUxyQkE7QUVIQTs7O0FHNkJBO0FMSkE7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QUFHQTtBQUNBO0FhNUZBO0FaR0E7QVlIQTtBWlVBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QVlqQkE7QVoyQkE7QUFDQTtBQUNBO0FBSUE7QVlqQ0E7QVp1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FZNURBO0Fab0VBO0FZcEVBO0Fia0tBO0FBQ0E7QUFDQTtBYXBLQTtBYjBLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FhcExBO0FidUxBO0FBQ0E7QWF4TEE7QWI4T0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FhdFBBO0FieVBBO0FBQ0E7QWExUEE7QWIyU0E7QUFDQTtBYXRTQTtBYjhTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QWExVEE7QWJ3V0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0FBQ0E7QWE5WEE7QWJ1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWNsR0E7QURrQ0E7QUFDQTtBQUNBO0FBVEE7QVpsQkE7QVlrQkE7QVpYQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FZSUE7QVpNQTtBQUNBO0FBQ0E7QUFJQTtBWVpBO0Faa0NBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBWXZDQTtBWitDQTtBWS9DQTtBYjZJQTtBQUNBO0FBQ0E7QWEvSUE7QWJxSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBYS9KQTtBYmtLQTtBQUNBO0FhbktBO0FieU5BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBYWpPQTtBYm9PQTtBQUNBO0Fhck9BO0Fic1JBO0FBQ0E7QWpCcVBBO0E4QjVnQkE7QUNqQkE7QUFLQTtBQUNBO0FEc0JBO0Fib1JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBYWhTQTtBYjhVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBbUJBO0FBQ0E7QWFwV0E7QUFFQTtBQUZBO0FBS0E7O0F0Qy9EQTs7QXdDRUE7QXhDQ0E7QUVIQTs7O0FzQ09BO0F4Q2tCQTs7QXdDZkE7QXhDVkE7O0F3Q2FBO0F4Q1ZBO0FFSEE7OztBc0NrQkE7QXhDT0E7O0F3Q0pBO0F4Q3JCQTs7QXdDd0JBO0F4Q3JCQTtBRUhBOzs7QXNDNkJBO0F4Q0pBOztBd0NPQTtBbEM5QkE7O0FrQ2lDQTtBbEM3QkE7OztBa0NpQ0E7QWxDeEJBOzs7QWtDNEJBO0FsQ2xCQTs7QWtDcUJBO0FqQzFDQTtBRE9BO0FBQ0E7QUNKQTtBQUNBO0FBQ0E7QUFFQTtBRGlCQTtBQUNBO0FBQ0E7QUNqQkE7QUFGQTtBQU1BO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUNvaEJBO0FEcmhCQTtBQUlBO0FDaWhCQTtBRHJoQkE7QUFRQTtBQzZnQkE7QURyaEJBO0FBWUE7QUFJQTtBQUNBO0FBQ0E7QUNtZ0JBO0FEcmdCQTtBQUtBO0FDZ2dCQTtBRHJnQkE7QUFTQTtBQzRmQTtBRHJnQkE7QUFhQTtBQUNBO0FDdWZBO0FEcGZBO0FBRUE7QUFLQTtBQUNBO0FDNGVBO0FEN2VBO0FBSUE7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FDaWVBO0FEbmVBO0FBS0E7QUFDQTtBQUlBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBRUE7O0FQdkdBOztBeUNFQTtBekNDQTtBRUhBOzs7QXVDT0E7QXpDa0JBOztBeUNmQTtBekNWQTs7QXlDYUE7QXpDVkE7QUVIQTs7O0F1Q2tCQTtBekNPQTs7QXlDSkE7QW5CckJBOzs7Ozs7OztBbUI4QkE7QWxCOUJBO0FBU0E7QXZCVEE7O0F5Q21DQTtBekNoQ0E7QUVIQTs7O0F1Q3dDQTtBekNmQTs7QXlDa0JBO0FoQzNDQTtBQVlBO0FUWkE7O0F5Q2dEQTtBekM3Q0E7QUVIQTs7O0F1Q3FEQTtBekM1QkE7O0F5QytCQTtBQ3RDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQVVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWxDaWZBO0FrQ3ZmQTtBQVNBO0FBSUE7QUFDQTtBbEN5ZUE7QWtDMWVBO0FBSUE7QUFJQTtBQUNBO0FBQ0E7QUFGQTs7QUFNQTtBQUNBO0FBUEE7QS9CbkNBO0FBQ0E7QStCa0NBO0EvQjFCQTtBQUNBO0ErQjJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBbEMwY0E7QWtDaGRBO0FBU0E7QUFDQTtBQUlBO0FqQm5CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaUJTQTtBQUNBO0FBUEE7QWhCNUZBO0FnQjRGQTtBaEJyRkE7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBZ0I4RUE7QWhCcEVBO0FBQ0E7QUFDQTtBQUlBO0FnQjhEQTtBaEJ4Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FnQm1DQTtBaEIzQkE7QWdCMkJBO0FqQm1FQTtBQUNBO0FBQ0E7QWlCckVBO0FqQjJFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpQnJGQTtBakJ3RkE7QUFDQTtBaUJ6RkE7QWpCK0lBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUJ2SkE7QWpCMEpBO0FBQ0E7QWlCM0pBO0FqQjRNQTtBQUNBO0FqQnFQQTtBa0NsY0E7QUFVQTtBQUNBO0FBSUE7QWpCc01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBaUJsTkE7QWpCZ1FBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFtQkE7QUFDQTs7QXpCOVpBOztBMkNFQTtBM0NDQTtBRUhBOzs7QXlDT0E7QTNDa0JBOztBMkNmQTtBM0NWQTs7QTJDYUE7QTNDVkE7QUVIQTs7O0F5Q2tCQTtBM0NPQTs7QTJDSkE7QTNDckJBOztBMkN3QkE7QTNDckJBO0FFSEE7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QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN0R0E7O0FEMEdBO0FDckdBOztBRHlJQTtBQ3JJQTs7QURpSEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDbkhBOztBRDBIQTtBQUNBO0FDdEhBOzs7QURtSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUMvSUE7Ozs7O0FEb0pBO0FBQ0E7QUNySkE7QUQwSkE7QUFDQTtBQzNKQTs7O0FEMEpBO0FBQ0E7QUMzSkE7OztBRCtKQTtBQy9KQTs7Ozs7QUR5S0E7QUNoS0E7O0FEK01BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDbE9BOzs7QUR1T0E7QUFDQTtBQ3hPQTs7O0FEOE9BO0FBQ0E7QUFDQTtBQ2hQQTs7QURxUEE7QUNyUEE7O0FEeVBBO0FBQ0E7QUFDQTtBQ3ZQQTs7QURrUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDclJBOzs7QUQwUkE7QUFDQTtBQzNSQTs7O0FEaVNBO0FBQ0E7QUFDQTtBQ25TQTs7QUR3U0E7QUN4U0E7Ozs7QUQ2U0E7QUFDQTtBQUNBO0FDL1NBOzs7Ozs7QURzVEE7QUM1U0E7O0FEd1BBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWdEQTtBQUNBO0FBQ0E7QUM3VEE7OztBRGdSQTtBQUNBO0FDalJBOzs7QUR1UkE7QUFDQTtBQUNBO0FDelJBOztBRDhSQTtBQzlSQTs7OztBRG1TQTtBQUNBO0FBQ0E7QUNyU0E7Ozs7OztBRDRTQTtBQzVTQTs7QURnVUE7QUNoVUE7OztBRGtKQTtBQ3BJQTs7QUQySUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNUlBOztBRHNKQTtBQUNBO0FBQ0E7QUFDQTtBQ3JKQTs7QURrSkE7QUFDQTtBQUNBO0FBQ0E7QUFRQTtBQUNBO0FDekpBO0FEMkJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ25DQTtBRHVDQTtBQ3ZDQTtBQVFBO0FBUkE7QUQ4SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUMxSEE7QUFaQTtBRDJFQTtBQzNFQTtBRGlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzdGQTtBRGtHQTtBQUNBO0FDbkdBO0FEd0dBO0FBQ0E7QUN6R0E7QUR3R0E7QUFDQTtBQ3pHQTtBRDZHQTtBQzdHQTtBQXlCQTtBQUNBO0FBQ0E7QUEzQkE7QUE4QkE7QUE5QkE7QUR1REE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDNURBO0FBeUNBO0FBQ0E7QUExQ0E7QURtRUE7QUFDQTtBQ3BFQTtBQXlEQTtBQXpEQTtBRGlGQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQzdGQTtBRGtHQTtBQUNBO0FDbkdBO0FEd0dBO0FBQ0E7QUN6R0E7QUR3R0E7QUFDQTtBQ3pHQTtBRDZHQTtBQzdHQTtBRHVIQTtBQ3ZIQTtBQXVFQTtBQXZFQTtBRHNLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3pMQTtBRDhMQTtBQUNBO0FDL0xBO0FEcU1BO0FBQ0E7QUFDQTtBQ3ZNQTtBRDRNQTtBQzVNQTtBRGdOQTtBQUNBO0FBQ0E7QUNsTkE7QUQ2TkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZ0RBO0FBQ0E7QUFDQTtBQ2xTQTtBRHFQQTtBQUNBO0FDdFBBO0FENFBBO0FBQ0E7QUFDQTtBQzlQQTtBRG1RQTtBQ25RQTtBRHdRQTtBQUNBO0FBQ0E7QUMxUUE7OztBRGlSQTtBQ2pSQTtBRHFTQTtBQ3JTQTtBRHVIQTtBQ3ZIQTtBRDZOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNoUEE7QURxUEE7QUFDQTtBQ3RQQTtBRDRQQTtBQUNBO0FBQ0E7QUM5UEE7QURtUUE7QUNuUUE7QUR3UUE7QUFDQTtBQUNBO0FDMVFBOzs7QURpUkE7QUNqUkE7QURzS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN6TEE7QUQ4TEE7QUFDQTtBQy9MQTtBRHFNQTtBQUNBO0FBQ0E7QUN2TUE7QUQ0TUE7QUM1TUE7QURnTkE7QUFDQTtBQUNBO0FDbE5BO0FEaUZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FDN0ZBO0FEa0dBO0FBQ0E7QUNuR0E7QUR3R0E7QUFDQTtBQ3pHQTtBRHdHQTtBQUNBO0FDekdBO0FENkdBO0FDN0dBO0FEdUhBO0FDdkhBO0E3QmdCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBNkJoQ0E7QTdCbUVBO0E2Qm5FQTtBN0JzR0E7QUFDQTtBQUNBO0E2QnhHQTtBN0I4R0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FB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O0FMeWhCQTtBK0NyVkE7O0FBNEJBO0FBQ0E7QUFDQTtBL0N1VEE7QStDclZBOztBQWtDQTtBQUNBO0FBSUE7O0FBRUE7QUFDQTtBL0MyU0E7QStDeFNBOztBQUNBO0EvQ3VTQTtBK0M5U0E7O0FBWUE7QS9Da1NBO0ErQzlTQTs7QUFnQkE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0EvQzhQQTtBK0NuUUE7QUFRQTtBQVJBOztBQWFBO0FBQ0E7QUFkQTs7QUFpQkE7QUFDQTtBQWxCQTtBQXVCQTtBQUNBO0FBQ0E7QS9DME9BO0ErQ25RQTtBQTRCQTtBQUNBO0FBN0JBO0FBaUNBO0FBQ0E7QUFsQ0E7QUF1Q0E7QUFDQTs7QXZEbFZBOztBeURFQTtBekRDQTtBRUhBOzs7QXVET0E7QXpEa0JBOztBeURmQTtBekRWQTs7QXlEYUE7QXpEVkE7QUVIQTs7O0F1RGtCQTtBekRPQTs7QXlESkE7QXRCckJBOztBc0J3QkE7QXpEeEJBOztBeUQyQkE7QXpEeEJBO0FFSEE7OztBdURnQ0E7QXpEUEE7O0F5RFVBO0FoRG5DQTtBQVlBO0FUWkE7O0F5RHdDQTtBekRyQ0E7QUVIQTs7O0F1RDZDQTtBekRwQkE7O0F5RHVCQTtBQ2pDQTtBdkJWQTtBQUNBO0FBQ0E7QXVCYUE7QUFDQTtBQU5BO0EvQ3lCQTtBQUNBO0ErQzFCQTtBL0NrQ0E7QUFDQTtBK0NuQ0E7QUFpQkE7QUFDQTtBQUNBO0FsRDJnQkE7QWtEOWhCQTtBQXVCQTtBQUNBOztBMUR2Q0E7O0EyREVBO0EzRENBO0FFSEE7OztBeURPQTtBM0RrQkE7O0EyRGZBO0EzRFZBOztBMkRhQTtBM0RWQTtBRUhBOzs7QXlEa0JBO0EzRE9BOztBMkRKQTtBbERyQkE7QUFZQTtBVFpBOztBMkQwQkE7QTNEdkJBO0FFSEE7OztBeUQrQkE7QTNETkE7O0EyRFNBO0FDWkE7QUFHQTtBQUdBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QWpERUE7QUFDQTtBaURIQTtBakRXQTtBQUNBO0FpRElBO0FBQ0E7QUFDQTtBQUZBO0FBS0E7QUFDQTtBQUNBO0FBUEE7QWpEZEE7QUFDQTtBaURhQTtBakRMQTtBQUNBO0FpRHlCQTtBQUNBO0FBR0E7QUFFQTs7QUNqRkE7OztBQ0dBO0E5REhBOztBOERNQTtBOURIQTtBRUhBOzs7QTREV0E7QTlEY0E7O0E4RFhBO0E5RGRBOztBOERpQkE7QTlEZEE7QUVIQTs7O0E0RHNCQTtBOURHQTs7QThEQUE7QTlEekJBOztBOEQ0QkE7QTlEekJBO0FFSEE7OztBNERpQ0E7QTlEUkE7O0E4RFdBO0E1RHBDQTs7O0E0RHdDQTtBeEN4Q0E7Ozs7Ozs7O0F3Q2lEQTtBdkNqREE7QUFTQTtBc0N5RkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFtQkE7QXJEOGFBO0FxRDNjQTtBQWVBO0FyRDRiQTtBcUQzY0E7QUFlQTtBckQ0YkE7QXFEM2NBO0FBZUE7QXJENGJBO0FxRDNjQTtBQWVBO0FyRDRiQTtBcUQzY0E7QUFlQTtBckQ0YkE7QXFEM2NBO0FBZUE7QXJENGJBO0FxRDNjQTtBQWVBO0FyRDRiQTtBcUR4YkE7QUFLQTtBckRtYkE7QXFEeGJBO0FBS0E7QXJEbWJBO0FxRHhiQTtBQUtBO0FyRG1iQTtBcUR4YkE7QUFLQTtBckRtYkE7QXFEeGJBO0FBS0E7QXJEbWJBO0FxRHhiQTtBQUtBO0FyRG1iQTtBcUR4YkE7QUFLQTtBckRtYkE7QXFEM2NBO0FBZ0NBO0FyRDJhQTtBcUQzY0E7QUFvQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QXJEb1pBO0FxRDdZQTtBQUNBO0FBR0E7QUFDQTtBckR3WUE7QXFEN1lBO0FBQ0E7QUFHQTtBQUNBO0FyRHdZQTtBcUQ3WUE7QUFDQTtBQUdBO0FBQ0E7QXJEd1lBO0FxRDdZQTtBQUNBO0FBR0E7QUFDQTtBckR3WUE7QXFEN1lBO0FBQ0E7QUFHQTtBQUNBO0FyRHdZQTtBcUQ3WUE7QUFDQTtBQUdBO0FBQ0E7QXJEd1lBO0FxRDdZQTtBQUNBO0FBR0E7QUFDQTtBQU1BO0FBQ0E7QXJEaVlBO0FxRDlYQTtBQUdBO0FBQ0E7QUFpQkE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUV6TkE7QUFJQTtBRmlOQTtBRWhOQTtBQVVBO0FGc01BO0FFck1BO0FGNE1BO0FBQ0E7QUU3TkE7QUFJQTtBRndOQTtBRXZOQTtBQVVBO0FGNk1BO0FFNU1BO0FGaU5BO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUUzT0E7QUFJQTtBRmtPQTtBRWpPQTtBQVVBO0FGdU5BO0FFdE5BO0FGOE5BO0FBQ0E7QUUvT0E7QUFJQTtBRjBPQTtBRXpPQTtBQVVBO0FGK05BO0FFOU5BO0FGbU9BO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFNVBBO0FBSUE7QUZvUEE7QUVuUEE7QUFVQTtBRnlPQTtBRXhPQTtBRitPQTtBQUNBO0FFaFFBO0FBSUE7QUYyUEE7QUUxUEE7QUFVQTtBRmdQQTtBRS9PQTtBRm9QQTtBQUNBO0FBS0E7QXBDek1BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FvQ3lMQTtBbkNsUkE7QW1Da1JBO0FuQzNRQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FtQ29RQTtBbkMxUEE7QUFDQTtBQUNBO0FBSUE7QW1Db1BBO0FuQzlOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW1DeU5BO0FuQ2pOQTtBbUNpTkE7QXBDbkhBO0FBQ0E7QUFDQTtBb0NpSEE7QXBDM0dBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7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Q0E7QUR5SkE7QUNySkE7QUFDQTtBRHdKQTtBQUNBO0FBR0E7QUFvQkE7QUFDQTtBQUtBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBOUR1VEE7QThEelRBO0FBS0E7QTlEb1RBO0E4RHpUQTtBQVNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUlBO0FDOU5BO0FEMUJBO0FBNlBBO0FBQ0E7QUFDQTtBQUNBO0FBaFFBO0FBb1FBOztBdEV0U0E7O0F3RUVBO0F4RUNBO0FFSEE7OztBc0VPQTtBeEVrQkE7O0F3RWZBO0F4RVZBOztBd0VhQTtBeEVWQTtBRUhBOzs7QXNFa0JBO0F4RU9BOztBd0VKQTtBeEVyQkE7O0F3RXdCQTtBeEVyQkE7QUVIQTs7O0FzRTZCQTtBeEVKQTs7QXdFT0E7QXhFaENBOztBd0VtQ0E7QXhFaENBO0FFSEE7OztBc0V3Q0E7QXhFZkE7O0F3RWtCQTtBeEUzQ0E7O0F3RThDQTtBeEUzQ0E7QUVIQTs7O0FzRW1EQTtBeEUxQkE7O0F3RTZCQTtBeEV0REE7O0F3RXlEQTtBeEV0REE7QUVIQTs7O0FzRThEQTtBeEVyQ0E7O0F3RXdDQTtBeEVqRUE7O0F3RW9FQTtBeEVqRUE7QUVIQTs7O0FzRXlFQTtBeEVoREE7O0F3RW1EQTtBQzVFQTtBQVNBO0FDSkE7QUNlQTtBQUNBO0FBQ0E7QUFDQTtBRGZBO0FBQ0E7QW5DSEE7QS9CdWlCQTtBa0V4aUJBO0FuQ1dBO0FBS0E7QUFDQTtBbUNUQTtBQ3VCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRWtnQkE7QWtFaGlCQTtBQ2lDQTtBRGpDQTtBQ3VDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FuRXFmQTtBa0VoaUJBO0FDOENBO0FEOUNBO0FDbURBO0FEbkRBO0FDdURBO0FEbkRBO0FDaUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QW5Fb2RBO0FrRTVoQkE7QUMyRUE7O0FDNUZB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QUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUNBO0FBSUE7QTlENU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0E4RGtPQTtBQU5BO0E3RHJUQTtBNkRxVEE7QTdEOVNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QTZEdVNBO0E3RDdSQTtBQUNBO0FBQ0E7QUFJQTtBNkR1UkE7QTdEalFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBNkQ0UEE7QTdEcFBBO0E2RG9QQTtBOUR0SkE7QUFDQTtBQUNBO0E4RG9KQTtBOUQ5SUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBOERvSUE7QTlEaklBO0FBQ0E7QThEZ0lBO0E5RDFFQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QThEa0VBO0E5RC9EQTtBQUNBO0E4RDhEQTtBOURiQTtBQUNBO0E4RG9CQTtBOURaQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QThERkE7QUFHQTtBOUQ2Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0E4RHJFQTtBQUNBO0FBR0E7QTlEclFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0E4RDJQQTtBQU5BO0E5RGxOQTtBOERrTkE7QTlEL0tBO0FBQ0E7QUFDQTtBOEQ2S0E7QTlEdktBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QThEa0pBO0E5RC9JQTtBQUNBO0E4RDhJQTtBOURuR0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0E4RGdGQTtBOUQ3RUE7QUFDQTtBOEQ0RUE7QTlEdENBO0FBQ0E7QThENkNBO0E5RHJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBVUE7QThEdUJBO0FBR0E7QTlEb0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFtQkE7QUFDQTtBOEQ1Q0E7QUFDQTtBQUdBO0E5RDlSQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBOEQrUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QTlEM09BO0E4RDJPQTtBOUR4TUE7QUFDQTtBQUNBO0E4RHNNQTtBOURoTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBOEQyS0E7QTlEeEtBO0FBQ0E7QThEdUtBO0E5RDVIQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QThEeUdBO0E5RHRHQTtBQUNBO0E4RHFHQTtBOUQvREE7QUFDQTtBOERrRkE7QTlEMUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFVQTtBOEQ0REE7QUFHQTtBOURqQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQW1CQTtBQUNBO0E4RFBBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFhQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUdBO0FBQ0E7QS9FeUZBO0ErRXRGQTtBQUlBO0EvRWtGQTtBK0U3R0E7QUFnQ0E7QUFDQTtBQWpDQTtBQThDQTtBQUNBO0FBL0NBO0FuRjViQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTRFMmRBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBbkZBO0FDeFJBO0FBQ0E7QUE4QkE7QUFNQTs7O0FIMldBO0FHblZBOzs7Ozs7QUFBQTtBQW9CQTtBRHlTQTtBQUNBO0FDeFhBO0FEcVJBO0FDblJBO0FEbVJBO0FDL1FBO0FBRUE7QUQ2UUE7QUMxUUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTtBRCtQQTtBQzdQQTtBaEZ5WEE7QStFNUhBO0FDdFBBO0FoRmtYQTtBK0U1SEE7QUNoTkE7Ozs7QUFBQTtBaEY0VUE7QStFNUhBO0FDaE5BOzs7O0FBQUE7QWhGNFVBO0ErRTVIQTtBQ2hOQTs7OztBQUFBO0FoRjRVQTtBK0U1SEE7QUNoTkE7Ozs7QUFBQTtBaEY0VUE7QStFNUhBO0FDaE5BOzs7O0FBQUE7QWhGNFVBO0ErRTVIQTtBQ2hOQTs7OztBQUFBO0FoRjRVQTtBK0U1SEE7QUNoTkE7Ozs7QUFBQTtBQVVBO0FEc01BO0FDbk1BO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUQyTEE7QUN6TEE7QUR5TEE7QUM1VUE7QUQ0VUE7QXBENWFBO0FBQ0E7QUFDQTtBcURvR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FENlRBO0FDNVRBO0FoRndiQTtBK0U1SEE7QUQ1YUE7QUFDQTtBQzJhQTtBRHhhQTtBQUNBO0FBQ0E7QUFDQTtBQ3FhQTtBRGphQTtBQUNBO0FBQ0E7QUMrWkE7QXBENWFBO0FBQ0E7QUFDQTtBcUR5SEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRDZTQTtBQzFTQTtBRDBTQTtBQ3JTQTtBQUNBO0FEZ2RBO0FBRUE7O0F2Ri9sQkE7O0F5RkVBO0F6RkNBO0FFSEE7OztBdUZPQTtBekZrQkE7O0F5RmZBO0F6RlZBOztBeUZhQTtBekZWQTtBRUhBOzs7QXVGa0JBO0F6Rk9BOztBeUZKQTtBaEZyQkE7QUFZQTtBVFpBOztBeUYwQkE7QXpGdkJBO0FFSEE7OztBdUYrQkE7QXpGTkE7O0F5RlNBO0FuRWxDQTs7Ozs7Ozs7QW1FMkNBO0FsRTNDQTtBQVNBO0FWVEE7Ozs7Ozs7OztBNEV1REE7QXpGdkRBOztBeUYwREE7QXpGdkRBO0FFSEE7OztBdUYrREE7QXpGdENBOztBeUZ5Q0E7QUM3Q0E7QUFFQTs7O0FBS0E7QUFDQTtBQU5BOzs7QUFVQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZEE7OztBQWlCQTtBQUNBO0FBQ0E7QUFDQTtBQXBCQTs7O0FBdUJBO0FBQ0E7QUFDQTtBQXpCQTs7O0FBNEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBeENBOzs7QTdFWEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQUE7QTZFR0E7OztBQStDQTtBQUNBO0FBaERBOzs7QUFvREE7QUFDQTtBQUNBO0FBQ0E7QWxGK2RBO0FrRnRoQkE7OztBQTBEQTtBQTFEQTs7Ozs7O0FqRWlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaUVkQTtBQW5FQTs7Ozs7O0FqRXVKQTtBQUNBO0FBQ0E7QWlFekpBOzs7Ozs7Ozs7OztBakUrSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBaUV6S0E7Ozs7Ozs7Ozs7O0FqRTRLQTtBQUNBO0FpRTdLQTs7Ozs7Ozs7Ozs7Ozs7OztBakVtT0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpRTNPQTs7Ozs7Ozs7Ozs7Ozs7OztBakU4T0E7QUFDQTtBaUUvT0E7Ozs7OztBakVnU0E7QUFDQTtBakJxUEE7QWtGdGhCQTs7Ozs7O0FBc0VBO0FBdEVBOzs7Ozs7QWpFeVNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpRS9TQTs7Ozs7O0FqRWlFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBaUVNQTtBQXZGQTs7Ozs7O0FqRXVKQTtBQUNBO0FBQ0E7QWlFekpBOzs7Ozs7Ozs7OztBakUrSkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBaUVwTEE7Ozs7Ozs7Ozs7O0FqRXVMQTtBQUNBO0FpRXhMQTs7Ozs7Ozs7Ozs7Ozs7OztBakVtT0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FpRXRQQTs7Ozs7Ozs7Ozs7Ozs7OztBakV5UEE7QUFDQTtBaUUxUEE7Ozs7OztBakVnU0E7QUFDQTtBakJxUEE7QWtGdGhCQTs7Ozs7O0FBMEZBO0FBQ0E7QUEzRkE7Ozs7OztBakV5U0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QWlFek1BOzs7Ozs7QWpFckNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FpRTBCQTtBQUxBOzs7Ozs7QWpFaURBO0FBQ0E7QUFDQTtBaUVuREE7Ozs7Ozs7Ozs7O0FqRXlEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0FpRTlFQTs7Ozs7Ozs7Ozs7QWpFaUZBO0FBQ0E7QWlFbEZBOzs7Ozs7Ozs7Ozs7Ozs7O0FqRTZIQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QWlFaEpBOzs7Ozs7Ozs7Ozs7Ozs7O0FqRW1KQTtBQUNBO0FpRXBKQTs7Ozs7O0FqRTBMQTtBQUNBO0FpRTNMQTs7Ozs7O0FqRW1NQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBaUUvU0E7OztBakVpRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWlFMENBO0FBM0hBOzs7QWpFdUpBO0FBQ0E7QUFDQTtBaUV6SkE7Ozs7O0FqRStKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FpRXpLQTs7Ozs7QWpFNEtBO0FBQ0E7QWlFN0tBOzs7Ozs7O0FqRW1PQTtBQUNBO0FBQ0E7QUFJQTtBQUNBO0FBQ0E7QWlFM09BOzs7Ozs7O0FqRThPQTtBQUNBO0FpRS9PQTs7O0FqRWdTQTtBQUNBO0FpRWpTQTs7O0FqRXlTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FpRWhUQTs7O0F0Rm5CQTtBT21CQTtBQUNBO0FBQ0E7QUFDQTtB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QUFDQTtBQUdBO0FBQ0E7QXdKcEVBO0F4SjBJQTtBQUNBO0FBQ0E7QXdKNUlBO0F4SmtKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBZUE7QUFDQTtBQUNBO0F3SnZLQTtBeEowS0E7QUFDQTtBd0ozS0E7QXhKc05BO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBd0p6T0E7QXhKNE9BO0FBQ0E7QXdKN09BO0F4Sm1SQTtBQUNBO0F3SjlRQTtBQUNBO0F6S2tnQkE7QXlLbmdCQTtBQUlBO0FBQ0E7QUFJQTtBeEo2UUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBd0o3UUE7QTVIMkpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTRIMUpBO0FBQ0E7QUFDQTs7QWpMakVBOztBa0xFQTtBbExDQTtBRUhBOzs7QWdMT0E7QWxMa0JBOztBa0xmQTtBbExWQTs7QWtMYUE7QWxMVkE7QUVIQTs7O0FnTGtCQTtBbExPQTs7QWtMSkE7QTVKckJBOzs7Ozs7OztBNEo4QkE7QTNKOUJBO0FBU0E7QXZCVEE7O0FrTG1DQTtBbExoQ0E7QUVIQTs7O0FnTHdDQTtBbExmQTs7QWtMa0JBO0FsTDNDQTs7QWtMOENBO0FsTDNDQTtBRUhBOzs7QWdMbURBO0FsTDFCQTs7QWtMNkJBO0FoTHREQTs7O0FnTDBEQTtBbEwxREE7O0FrTDZEQTtBbEwxREE7QUVIQTs7O0FnTGtFQTtBbEx6Q0E7O0FrTDRDQTtBNUpyRUE7Ozs7Ozs7O0E0SjhFQTtBM0o5RUE7QUFTQTtBNkJUQTtBQW1EQTtBQ1lBO0FyRC9EQTs7QWtMc0ZBO0FsTG5GQTtBRUhBOzs7QWdMMkZBO0FsTGxFQTs7QWtMcUVBO0F6SzlGQTtBQVlBO0FUWkE7O0FrTG1HQTtBbExoR0E7QUVIQTs7O0FnTHdHQTtBbEwvRUE7O0FrTGtGQTtBbEwzR0E7O0FrTDhHQTtBbEwzR0E7QUVIQTs7O0FnTG1IQTtBbEwxRkE7O0FrTDZGQTtBbEx0SEE7O0FrTHlIQTtBbEx0SEE7QUVIQTs7O0FnTDhIQTtBbExyR0E7O0FrTHdHQTtBbExqSUE7O0FrTG9JQTtBbExqSUE7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Q0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0F4TDJjQTtBd0w3ZEE7O0FBcUJBO0FBckJBOzs7O0FBMEJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUE5QkE7QUFrQ0E7QUFDQTtBeEwwYkE7QXdMN2RBO0FBc0NBO0FBQ0E7QUF2Q0E7QUEyQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQS9DQTtBQWtEQTtBQWxEQTtBQXVEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUEvREE7QUFvRUE7QUFDQTtBQUNBO0FBQ0E7QUF2RUE7QUErRUE7QUFDQTtBQUNBO0F4TDRZQTtBd0w3ZEE7QUFvRkE7QUFDQTs7QWhNcktBOztBaU1FQTtBak1DQTtBRUhBOzs7QStMT0E7QWpNa0JBOztBaU1mQTtBak1WQTs7QWlNYUE7QWpNVkE7QUVIQTs7O0ErTGtCQTtBak1PQTs7QWlNSkE7QUNqQkE7QUFFQTtBMUx1aUJBO0EwTHppQkE7QUNGQTtBQUNBO0FBQ0E7QTNMeWlCQTtBMExyaUJBO0FBRUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBMUw4aEJBO0EwTHJpQkE7QUFZQTtBQUNBO0FBRUE7QUFDQTtBQUlBO0FBcEJBO0FBcUJBO0ExTGdoQkE7QTBMNWdCQTtBQUVBO0FBQ0E7QTFMeWdCQTtBMEw1Z0JBO0FBTUE7O0FFdkNBOzs7QUNHQTtBck1IQTs7QXFNTUE7QXJNSEE7QUVIQTs7O0FtTVdBO0FyTWNBOztBcU1YQTtBck1kQTs7QXFNaUJBO0FyTWRBO0FFSEE7OztBbU1zQkE7QXJNR0E7O0FxTUFBO0F4THpCQTs7Ozs7Ozs7O0F3TG1DQTtBck1uQ0E7O0FxTXNDQTtBck1uQ0E7QUVIQTs7O0FtTTJDQTtBck1sQkE7O0FxTXFCQTtBNUw5Q0E7QUFZQTtBVFpBOztBcU1tREE7QXJNaERBO0FFSEE7OztBbU13REE7QXJNL0JBOztBcU1rQ0E7QXhMM0RBOzs7Ozs7Ozs7QXdMcUVBO0FyTXJFQTs7QXFNd0VBO0FyTXJFQTtBRUhBOzs7QW1NNkVBO0FyTXBEQTs7QXFNdURBO0FDaEZBO0FBTUE7QUYwQkE7QUFFQTtBQUNBO0E1TDBnQkE7QTRMM2dCQTtBQUlBO0FBQ0E7QTVMc2dCQTtBNExqZ0JBO0FBQ0E7QUFYQTtBQW1CQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUpBO0F2TC9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBdUx1Q0E7QUFXQTtBQVhBO0FBY0E7QUFDQTtBQWZBO0FBbUJBO0FBbkJBO0FBc0JBO0FBQ0E7QUFDQTtBQUNBO0FBekJBO0FBK0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QTVMK2NBO0E0TGxmQTtBQXVDQTtBQXZDQTtBQTJDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWpEQTtBQXNEQTtBQUNBO0FBQ0E7QUF4REE7QUEyREE7QUFDQTtBNUxzYkE7QTRMamJBO0FBRUE7QUFuRUE7QUEwRUE7QUExRUE7QUFnRkE7QTVMa2FBO0E0TGxmQTtBQW1GQTtBQW5GQTtBQXVGQTtBNUwyWkE7QTRMbGZBO0FBNEZBO0FBNUZBOzs7O0FBc0dBO0FBQ0E7QUFDQTtBNUwwWUE7QTRMcllBO0FHakVBO0FBQ0E7QUFDQTtBQUNBO0FIOERBO0FHN0pBO0FBQ0E7QUFDQTtBSDJKQTtBR3hKQTtBSHdKQTtBR3BKQTtBSG9KQTtBR2hKQTtBQUNBO0FBQ0E7QUFDQTtBSDZJQTtBRzFJQTtBSDBJQTtBR3RJQTtBL0wyZ0JBO0E0THJZQTtBR3BIQTtBL0x5ZkE7QTRMcllBO0F2TDVKQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBQTtBQUNBO0FMd2hCQTtBNExyWUE7QUd4R0E7QUh3R0E7QUdyR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FIZ0dBO0FHM0ZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBSHNGQTtBR2pGQTtBSGlGQTs7QUczRUE7QUgyRUE7QUFnQkE7QUFoQkE7QUFxQkE7QUFDQTtBQVdBO0FBRUE7QUFGQTtBQU1BO0FBTkE7O0FBV0E7QUFDQTtBQUNBO0FBQ0E7QUFLQTs7QUdySEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBL0xrY0E7QTRMalZBOztBR2pOQTtBQUNBO0FBQ0E7QUgrTUE7O0FHNU1BO0FINE1BOztBR3hNQTtBSHdNQTs7QUdwTUE7QUFDQTtBQUNBO0FBQ0E7QUhpTUE7O0FHOUxBO0FIOExBOztBRzFMQTtBL0wyZ0JBO0E0TGpWQTs7QUd4S0E7QS9MeWZBO0E0TGpWQTs7QXZMaE5BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUx3aEJBO0E0TGpWQTs7QUc1SkE7QUg0SkE7O0FHekpBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBSG9KQTs7QUcvSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FIMElBOztBR3JJQTtBSHFJQTs7OztBRy9IQTtBQUNBO0FIeUlBOztBcE12T0E7O0F3TUVBO0F4TUNBO0FFSEE7OztBc01PQTtBeE1rQkE7O0F3TWZBO0F4TVZBOztBd01hQTtBeE1WQTtBRUhBOzs7QXNNa0JBO0F4TU9BOztBd01KQTtBeE1yQkE7O0F3TXdCQTtBeE1yQkE7QUVIQTs7O0FzTTZCQTtBeE1KQTs7QXdNT0E7QWxMaENBOzs7Ozs7OztBa0x5Q0E7QWpMekNBO0FBU0E7QWtMOEJBO0FBR0E7QUFDQTtBQUNBO0FqTWlnQkE7QWlNdGdCQTtBQVFBO0FBR0E7QUFDQTtBQUNBO0FBSUE7QUFDQTtBak1vZkE7QWlNcmZBO0FBSUE7QUFDQTtBQUxBO0FBUUE7QUFSQTtBQVlBO0FqTXllQTtBaU1uZUE7QUFHQTtBQVNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQXREQTtBQTJEQTtBQUNBO0FBR0E7QWhMZEE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QWdMRkE7QWhMcUNBO0FnTHJDQTtBaEx3RUE7QUFDQTtBQUNBO0FnTDFFQTtBaExnRkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWVBO0FBQ0E7QUFDQTtBZ0xyR0E7QWhMd0dBO0FBQ0E7QWdMekdBO0FoTG9KQTtBQUNBO0FBQ0E7QUFlQTtBQUNBO0FBQ0E7QWdMdktBO0FoTDBLQTtBQUNBO0FnTDNLQTtBaExpTkE7QUFDQTtBZ0w1TUE7QWhMcVJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUErQkE7QUFDQTtBZ0x4VEE7QUFDQTtBQUlBO0FoTHlNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQTJCQTtBQVVBO0FBQ0E7QWlMNVdBO0FBQ0E7QUFDQTtBQUNBO0ExTUhBOztBd011SkE7QXhNcEpBO0FFSEE7OztBc000SkE7QXhNbklBOztBd01zSUE7QXhNL0pBOztBd01rS0E7QXhNL0pBO0FFSEE7OztBc011S0E7QXhNOUlBOztBd01pSkE7QXhNMUtBOztBd002S0E7QXhNMUtBO0FFSEE7OztBc01rTEE7QXhNekpBOztBd000SkE7QUd6S0E7QUFDQTtBQUdBO0FBR0E7QUFDQTtBQUNBO0FuTXdoQkE7QW1NcmhCQTtBQUVBO0FBQ0E7QTNNM0JBOztBd01rTUE7QXhNL0xBO0FFSEE7OztBc011TUE7QXhNOUtBOztBd01pTEE7QXhNMU1BOztBd002TUE7QXhNMU1BO0FFSEE7OztBc01rTkE7QXhNekxBOztBd000TEE7QXhNck5BOztBd013TkE7QXhNck5BO0FFSEE7OztBc002TkE7QXhNcE1BOztBd011TUE7QXhNaE9BOztBd01tT0E7QXhNaE9BO0FFSEE7OztBc013T0E7QXhNL01BOztBd01rTkE7QXhNM09BOztBd004T0E7QXhNM09BO0FFSEE7OztBc01tUEE7QXhNMU5BOztBd002TkE7QXhNdFBBOztBd015UEE7QXhNdFBBO0FFSEE7OztBc004UEE7QXhNck9BOztBd013T0E7QXJLalFBOztBcUtvUUE7QUlwUUE7QUFZQTtBQ0dBO0FBR0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUdBOztBQUdBO0FBRUE7O0FBQ0E7QUFHQTs7QUFDQTtBQUtBO0ExS3JDQTtBQUNBO0FBQ0E7QTJLR0E7QUFHQTtBRGlDQTtBQ2hCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBRERBO0FDSUE7QUFDQTtBQUNBO0FETkE7QUNVQTtBQUNBO0FBQ0E7QURSQTtBQ2lDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEOUNBO0FDa0RBO0FBQ0E7QURuREE7QUN5REE7QUFDQTtBQUNBO0FBQ0E7QUR6REE7QUNzRUE7QUFDQTtBQUNBO0FEOUdBO0FBNENBO0FBQ0E7QUFDQTtBQUtBOztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBTkE7QUFTQTtBQUNBO0FBVkE7QUFhQTtBQUNBO0E3TWhGQTs7QXdNeVZBO0F4TXRWQTtBRUhBOzs7QXNNOFZBO0F4TXJVQTs7QXdNd1VBO0F4TWpXQTs7QXdNb1dBO0F4TWpXQTtBRUhBOzs7QXNNeVdBO0F4TWhWQTs7QXdNbVZBO0F4TTVXQTs7QXdNK1dBO0F4TTVXQTtBRUhBOzs7QXNNb1hBO0F4TTNWQTs7QXdNOFZBO0F4TXZYQTs7QXdNMFhBO0F4TXZYQTtBRUhBOzs7QXNNK1hBO0F4TXRXQTs7QXdNeVdBO0FsTGxZQTs7Ozs7Ozs7QWtMMllBO0FqTDNZQTtBQVNBO0E2QlRBO0FBbURBO0FDWUE7QXJEL0RBOztBd01tWkE7QXhNaFpBO0FFSEE7OztBc013WkE7QXhNL1hBOztBd01rWUE7QXhNM1pBOztBd004WkE7QXhNM1pBO0FFSEE7OztBc01tYUE7QXhNMVlBOztBd002WUE7QXhNdGFBOztBd015YUE7QXhNdGFBO0FFSEE7OztBc004YUE7QXhNclpBOztBd013WkE7QXJLamJBOztBcUtvYkE7QUlwYkE7QUFZQTtBR1lBO0FBZ0JBOztBUGtaQTtBTzFYQTs7QVA2WEE7QU9sYUE7QUFDQTtBQUdBO0FBSUE7QUFDQTtBQUNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBTUE7QTVLOURBO0FBQ0E7QUFDQTtBMktHQTtBQUdBO0FDMERBO0FEekNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFTQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQ2lCQTtBRFFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUMxQ0E7QUFDQTtBQUdBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUdBOzs7QUFHQTtBQUNBO0EvTWpIQTs7QXdNNGhCQTtBeE16aEJBO0FFSEE7OztBc01paUJBO0F4TXhnQkE7O0F3TTJnQkE7QXhNcGlCQTs7QXdNdWlCQTtBeE1waUJBO0FFSEE7OztBc000aUJBO0F4TW5oQkE7O0F3TXNoQkE7QXhNL2lCQTs7QXdNa2pCQTtBeE0vaUJBO0FFSEE7OztBc011akJBO0F4TTloQkE7O0F3TWlpQkE7QXhNMWpCQTs7QXdNNmpCQTtBeE0xakJBO0FFSEE7OztBc01ra0JBO0F4TXppQkE7O0F3TTRpQkE7QXhNcmtCQTs7QXdNd2tCQTtBeE1ya0JBO0FFSEE7OztBc002a0JBO0F4TXBqQkE7O0F3TXVqQkE7QXhNaGxCQTs7QXdNbWxCQTtBeE1obEJBO0FFSEE7OztBc013bEJBO0F4TS9qQkE7O0F3TWtrQkE7QXJLM2xCQTs7QXFLOGxCQTtBSTlsQkE7QUFZQTtBSVNBO0FBR0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0E3SzlCQTtBQUNBO0FBQ0E7QTJLR0E7QUFHQTtBQUNBO0F0TStoQkE7QXdNMWdCQTtBQUVBO0FBTUE7QUZiQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUVYQTtBRm9DQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFOUNBO0FBQ0E7QUFDQTtBRjhDQTtBQUVBO0FBQ0E7QUFHQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBU0E7QUFJQTtBQUNBO0FBQ0E7QUVsRUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFkQTtBQWtCQTs7Iiwic291cmNlUm9vdCI6IiJ9*//**
 * Copyright © Magefan (support@magefan.com). All rights reserved.
 * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement).
 *
 * Glory to Ukraine! Glory to the heroes!
 */

 .clearfix:after {
    content:"";
    display:table;
    clear:both;
}

.post-holder {
    padding-bottom: 20px;
    margin-bottom: 20px;
}
.blog-page-list .post-holder {border-bottom: 1px solid #eee}

.post-holder .post-header {position:relative;padding: 1rem 2rem 0 2rem;}

.post-holder .post-header .post-info {padding: 0;}
.post-holder .post-header .post-info .item {display: inline-block}
.post-holder .post-header .post-info .dash {display: none; /* fix for old templates */}
.post-holder .post-header .post-info .label {font-weight: 700;}
.post-holder .post-header .post-info .value {font-style: italic;}
.post-holder .post-header .post-info .item::after {display: inline-block; content: ' | ';color:#b9b9b9}
.post-holder .post-header .post-info .item:last-child::after{display: none}

.post-list {
    margin-top: 0px;
    margin-bottom: 20px;
    list-style: none;
}
.post-list-wrapper .post-list {padding-left: 0}

.post-list .post-content .post-read-more {padding-top:10px; float:right;}

.subcategory-links-wrapper ul,
.post-links-wrapper ul {list-style: none}

.post-content .post-description img {margin: 15px 0;max-width: 100%;height: auto}
.post-content .post-description ul,
.post-content .post-description ol {list-style-position: outside;}

.post-content .post-description .mfblog-contents li {display: list-item;}
.post-content .post-description .mfblog-contents li li {margin-left: 15px;}

.post-content .post-description .post-ftimg-hld {margin: 0 0 10px 0;}
.post-content .post-description .post-ftimg-hld img {width:100%; padding:0; margin:0; border-top-left-radius: 7px; border-top-right-radius: 7px;}

.post-content .post-description .mfblog-contents-toc {list-style: decimal;}
.post-content .post-description .mfblog-contents-toc li {margin-bottom: 1rem;}
.post-content .post-description .mfblog-contents-toc li > ol {margin-top: 1rem;}
.post-content .post-description .mfblog-contents-toc li:before {content: none;}
.post-content .post-description .mfblog-contents-toc li a {display: inline;}
.post-content .post-description .post-info .item {display: inline-block; position: absolute; top: 25px; right: 10px; background: #fff; padding: 0.5rem 1rem; border-radius: 200px; font-size: 1.2rem;}


/* Post Title */
.post-list .post-header .post-title-holder {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;}
.post-list .post-header .post-title {margin: 0;padding: 10px 0;}
.post-list .post-header .post-title a {text-decoration: none;font-size: 20px;font-weight: 700; color: #455a64; line-height: 1.1;}
.post-list .post-holder .post-header .addthis_toolbox a {margin-bottom: 0;}

.post-list .hidden {display:none;}
.post-view .post-bottom {margin-top:30px;}

.post-view .post-nextprev-hld  {margin-bottom: 30px;}
.post-view .post-nextprev-hld .nextprev-link {font-weight: 700;}
.post-view .post-nextprev-hld .prev-link {float:left}
.post-view .post-nextprev-hld .next-link {float:right}

/* Post Gallery */
.post-view .post-gallery {margin:15px 0 15px 0}
.post-view .post-gallery .gallery-image-hld {margin: 0 14px 14px 0; border:1px solid #ccc; display: block; float:left}
.post-view .post-gallery .gallery-image{padding: 0; margin:0; display:block}

.post-view .block {margin-bottom: 30px;}

/* Widget Gallery */
.widget.block-categories ul {padding: 0;margin: 0;list-style: none;}
.widget.block-categories ul li {padding: 5px 0 5px 9px;margin: 0;}
.widget.block-categories ul li a {font-weight: 600;}
.widget.block-categories ul ul {margin: 0;}

/* Widget RSS */
.widget.block-rss .rss-icon {float: left; width: 23px; padding-right: 10px;}

/* Widget Search */
.widget.blog-search {width:100%;margin-bottom: 40px;position: relative;float: right;}
.widget.blog-search .block-content {margin-bottom: 0;}
.widget.blog-search .block-content .form {position: relative;}
.widget.blog-search label {border: 0;clip: rect(0, 0, 0, 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;text-decoration: none;display: inline-block;float: right;}
.widget.blog-search .control {border-top: 0;margin: 0;padding: 0;clear: both;}
.widget.blog-search input {position: static;padding-right: 35px;margin: 0;left: -300%;}
.widget.blog-search .action.search {position: absolute;right: 10px;top: 0;bottom: 0;z-index: 1;height: 100%;margin: 0;padding: 0;display: inline-block;background-image: none;background: none;-moz-box-sizing: content-box;border: 0;box-shadow: none;line-height: inherit;text-decoration: none;text-shadow: none;font-weight: 400;}
.widget.blog-search .action.search:before {-webkit-font-smoothing: antialiased;content: '';margin: 0;vertical-align: top;display: inline-block;overflow: hidden;speak: none;width: 16px;height: 32px;background: url(../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/search-icon.svg) no-repeat -10px -7px;background-size: 35px;opacity: 0.5;}
.widget.blog-search .action.search > span {border: 0;clip: rect(0, 0, 0, 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}

/* Widget Tag Claud */
.widget.block-tagclaud .smallest{font-size: 0.75em}
.widget.block-tagclaud .small{font-size:1em}
.widget.block-tagclaud .medium{font-size:1.25em}
.widget.block-tagclaud .large{font-size:1.5em}
.widget.block-tagclaud .largest{font-size:2em}

/* Widget Archive */
.widget.block-archive .item {margin: 5px 0;}
.widget.block-archive .item {display: inline-block}
.widget.block-archive .item:after {content: "\\"; display:inline-block;padding-left: 5px}

/* Widget Recent */
.blog-widget-recent .post-list {padding: 0;margin: 0;}
.blog-widget-recent .post-holder {width: 31.2%;float: left;margin: 1%;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;background: white;border-radius: 7px;}
.post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {width: 96%; min-height: 345px; position: relative;}
@media (max-width: 767px) {
    .post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {min-height: 325px;}
}
.post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder:nth-child(2n+1) {clear: both;}
@media (max-width: 767px) {
    .post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {width: 96%;}
}
@media (min-width: 1200px) {
    .post-list-wrapper.blog-widget-recent:not(.blog-widget-recent-masonry) .post-holder {max-width: 300px;}
}
@media (max-width: 1024px) {
    .blog-widget-recent .post-holder {
        width: 98%;
    }
}
@media (max-width: 767px) {
    .blog-widget-recent .post-holder {
        width: 98%;
    }
}

.blog-widget-recent .post-description .post-text-hld {
    min-height: 150px;
    overflow-y: auto;
}

.blog-widget-recent-masonry .post-description .post-text-hld {
    max-height: none;
    min-height: 0;
}
.blog-widget-recent-masonry .post-description .post-ftimg-hld {
    width: 100%;
    margin: 0;
}

.mfblog-autoloader {text-align: center;}
.mfblog-autoloader .mfblog-show-onload {display: none;}


@media (max-width: 420px) {
    #mfblog_gcomments {max-width:345px; overflow-y: scroll;}
}

.blog-category-view .category-content,
.blog-tag-view .tag-content {padding-left: 0}

/* Posts List */
.widget.block-list-posts .block-content .item {
    padding: 8px 0 0 0;
}
.widget.block-list-posts .block-content .item .post-image {
    width: 60px;
    float: left;
    border-radius: 0;
    padding: 2px;
    background-color: #fff;
    border: 1px solid #e9e9e9;
    margin-right: 12px;
}
.widget.block-list-posts .block-content .item .post-image .post-item-link {
    display: inline-block;
}
.widget.block-list-posts .block-content .item .post-image .post-item-link img {
    width: 100%;
    height: auto;
    vertical-align: middle;
}
/* END Posts List */

/* Fix Related Products */
.blog-post-view .products-grid .product-item {
    display: inline-block;
    margin-left: 2%;
    width: calc((100% - 2%)/2);
}
.blog-post-view .product-item:nth-child(2n+1) {
    margin-left: 0;
}
.blog-post-view .products-grid .product-item .product-item-info {
    width: auto;
}
@media (min-width: 640px){
    .blog-post-view .products-grid .product-item {
        display: inline-block;
        margin-left: 2%;
        width: calc((100% - 4%)/3);
    }
    .blog-post-view .products-grid .product-item:nth-child(2n+1) {
        margin-left: 2%;
    }
    .blog-post-view .products-grid .product-item:nth-child(3n+1) {
        margin-left: 0;
    }
}
@media (min-width: 1024px){
    .blog-post-view .products-grid .product-item {
        width: calc((100% - 8%)/5);
        margin-left: 2%;
    }
    .blog-post-view .products-grid .product-item:nth-child(3n+1) {
        margin-left: 2%;
    }
    .blog-post-view .products-grid .product-item:nth-child(5n+1) {
        margin-left: 0;
    }
}

/* Icons */
.mf-blog-icon {width: 15px;height: 15px;display: inline-block;position: relative;top: 2px;background-size: cover;}
.mf-blog-icon.mfbi-calendar {background-image: url('../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/calendar-icon.svg')}
.mf-blog-icon.mfbi-folder {background-image: url('../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/folder-icon.svg')}
.mf-blog-icon.mfbi-comments {background-image: url('../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/comments-icon.svg')}
.mf-blog-icon.mfbi-tags {background-image: url('../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/tags-icon.svg')}
.mf-blog-icon.mfbi-user {background-image: url('../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/user-icon.svg')}
.mf-blog-icon.mfbi-views {background-image: url('../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/views-icon.svg')}
/* END Fix Related Products */
/* All Widget Templates ************************************************************************************************
***********************************************************************************************************************/
body.blog-page {
    --color-white: #ffffff;
    --color-green: #28a745;
    --color-yellow: #ffc107;
    --color-blue: #4db2ec;
    --color-black: #222222;
    --color-gray: #6c757d;
    --color-red: #dc3545;
    --border-color: #d5d6da;
}

/* Buttons */
.btn-white {background-color: #fff !important;color: #7d7d7d !important;border: 1px solid #bbb !important;}
.btn-white:hover {background-color: #4db2ec !important;color: #fff !important; border: 1px solid #4db2ec !important;}
.btn-black {background-color: #222 !important;color: #fff !important;border: 1px solid #222 !important;}
.btn-black:hover {background-color: #4db2ec !important;color: #fff !important;border: 1px solid #4db2ec !important;}
.btn-blue {background-color: #4db2ec !important;color: #fff !important;border: 1px solid #4db2ec !important;}
.btn-blue:hover {background-color: #222 !important;color: #fff !important;border: 1px solid #222 !important;}


/* Slider *************************************************************************************************************/
.post-slider .post-block .image-wrap {padding-bottom: 450px;}
/* END Slider *********************************************************************************************************/


.clearfix:after {content:"";display:table;clear:both;}

.post-holder {margin-bottom: 40px;border-radius: 0;}



/* Blog Post List *****************************************************************************************************/
.post-list {margin-top: 0;margin-bottom: 20px;list-style: none;padding-left: 0}
.post-list .post-item.post-holder {margin: 0 0 30px 0;padding: 0;display: block;}
.post-list .post-container {display: -ms-flexbox;display: flex;}

/* Post Image ************************************/
.post-list .post-image {-ms-flex: 0 0 30%;flex: 0 0 30%;width: 30%;order: 0;}
.post-list .post-image .image-container {position: relative;}
.post-list .post-image .image-wrap {display: block;line-height: 0;overflow: hidden;position: relative;padding-bottom: 70%;}
.post-list .post-image .image-wrap .bg-img {position: absolute;display: block;width: 100%;height: 100%;background-size: cover;background-position: center;}
.post-list .post-image .image-wrap img {width: 100%;height: auto;vertical-align: middle;}
/* Post Category */
.post-list .post-image .post-category {position: absolute;left: 0;bottom: 0;display: block;font-size: 0;line-height: 1;}
.post-list .post-image .post-category a {display: inline-block;margin: 0 5px 0 0;padding: 5px 10px;background: #000;color: #fff;font-size: 11px;line-height: 12px;font-weight: 500;text-decoration: none;text-transform: uppercase;
    /*-webkit-transition: all 0.3s;-ms-transition: all 0.3s;transition: all .3s ease;*/}
.post-list .post-image .post-category a:hover {background: #4db2ec;}

/* Post Info **************************************/
.post-list.modern .post-info {padding: 0 0 0 25px;flex: 0 0 70%;max-width: 70%;width: 70%;order: 1;box-sizing: border-box;}
/* Post Title */
.post-list .post-info .post-title-wrap h3 {margin: 0;}
.post-list .post-info .post-title-wrap h3 a {font-size: 20px;line-height: 25px;font-weight: 500;}
/* Post Data */
.post-list .post-info .post-data-wrap {font-size: 11px;font-family: sans-serif;}
.post-list .post-info .post-data-wrap .post-date {font-size: 11px; margin: 0;padding: 0;box-shadow: none;float: none;width: auto;}
.post-list .post-info .post-data-wrap a {font-weight: 600;}
/* Post Description */
.post-list .post-description {line-height: 21px;font-size: 13px;}
/* Post View */
.post-list .post-view {display: block;background: #000;color: #fff;font-size: 10px;font-weight: 600;text-align: center;line-height: 11px;position: relative;top: -5px;padding: 4px 6px;}
.post-list .post-view:after {position: absolute;left: 0;bottom: -3px;content: '';width: 0;height: 0;border-style: solid;border-width: 3px 3px 0 0;border-color: #000 transparent transparent;}
/* Read More */
.post-read-more a.post-read {display: inline-block;color: #fff;background-color: #4db2ec;font-size: 13px;font-weight: 500;line-height: 1;padding: 10px 15px;}
.post-read-more a.post-read:hover {color: #fff; text-decoration: none;}

@media (max-width: 768px) {
    .post-list .post-item.post-holder {margin-bottom: 1.5rem;}
}
@media (max-width: 767px) {
    .post-list .post-image .post-category {display: none;}
    .post-list .post-info {padding: 0 0 0 15px;}
    .post-list.modern .post-description {display: none;}
    .post-read-more a.post-read {display: none;}
}
@media (max-width: 640px) {
    .post-list .post-info .post-title-wrap h3 a {font-size: 14px;font-weight: 600;line-height: 1.4;display: inline-block;
        /*max-height: 39px;overflow: hidden;*/}
}


/* Images Format *******************************************/
.post-image .image-wrap._16x9 {padding-bottom: 35% !important;}
.post-image .image-wrap._4x3 {padding-bottom: 67% !important;}
.post-image .image-wrap._3x2 {padding-bottom: 55% !important;}
.post-image .image-wrap._1x1 {padding-bottom: 100% !important;}
@media (max-width: 768px) {

}
/* Blog Post List *****************************************************************************************************/


/* Blog Post List Modern **********************************************************************************************/
.post-list.modern .post-item.post-holder {margin: 0 0 30px 0;padding: 0 0 30px 0;}
.post-list.modern .post-info .post-title-wrap h3 a:hover {text-decoration: none;transition: all .2s ease;}
.post-list.modern .post-info .post-data-wrap a:hover {text-decoration: none;transition: all .2s ease;}
/* Blog Post List Modern **********************************************************************************************/


/* Post View **********************************************************************************************************/
/* Page Title */
/*.blog-post-view .page-title-wrapper .page-title {font-size: 35px;line-height: 1.2;margin-bottom: 20px;}*/
/* Category */
.blog-post-view .post-category a {display: inline-block;margin: 0 5px 0 0;padding: 5px 10px;background: #000;color: #fff;font-size: 11px;line-height: 12px;font-weight: 500;text-decoration: none;text-transform: uppercase;}

/* Post Data */
.blog-post-view .post-data-wrap {font-size: 13px;font-family: sans-serif;margin-bottom: 30px;}
.blog-post-view .post-data-wrap a {font-weight: 600;}
.blog-post-view .post-data {color: #bbbbbb;}
/* Post View */
/* Post Comments */
.blog-post-view .post-comments {margin-right: 20px;}
/* Social */
.blog-post-view .post-sharing {margin-bottom: 20px;}
/* Image */
.blog-post-view .post-featured-image {font-size: 0;margin-bottom: 20px;}
/* Tags */
.blog-post-view .post-tag {margin-bottom: 20px;}
.blog-post-view .post-tag .post-tag-title {display: inline-block;padding: 7px 12px;border: 1px solid #222;background: #222;color: #fff;line-height: 1;margin: 0 10px 10px 0;text-transform: uppercase;font-size: 11px;}
.blog-post-view .post-tag .post-tags a {display: inline-block;border: 1px solid var(--border-color); /*color: #222; */background: #fff;padding: 7px 12px;margin-right: 10px;line-height: 1;font-weight: 600;letter-spacing: 1px;font-size: 11px;text-transform: capitalize;}
.blog-post-view .post-tag .post-tags a.current,
.blog-post-view .post-tag .post-tags a:hover {text-decoration: none;opacity: .9;background: #333;color: #fff;}

/* Post Text */
.blog-post-view .post-description {margin-bottom: 30px;}
.blog-post-view .post-description p {font-size: 1.4rem;line-height: 1.7;}

/* Post Bottom *****************************************/
.post-view .post-bottom {margin-top:30px;}

/* Post Sharing Bottom */
.post-view-modern .post-sharing-bottom {}
.post-sharing-bottom {padding: 30px 0;margin-bottom: 30px;border-top: 1px solid var(--border-color);border-bottom: 1px solid var(--border-color);}
.post-sharing-bottom .share-elements {text-align: center;}
.post-sharing-bottom .share-elements .icon-wrapper {display: inline-block;cursor: pointer;margin: 0 5px 5px 0;overflow: hidden;border: 0;text-decoration: none;text-transform: none;background-color: transparent;color: inherit;transition: all .2s ease-in-out;border-radius: 0;}
.post-sharing-bottom .share-elements .icon-wrapper.icon-facebook {background-color: rgb(59, 89, 152);}
.post-sharing-bottom .share-elements .icon-wrapper.icon-twitter {background-color: rgb(0, 0, 0);}
.post-sharing-bottom .share-elements .icon-wrapper.icon-pinterest {background-color: rgb(203, 32, 39);}
.post-sharing-bottom .share-elements .icon-wrapper.icon-linkedin {background-color: rgb(2, 136, 209);}
.post-sharing-bottom .share-elements .icon-wrapper .icon {line-height: 48px;height: 48px;width: 48px;display: inline-block;overflow: hidden;vertical-align: top;}
.post-sharing-bottom .share-elements .icon-wrapper .label {font-size: 13px;line-height: 48px;height: 48px;color: #ffffff;display: inline-block;padding: 0 15px 0 3px;vertical-align: top;}
.post-sharing-bottom .share-elements .icon-wrapper:hover {transform: translateY(-4px);}

/* Post Gallery */
/*.blog-post-view .post-gallery {display: flex;flex-wrap: wrap;}*/
.blog-post-view .post-gallery {display: grid;grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));grid-gap: 1rem;margin-bottom: 20px;}
.blog-post-view .post-gallery .gallery-image-hld {display: inline-block;}
.blog-post-view .post-gallery .gallery-image-hld img {}

/* Post Navigation */
.blog-post-view .post-nextprev  {display: flex;padding: 20px 0;margin-bottom: 30px;border-top: 1px solid var(--border-color);border-bottom: 1px solid var(--border-color);}
.blog-post-view .post-nextprev .nextprev-link {display: block;font-size: 20px;/*color: #222222;*/font-weight: 600;text-align: right;opacity: 0.7;}
.blog-post-view .post-nextprev .nextprev-link:hover {text-decoration: none;}
.blog-post-view .post-nextprev .nextprev-link span {display: block;color: #bbbbbb;font-size: 14px;font-weight: normal;}

/* Block Related */
.blog-post-view .post-bottom .block.related {margin-bottom: 0;}
.blog-post-view .post-bottom .block.related .block-title {margin: 0 0 25px;padding: 5px 0;border-bottom: 1px solid #222222;line-height: 1.42857143;}
.blog-post-view .post-bottom .block.related .block-title strong {border-bottom: 3px solid #222222;padding-bottom: 2px;font-weight: 400;font-size: 18px;}

/* Related Posts */
.mfblog-related-posts-block.block.related .post-list {display: -ms-flexbox;display: flex;-ms-flex-wrap: wrap;flex-wrap: wrap;
    position: relative;overflow: hidden;margin-left: -10px;margin-right: -10px;}
.mfblog-related-posts-block.block.related .post-list .post-item {-webkit-flex-direction: column;-ms-flex-direction: column;flex-direction: column;margin-bottom: 2rem !important;-ms-flex: 0 0 25%;flex: 0 0 25%;max-width: 25%;padding-left: 10px;padding-right: 10px;width: 25%; box-sizing: border-box;}

.mfblog-related-posts-block.block.related .post-list .post-item .image-container {
    -ms-flex: 0 0;flex: 0 0;width: 100%;display: block;order: 0;margin-bottom: 10px;}
.mfblog-related-posts-block.block.related .post-list .image-container .image-wrap {display: block;line-height: 0;overflow: hidden;position: relative;padding-bottom: 70%;}
.mfblog-related-posts-block.block.related .post-list .image-container .image-wrap .bg-img {position: absolute;display: block;width: 100%;height: 100%;background-size: cover;background-position: center;}
.mfblog-related-posts-block.block.related .post-list .post-item .block-info {padding-left: 0 !important;padding-right: 0 !important;}
.mfblog-related-posts-block.block.related .post-list .block-info h3.post-title a {font-size: 14px !important;line-height: 20px !important;font-weight: 600 !important; /*color: #222222; */}
@media (max-width: 767px) {
    .mfblog-related-posts-block.block.related .post-list .post-item {flex: 0 0 50%;max-width: 50%;}
}

/* Related Products */
.mfblog-related-products-block.block.related .block-title {margin: 0 0 25px;padding: 5px 0;border-bottom: 1px solid #222222;line-height: 1.42857143;}
.mfblog-related-products-block.block.related .block-title strong {border-bottom: 3px solid #222222;padding-bottom: 2px;font-weight: 400;font-size: 18px;}

/* Block Comments */
.block.comments .c-count {margin: 0 0 20px;padding: 0;border-bottom: 1px solid #222222;font-weight: 400;}
.block.comments .c-count strong {border-bottom: 3px solid #222222;padding-bottom: 2px;font-weight: 400;font-size: 18px;display: inline-block;}
/* END Post Bottom *************************************/

@media (max-width: 767px) {
    .blog-post-view .page-title-wrapper .page-title {font-size: 20px;}
    .blog-post-view .post-nextprev .nextprev-link {font-size: 14px;line-height: 1.4;}
}
/* END Post View ******************************************************************************************************/


/* Animation Zoom */
.image-wrap .animation-type-zoom {display: block;line-height: 0;overflow: hidden;position: relative;}
.image-container .animation-type-zoom {-webkit-transition: transform .3s ease,opacity .3s;transition: transform .3s ease,opacity .3s;}
.image-container:hover .animation-type-zoom {transform: scale3d(1.1,1.1,1);  -webkit-transform: scale3d(1.1,1.1,1);}


/* Sidebar ************************************************************************************************************/
/* Block Search */
.widget.blog-search {width:100%;margin-bottom: 40px;position: relative;float: right;}
.widget.blog-search .block-content {margin-bottom: 0;}
.widget.blog-search .block-content .form {position: relative;}
.widget.blog-search  label {border: 0;clip: rect(0, 0, 0, 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;text-decoration: none;display: inline-block;float: right;}
.widget.blog-search .control {border-top: 0;margin: 0;padding: 0;clear: both;}
.widget.blog-search input {position: static;padding-right: 35px;margin: 0;left: -300%;}
.widget.blog-search .action.search {position: absolute;top: 0;right: 0;bottom: 0;height: 100%;z-index: 1;display: inline-block;-moz-box-sizing: content-box;border: 0;box-shadow: none;line-height: inherit;margin: 0;padding: 0 10px;text-decoration: none;text-shadow: none;font-weight: 400;border-radius: 0;}
.widget.blog-search .action.search:before {-webkit-font-smoothing: antialiased;content: '';margin: 0;vertical-align: top;display: inline-block;overflow: hidden;speak: none;width: 16px;height: 32px;background: url(../../frontend/Creativestyle/theme-papilart/pl_PL/Magefan_Blog/images/search-icon-white.svg) no-repeat -10px -7px;background-size: 35px;opacity: 1;}
.widget.blog-search .action.search > span {border: 0;clip: rect(0, 0, 0, 0);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}
.blog-search .actions .action.search {background: #222222;right: 0;padding: 0 10px;border-radius: 0;}

/* Posts List */
.widget.block-list-posts .post-list .post-item .image-container {flex: 0 0 30%;width: 30%;display: block;order: 0;}
/* Images */
/* Span Background */
.widget.block-list-posts .post-list .image-container .image-wrap {display: block;line-height: 0;overflow: hidden;position: relative;padding-bottom: 70%;}
.widget.block-list-posts .post-list .image-container .image-wrap .bg-img {position: absolute;display: block;width: 100%;height: 100%;background-size: cover;background-position: center;}
/* Post Info */
.widget.block-list-posts .post-list .post-item .block-info .post-item-name {font-size: 14px;line-height: 20px;font-weight: 600;text-decoration: none;color: #333333;}
.widget.block-list-posts .post-list .post-item .block-info .block-date {color: #bbbbbb;}
.widget.block-list-posts .post-list .post-item .block-info .block-date .post-data {font-size: 11px;}

/* Post Grid */
.widget.block-list-posts .post-list .post-item {-webkit-flex-direction: column;-ms-flex-direction: column;flex-direction: column;margin-bottom: 2rem !important;}
.widget.block-list-posts .post-list .post-item .image-container {-ms-flex: 0 0;flex: 0 0;width: 100%;display: block;order: 0;margin-bottom: 10px;}
.widget.block-list-posts .post-list .post-item .block-info {padding-left: 0 !important;padding-right: 0 !important;}
/* END Posts List */

/* New Post List */
.widget.block-posts-list .post-item {display: flex;gap: 1.5rem;}
.widget.block-posts-list .post-item .image-container {flex: 0 0 33.333333%;width: 33.333333%;align-self: flex-start;display: block;order: 0;margin-bottom: 10px;}
.widget.block-posts-list .post-item .image-container .image-wrap {display: block;position: relative;overflow: hidden;}
.widget.block-posts-list .post-item .image-container .image-wrap._4x3 {padding-bottom: 70%;}
.widget.block-posts-list .post-item .image-container .image-wrap .bg-img {display: block;position: absolute;width: 100%;height: 100%;max-width: 100%;background-size: cover;background-position: center;}
.widget.block-posts-list .post-item .block-info .post-title {margin: 0 0 0.5rem 0 !important;}
.widget.block-posts-list .post-item .block-info .post-title .post-item-name {display: block;font-size: 16px;line-height: 22px;font-weight: 500;text-decoration: none;-webkit-transition: all 300ms ease-in-out;-moz-transition: all 300ms ease-in-out;-o-transition: all 300ms ease-in-out;transition: all 300ms ease-in-out;}
.widget.block-posts-list .post-item .block-info .block-date {line-height: 1rem;}
.widget.block-posts-list .post-item .block-info .block-date .post-date {font-size: 11px;line-height: 1.2rem;color: #bbbbbb;font-family: sans-serif;}
.widget.block-posts-list .post-item .block-info .post-description {display: none;line-height: 21px;font-size: 13px;}
.widget.block-posts-list .post-item .block-info .read-more {display: none;}
/* END New Post List */

/* Archive */
.widget.block-archive .archive-item-link {font-weight: 600}

/* RSS Feed */
.widget.block-rss .rss-icon {width: 23px;filter: grayscale(100%);vertical-align: middle;}
/* End Sidebar ********************************************************************************************************/
/**
 * Copyright © Magefan (support@magefan.com). All rights reserved.
 * Please visit Magefan.com for license details (https://magefan.com/end-user-license-agreement).
 *
 * Glory to Ukraine! Glory to the heroes!
 */