@myxtra/authentication-green 1.16.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1117,7 +1117,7 @@ react-is/cjs/react-is.development.js:
1117
1117
  * LICENSE file in the root directory of this source tree.
1118
1118
  *)
1119
1119
  */
1120
- const wm = "data:text/css;base64,Lyogc3JjL3N0eWxlcy9yZXNldC5jc3MgKi8KYSwKYWJiciwKYWNyb255bSwKYWRkcmVzcywKYXBwbGV0LAphcnRpY2xlLAphc2lkZSwKYXVkaW8sCmIsCmJpZywKYmxvY2txdW90ZSwKYm9keSwKY2FudmFzLApjYXB0aW9uLApjZW50ZXIsCmNpdGUsCmNvZGUsCmRkLApkZWwsCmRldGFpbHMsCmRmbiwKZGl2LApkbCwKZHQsCmVtLAplbWJlZCwKZmllbGRzZXQsCmZpZ2NhcHRpb24sCmZpZ3VyZSwKZm9vdGVyLApmb3JtLApoMSwKaDIsCmgzLApoNCwKaDUsCmg2LApoZWFkZXIsCmhncm91cCwKaHRtbCwKaSwKaWZyYW1lLAppbWcsCmlucywKa2JkLApsYWJlbCwKbGVnZW5kLApsaSwKbWFyaywKbWVudSwKbmF2LApvYmplY3QsCm9sLApvdXRwdXQsCnAsCnByZSwKcSwKcnVieSwKcywKc2FtcCwKc2VjdGlvbiwKc21hbGwsCnNwYW4sCnN0cmlrZSwKc3Ryb25nLApzdWIsCnN1bW1hcnksCnN1cCwKdGFibGUsCnRib2R5LAp0ZCwKdGZvb3QsCnRoLAp0aGVhZCwKdGltZSwKdHIsCnR0LAp1LAp1bCwKdmFyLAp2aWRlbyB7CiAgYm9yZGVyOiAwOwogIGZvbnQ6IGluaGVyaXQ7CiAgZm9udC1zaXplOiAxMDAlOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKfQphcnRpY2xlLAphc2lkZSwKZGV0YWlscywKZmlnY2FwdGlvbiwKZmlndXJlLApmb290ZXIsCmhlYWRlciwKaGdyb3VwLAptZW51LApuYXYsCnNlY3Rpb24gewogIGRpc3BsYXk6IGJsb2NrOwp9CmJvZHkgewogIGxpbmUtaGVpZ2h0OiAxOwp9Cm9sLAp1bCB7CiAgbGlzdC1zdHlsZTogbm9uZTsKfQpibG9ja3F1b3RlLApxIHsKICBxdW90ZXM6IG5vbmU7Cn0KYmxvY2txdW90ZTphZnRlciwKYmxvY2txdW90ZTpiZWZvcmUsCnE6YWZ0ZXIsCnE6YmVmb3JlIHsKICBjb250ZW50OiAiIjsKICBjb250ZW50OiBub25lOwp9CnRhYmxlIHsKICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogIGJvcmRlci1zcGFjaW5nOiAwOwp9CgovKiBzcmMvc3R5bGVzL2dsb2JhbC5jc3MgKi8KOjpiYWNrZHJvcCwKOmhvc3QsCjpyb290IHsKICAtLW5ldXRyYWwtOTk5OiMwMDA7CiAgLS1uZXV0cmFsLTkwMDojMWIxZjI3OwogIC0tbmV1dHJhbC04MDA6IzJlM2I1NjsKICAtLW5ldXRyYWwtNzAwOiM0ODUyNmQ7CiAgLS1uZXV0cmFsLTYwMDojNjM3MDhhOwogIC0tbmV1dHJhbC01MDA6IzdjODlhMzsKICAtLW5ldXRyYWwtNDAwOiM5ZmFhYzA7CiAgLS1uZXV0cmFsLTMwMDojYmJjMWQzOwogIC0tbmV1dHJhbC0yMDA6I2ViZWRmNTsKICAtLW5ldXRyYWwtMTAwOiNmM2Y0ZmE7CiAgLS1uZXV0cmFsLTUwOiNmOWZhZmM7CiAgLS1uZXV0cmFsLTAwMDojZmZmOwogIC0tcHJpbWFyeS05MDA6IzAwM2MzNzsKICAtLXByaW1hcnktODAwOiMwMDU2NGY7CiAgLS1wcmltYXJ5LTcwMDojMDA4MDc3OwogIC0tcHJpbWFyeS02MDA6IzAwOWE4ZTsKICAtLXByaW1hcnktNTAwOiMwMGFiOWU7CiAgLS1wcmltYXJ5LTQwMDojMTliM2E4OwogIC0tcHJpbWFyeS0zMDA6IzgwZDVjZjsKICAtLXByaW1hcnktMjAwOiNjY2VlZWM7CiAgLS1wcmltYXJ5LTEwMDojZTVmN2Y1OwogIC0tcHJpbWFyeS01MDojZWZmOWY5OwogIC0tc3VjY2Vzcy0yMDA6I2YyZjllYzsKICAtLXN1Y2Nlc3MtNTAwOiMwMDlhM2U7CiAgLS1lcnJvci0yMDA6I2ZlZjRmNTsKICAtLWVycm9yLTMwMDojZjI5Njk5OwogIC0tZXJyb3ItNDAwOiNmZjVjNWM7CiAgLS1lcnJvci01MDA6I2U2MmQzMjsKICAtLWVycm9yLTYwMDojY2YyODJkOwogIC0td2FybmluZy0yMDA6I2ZmZmFmMzsKICAtLXdhcm5pbmctNTAwOiNkYzg2MzM7CiAgLS1kaXNjb3VudC01MDojZmRmMmY0OwogIC0tcHJpbWFyeS1ncmFkaWVudDpsaW5lYXItZ3JhZGllbnQoCiAgICAgIDEzMy41M2RlZywjMTU5YTk1IDI1LjU3JSwjMTBiOGIxIDc0LjI5JSk7CiAgLS1zaGFkb3ctY2FyZDowIDNweCA4cHggcmdiYSg0Niw1OSw4NiwuMSk7CiAgLS1zaGFkb3ctbmF2OjAgMCAxMnB4IHJnYmEoNDYsNTksODYsLjEyKTsKICAtLXNoYWRvdy1idXR0b246MCA4cHggOHB4IC01cHggcmdiYSgxLDE0MSwxMzYsLjIpOwogIC0tc2hhZG93LWZhYjowIDRweCA4cHggLTVweCByZ2JhKDEsMTQxLDEzNiwuMik7CiAgLS1zaGFkb3ctbW9kYWw6MCA3NnB4IDgwcHggcmdiKDAgMCAwLzclKSwwIDIxcHggMjRweCByZ2IoMCAwIDAvNSUpLDAgOHB4IDEwcHggcmdiKDAgMCAwLzQlKSwwIDNweCAzcHggcmdiKDAgMCAwLzIlKTsKICAtLWJvcmRlci1yYWRpdXMtc206NHB4OwogIC0tYm9yZGVyLXJhZGl1cy1tZDo4cHg7CiAgLS1ib3JkZXItcmFkaXVzLWxnOjE2cHg7CiAgLS1zcGFjaW5nLTE6NHB4OwogIC0tc3BhY2luZy0yOjhweDsKICAtLXNwYWNpbmctMzoxMnB4OwogIC0tc3BhY2luZy00OjE2cHg7CiAgLS1zcGFjaW5nLTU6MjBweDsKICAtLXNwYWNpbmctNjoyNHB4OwogIC0tc3BhY2luZy03OjI4cHg7CiAgLS1zcGFjaW5nLTg6MzJweDsKICAtLXNwYWNpbmctOTo0MHB4OwogIC0tc3BhY2luZy0xMDo0OHB4OwogIC0tc3BhY2luZy0xMTo1NnB4OwogIC0tc3BhY2luZy0xMjo2NHB4OwogIC0tZm9udC14dHJhOiJOZXVlIix1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLGJsaW5rbWFjc3lzdGVtZm9udCwiU2Vnb2UgVUkiLHJvYm90bywiSGVsdmV0aWNhIE5ldWUiLGFyaWFsLCJOb3RvIFNhbnMiLHNhbnMtc2VyaWYsIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJTZWdvZSBVSSBTeW1ib2wiLCJOb3RvIENvbG9yIEVtb2ppIjsKICAtLWRpc3BsYXktMS1tZWRpdW06NTAwIDNyZW0vMS4yIHZhcigtLWZvbnQteHRyYSk7CiAgLS1kaXNwbGF5LTItbWVkaXVtOjUwMCAyLjVyZW0vMS4yIHZhcigtLWZvbnQteHRyYSk7CiAgLS1kaXNwbGF5LTMtbWVkaXVtOjUwMCAycmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMS1yZWd1bGFyOjQwMCAxLjVyZW0vMS4zIHZhcigtLWZvbnQteHRyYSk7CiAgLS10aXRsZS0xLW1lZGl1bTo1MDAgMS41cmVtLzEuMyB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMi1yZWd1bGFyOjQwMCAxLjI1cmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMi1tZWRpdW06NTAwIDEuMjVyZW0vMS4yIHZhcigtLWZvbnQteHRyYSk7CiAgLS10aXRsZS0zLXJlZ3VsYXI6NDAwIDEuMTI1cmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMy1tZWRpdW06NTAwIDEuMTI1cmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tYm9keS0xLXJlZ3VsYXI6NDAwIDEuMTI1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tYm9keS0xLW1lZGl1bTo1MDAgMS4xMjVyZW0vMS41IHZhcigtLWZvbnQteHRyYSk7CiAgLS1ib2R5LTItcmVndWxhcjo0MDAgMXJlbS8xLjMgdmFyKC0tZm9udC14dHJhKTsKICAtLWJvZHktMi1tZWRpdW06NTAwIDFyZW0vMS4zIHZhcigtLWZvbnQteHRyYSk7CiAgLS1zdWJ0ZXh0LXJlZ3VsYXI6NDAwIDAuODc1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tc3VidGV4dC1tZWRpdW06NTAwIDAuODc1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tbGFiZWwtcmVndWxhcjo0MDAgMC42ODc1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tbGFiZWwtbWVkaXVtOjUwMCAwLjY4NzVyZW0vMS41IHZhcigtLWZvbnQteHRyYSk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICBmb250OiB2YXIoLS1ib2R5LTItcmVndWxhcik7CiAgbGV0dGVyLXNwYWNpbmc6IC4wMWVtOwp9Ci5zci1vbmx5IHsKICBib3JkZXItd2lkdGg6IDA7CiAgaGVpZ2h0OiAxcHg7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDFweDsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KOmhvc3QgKiwKOnJvb3QgKiB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgOmhvc3QsCiAgOnJvb3QgewogICAgZm9udDogdmFyKC0tYm9keS0xLXJlZ3VsYXIpOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvQW5jaG9yL0FuY2hvci5jc3MgKi8KLmFuY2hvciB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbSk7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgd2lkdGg6IGZpdC1jb250ZW50Owp9Ci5hbmNob3ItLWlubGluZSB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5hbmNob3ItLWlubGluZTpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwogICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgfQp9Ci5hbmNob3ItLWlubGluZTphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1wcmltYXJ5LTUwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwp9Ci5hbmNob3ItLWlubGluZTpub3QoOmFjdGl2ZSk6Zm9jdXMgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tcHJpbWFyeS03MDApOwp9Ci5hbmNob3ItLW5ldXRyYWwgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTYwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5hbmNob3ItLW5ldXRyYWw6aG92ZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tbmV1dHJhbC04MDApOwogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tbmV1dHJhbC04MDApOwogIH0KfQouYW5jaG9yLS1uZXV0cmFsOmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1uZXV0cmFsLTAwMCksIDAgMCAwIDEwcHggdmFyKC0tbmV1dHJhbC04MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7Cn0KLmFuY2hvci0tbmV1dHJhbDphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1zcGFjaW5nLTIpIHZhcigtLW5ldXRyYWwtMTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC04MDApOwp9Ci5hbmNob3ItLW5ldXRyYWw6Zm9jdXM6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1uZXV0cmFsLTEwMCksIDAgMCAwIDEwcHggdmFyKC0tbmV1dHJhbC04MDApOwp9Ci5hbmNob3ItLXByaW1hcnkgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5hbmNob3ItLW5ldXRyYWw6aG92ZXIgewogICAgY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tcHJpbWFyeS03MDApOwogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tcHJpbWFyeS03MDApOwogIH0KfQouYW5jaG9yLS1wcmltYXJ5OmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1uZXV0cmFsLTAwMCksIDAgMCAwIDkuNXB4IHZhcigtLXByaW1hcnktNzAwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwp9Ci5hbmNob3ItLXByaW1hcnk6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwKTsKICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1zcGFjaW5nLTIpIHZhcigtLXByaW1hcnktNTApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCk7Cn0KLmFuY2hvci0tcHJpbWFyeTpmb2N1czphY3RpdmUgewogIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktNTApOwogIGJveC1zaGFkb3c6IDAgMCAwIHZhcigtLXNwYWNpbmctMikgdmFyKC0tcHJpbWFyeS01MCksIDAgMCAwIDkuNXB4IHZhcigtLXByaW1hcnktNzAwKTsKfQouYW5jaG9yLS1kaXNhYmxlZCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvQXZhdGFyL0F2YXRhci5jc3MgKi8KLmF2YXRhciB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7CiAgZGlzcGxheTogZmxleDsKICBmb250LXdlaWdodDogNTAwOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9Ci5hdmF0YXItLXNtYWxsIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBmb250LXNpemU6IDEwcHg7CiAgaGVpZ2h0OiAyNHB4OwogIHdpZHRoOiAyNHB4Owp9Ci5hdmF0YXItLW1lZGl1bSB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgZm9udC1zaXplOiAxOHB4OwogIGhlaWdodDogNDBweDsKICB3aWR0aDogNDBweDsKfQouYXZhdGFyLS1sYXJnZSB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7CiAgZm9udC1zaXplOiA0MnB4OwogIGhlaWdodDogMTAwcHg7CiAgd2lkdGg6IDEwMHB4Owp9Ci5hdmF0YXJfX2luaXRpYWxzIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL0J1dHRvbi9CdXR0b24uY3NzICovCi5idXR0b24gewogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlcjogMDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZm9udDogaW5oZXJpdDsKICBmb250LXdlaWdodDogNTAwOwogIGxldHRlci1zcGFjaW5nOiAuMDFlbTsKICBtYXJnaW46IDA7CiAgbWluLWhlaWdodDogNDhweDsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpIHZhcigtLXNwYWNpbmctNik7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgd2lkdGg6IDEwMCU7Cn0KLmJ1dHRvbi0tcHJpbWFyeSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5idXR0b24tLXByaW1hcnk6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS02MDApOwogIH0KfQouYnV0dG9uLS1wcmltYXJ5OmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTYwMCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLXByaW1hcnktNjAwKSwgaW5zZXQgMCAwIDAgNXB4IHZhcigtLW5ldXRyYWwtMDAwKTsKICBvdXRsaW5lOiBub25lOwp9Ci5idXR0b24tLXByaW1hcnk6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgYm94LXNoYWRvdzogbm9uZTsKfQouYnV0dG9uLS1kaXNhYmxlZCwKLmJ1dHRvbi0tcHJpbWFyeTpkaXNhYmxlZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0yMDApOwogIGJveC1zaGFkb3c6IG5vbmU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9Ci5idXR0b24tLXNlY29uZGFyeSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIH0KfQouYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS1zZWNvbmRhcnk6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTEwMCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXByaW1hcnktNjAwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS02MDApOwp9Ci5idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0yMDApOwogIGJveC1zaGFkb3c6IG5vbmU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9Ci5idXR0b24tLXNlY29uZGFyeS0tZmlsbGVkIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLmJ1dHRvbi0tdGVydGlhcnkgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0zKSB2YXIoLS1zcGFjaW5nLTEpOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIgewogICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAxLjVweDsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIDEuNXB4OwogIH0KfQouYnV0dG9uLS10ZXJ0aWFyeTphY3RpdmUsCi5idXR0b24tLXRlcnRpYXJ5OmZvY3VzIHsKICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIDEuNXB4OwogIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIDEuNXB4Owp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuYnV0dG9uLS10ZXJ0aWFyeTpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwogIH0KfQouYnV0dG9uLS10ZXJ0aWFyeTpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS10ZXJ0aWFyeTphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLmJ1dHRvbi0tdGVydGlhcnk6ZGlzYWJsZWQsCi5idXR0b24tLXRlcnRpYXJ5W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gewogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJveC1zaGFkb3c6IG5vbmU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQouYnV0dG9uLS13YXJuaW5nIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1lcnJvci01MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5idXR0b24tLXdhcm5pbmc6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXJyb3ItNDAwKTsKICB9Cn0KLmJ1dHRvbi0td2FybmluZzpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLWVycm9yLTQwMCksIGluc2V0IDAgMCAwIDVweCB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS13YXJuaW5nOmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXJyb3ItNDAwKTsKICBib3gtc2hhZG93OiBub25lOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuYnV0dG9uLS13YXJuaW5nOmZvY3VzOm5vdCg6aG92ZXIpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWVycm9yLTUwMCk7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tZXJyb3ItNTAwKSwgaW5zZXQgMCAwIDAgNXB4IHZhcigtLW5ldXRyYWwtMDAwKTsKICB9Cn0KLmJ1dHRvbi0tbmV1dHJhbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtOTAwKTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmJ1dHRvbi0tbmV1dHJhbDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgfQp9Ci5idXR0b24tLW5ldXRyYWw6Zm9jdXMgewogIGJveC1zaGFkb3c6CiAgICBpbnNldCAwIDAgMCAxcHggdmFyKC0tcHJpbWFyeS0yMDApLAogICAgaW5zZXQgMCAwIDAgM3B4IHZhcigtLW5ldXRyYWwtMDAwKSwKICAgIGluc2V0IDAgMCAwIDRweCB2YXIoLS1wcmltYXJ5LTIwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS1uZXV0cmFsOmFjdGl2ZSB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXByaW1hcnktNTAwKTsKfQouYnV0dG9uLS1uZXV0cmFsOmRpc2FibGVkIHsKICBvcGFjaXR5OiAuNjsKfQouYnV0dG9uLS1pY29uLS1wcmltYXJ5LAouYnV0dG9uLS1pY29uLS1zZWNvbmRhcnkgewogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc20pOwogIGNvbG9yOiBpbmhlcml0OwogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIG1pbi1oZWlnaHQ6IHVuc2V0OwogIHBhZGRpbmc6IDA7CiAgd2lkdGg6IGF1dG87Cn0KLmJ1dHRvbi0taWNvbi0tcHJpbWFyeSB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQouYnV0dG9uLS1pY29uLS1wcmltYXJ5W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTQwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5idXR0b24tLWljb24tLXByaW1hcnk6aG92ZXIgewogICAgY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKICB9Cn0KLmJ1dHRvbi0taWNvbi0tcHJpbWFyeTpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXByaW1hcnktNTAwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLmJ1dHRvbi0taWNvbi0tcHJpbWFyeTphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwp9Ci5idXR0b24tLWljb24tLXNlY29uZGFyeSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtOTAwKTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmJ1dHRvbi0taWNvbi0tc2Vjb25kYXJ5OmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7CiAgfQp9Ci5idXR0b24tLWljb24tLXNlY29uZGFyeTpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLW5ldXRyYWwtOTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC05MDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLmJ1dHRvbi0taWNvbi0tc2Vjb25kYXJ5OmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0xMDApOwp9Ci5idXR0b24tLXdpdGgtaWNvbiB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQouYnV0dG9uX19pY29uIHsKICBkaXNwbGF5OiBmbGV4Owp9Ci5idXR0b25fX2xhYmVsIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IHN1YjsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmJ1dHRvbiB7CiAgICB3aWR0aDogYXV0bzsKICB9Cn0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpIHsKICAuYnV0dG9uLmJ1dHRvbi0tcGVuZGluZyB7CiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KICAuYnV0dG9uLmJ1dHRvbi0tcGVuZGluZzphZnRlciB7CiAgICBhbmltYXRpb246IGJ1dHRvbi1zcGlubmVyIDFzIGVhc2UgaW5maW5pdGU7CiAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogMTZweDsKICAgIGluc2V0OiAwOwogICAgbWFyZ2luOiBhdXRvOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDE2cHg7CiAgfQogIC5idXR0b24tLXNlY29uZGFyeS5idXR0b24tLXBlbmRpbmc6YWZ0ZXIgewogICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIH0KICBAa2V5ZnJhbWVzIGJ1dHRvbi1zcGlubmVyIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMHR1cm4pOwogICAgfQogICAgdG8gewogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7CiAgICB9CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9DYWxsVG9BY3Rpb24vQ2FsbFRvQWN0aW9uLmNzcyAqLwouY2FsbC10by1hY3Rpb24gewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLmNhbGwtdG8tYWN0aW9uX193cmFwcGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgZGlzcGxheTogZmxleDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouY2FsbC10by1hY3Rpb25fX2JhY2tncm91bmQgewogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE3NTQnIGhlaWdodD0nMTc5NScgZmlsbD0nbm9uZSclM0UlM0NlbGxpcHNlIGN4PSc4NzYuOTIzJyBjeT0nOTM3LjQ1NycgZmlsbD0nJTIzMDA5QThFJyByeD0nMzQ5JyByeT0nODA1LjUnIHRyYW5zZm9ybT0ncm90YXRlKDYzLjkzMyA4NzYuOTIzIDkzNy40NTcpJy8lM0UlM0NwYXRoIHN0cm9rZT0nJTIzMTlCM0E4JyBzdHJva2Utd2lkdGg9JzInIGQ9J001OTQuMzA0IDEwMjcuMzlDNTA4Ljg2IDgxNS44NjggNDY3LjcyOSA2MDkuNzg2IDQ3MC4yNjcgNDQ3LjYxNGMxLjI2OS04MS4wODggMTMuNDU2LTE1MS4xNDcgMzYuNDM5LTIwNS40MDcgMjIuOTgyLTU0LjI1NiA1Ni43MjUtOTIuNjQ3IDEwMS4wODYtMTEwLjU2NnM5NS4zMDItMTMuNzM2IDE0OS41MTkgOS4zMzZjNTQuMjIyIDIzLjA3NCAxMTEuNjQ5IDY1LjAxMyAxNjguODgyIDEyMi40NyAxMTQuNDY3IDExNC45MSAyMjguMDA3IDI5MS43NDIgMzEzLjQ0NyA1MDMuMjY4IDg1LjQ1IDIxMS41MjUgMTI2LjU4IDQxNy42MDUgMTI0LjA0IDU3OS43NzUtMS4yNyA4MS4wOS0xMy40NSAxNTEuMTUtMzYuNDQgMjA1LjQxLTIyLjk4IDU0LjI2LTU2LjcyIDkyLjY1LTEwMS4wOCAxMTAuNTctNDQuMzcgMTcuOTItOTUuMzEgMTMuNzMtMTQ5LjUyLTkuMzQtNTQuMjMtMjMuMDctMTExLjY1My02NS4wMS0xNjguODg2LTEyMi40Ny0xMTQuNDYzLTExNC45MS0yMjguMDA2LTI5MS43NC0zMTMuNDUtNTAzLjI3WicvJTNFJTNDL3N2ZyUzRSIpOwogIGJhY2tncm91bmQtcG9zaXRpb246IC0zMDRweCAtNTI2cHg7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOwogIGNvbnRlbnQ6ICIiOwogIGhlaWdodDogMTc5NC4xMXB4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTc1My44NXB4Owp9Ci5jYWxsLXRvLWFjdGlvbl9fY29udGVudCB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSB2YXIoLS1zcGFjaW5nLTQpIDY0cHggdmFyKC0tc3BhY2luZy00KTsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiA0Owp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAuY2FsbC10by1hY3Rpb24gewogICAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLTgpOwogIH0KICAuY2FsbC10by1hY3Rpb25fX3dyYXBwZXIgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgfQogIC5jYWxsLXRvLWFjdGlvbl9fYmFja2dyb3VuZCB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQ2cHggLTY3MXB4OwogIH0KICAuY2FsbC10by1hY3Rpb25fX2NvbnRlbnQgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSB2YXIoLS1zcGFjaW5nLTEyKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL0NoaXAvQ2hpcC5jc3MgKi8KLmNoaXAtZ3JvdXAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKfQouY2hpcC1ncm91cCwKLmNoaXBfX2lucHV0LXdyYXBwZXIsCi5jaGlwX19sYWJlbCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5jaGlwX19sYWJlbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtMjAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC04MDApOwogIGN1cnNvcjogcG9pbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy04KTsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9Ci5jaGlwX19pbnB1dCB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICBhcHBlYXJhbmNlOiBub25lOwogIGluc2V0OiAwOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci5jaGlwX19pbnB1dDppcyg6Y2hlY2tlZCwgOmZvY3VzLCA6Zm9jdXMtd2l0aGluLCA6YWN0aXZlKSB7CiAgb3V0bGluZTogbm9uZTsKfQouY2hpcF9faW5wdXQ6ZGlzYWJsZWQgKyAuY2hpcF9fbGFiZWwgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMjAwKTsKfQouY2hpcF9faW5wdXQ6aXMoOmNoZWNrZWQsIDphY3RpdmUpICsgLmNoaXBfX2xhYmVsIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgYm94LXNoYWRvdzogbm9uZTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuY2hpcF9faW5wdXQ6bm90KDpkaXNhYmxlZCwgOmZvY3VzLXdpdGhpbiwgOmFjdGl2ZSwgOmNoZWNrZWQpOmhvdmVyICsgLmNoaXBfX2xhYmVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICB9Cn0KLmNoaXBfX2lucHV0OmNoZWNrZWQ6Zm9jdXMtdmlzaWJsZSArIC5jaGlwX19sYWJlbCB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLXByaW1hcnktNTAwKSwgaW5zZXQgMCAwIDAgNXB4IHZhcigtLW5ldXRyYWwtMDAwKTsKfQouY2hpcF9faW5wdXQ6bm90KDpkaXNhYmxlZCk6aXMoOmNoZWNrZWQsIDphY3RpdmUsIDpmb2N1cywgOmZvY3VzLXdpdGhpbikgKyAuY2hpcF9fbGFiZWwgewogIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLmNoaXBfX2xhYmVsIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IsIGNvbG9yOwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjE1czsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL0lucHV0RmllbGQvSW5wdXRGaWVsZC5jc3MgKi8KLmlucHV0IHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0yMDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZm9udDogdmFyKC0tYm9keS0yLXJlZ3VsYXIpOwogIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTsKICB3aWR0aDogMTAwJTsKfQouaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTQwMCk7Cn0KLmlucHV0OjpwbGFjZWhvbGRlciB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKfQouaW5wdXQtLXN1Y2NlcyB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWxlcnQtc3VjY2VzLTUwMCk7Cn0KLmlucHV0W2FyaWEtaW52YWxpZD10cnVlXSB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZXJyb3ItNTAwKTsKfQouaW5wdXQ6ZGlzYWJsZWQgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwogIGN1cnNvcjogZGVmYXVsdDsKfQouaW5wdXQ6aXMoOmZvY3VzLCA6Zm9jdXMtd2l0aGluLCA6YWN0aXZlKSB7CiAgb3V0bGluZTogbm9uZTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmlucHV0X193cmFwcGVyOmhvdmVyIC5pbnB1dDpub3QoOi1tb3otcmVhZC1vbmx5LCA6ZGlzYWJsZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS0zMDApOwogIH0KICAuaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCksCiAgLmlucHV0X193cmFwcGVyOmhvdmVyIC5pbnB1dDpub3QoOnJlYWQtb25seSwgOmRpc2FibGVkKSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktMzAwKTsKICB9Cn0KLmlucHV0X193cmFwcGVyIC5pbnB1dDppcyg6Zm9jdXMsIDphY3RpdmUpOm5vdCg6LW1vei1yZWFkLW9ubHksIDpkaXNhYmxlZCkgewogIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5pbnB1dF9fd3JhcHBlciAuaW5wdXQ6aXMoOmZvY3VzLCA6YWN0aXZlKTpub3QoOnJlYWQtb25seSwgOmRpc2FibGVkKSB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLmlucHV0LS13aXRoLXByZWZpeCB7CiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmctNCkqMiArIDI0cHgpOwp9Ci5pbnB1dC0td2l0aC1zdWZmaXggewogIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZy00KSoyICsgMjRweCk7Cn0KLmlucHV0X19wcmVmaXgsCi5pbnB1dF9fc3VmZml4IHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZGlzcGxheTogZmxleDsKICBmb250LWZhbWlseTogaW5oZXJpdDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgaGVpZ2h0OiAxMDAlOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHBvaW50ZXItZXZlbnRzOiBub25lOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMjRweDsKfQouaW5wdXRfX3ByZWZpeCB7CiAgbGVmdDogdmFyKC0tc3BhY2luZy00KTsKfQouaW5wdXRfX3N1ZmZpeCB7CiAgcmlnaHQ6IHZhcigtLXNwYWNpbmctNCk7Cn0KaW5wdXRbdHlwZT1kYXRlXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHsKICBiYWNrZ3JvdW5kOiBub25lOwogIGhlaWdodDogMjRweDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgcmlnaHQ6IHZhcigtLXNwYWNpbmctNCk7CiAgd2lkdGg6IDI0cHg7CiAgei1pbmRleDogMTsKfQppbnB1dFt0eXBlPWRhdGVdIHsKICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgLW1vei1hcHBlYXJhbmNlOiBub25lOwogIGFwcGVhcmFuY2U6IG5vbmU7Cn0KaW5wdXQ6Oi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSB7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQouaW5wdXRfX3N1ZmZpeCArIGlucHV0W3R5cGU9ZGF0ZV06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgY29sb3I6IHRyYW5zcGFyZW50Owp9Ci5pbnB1dF9fd3JhcHBlciB7CiAgZGlzcGxheTogZmxleDsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL1N0YXR1c0NoaXAvU3RhdHVzQ2hpcC5jc3MgKi8KLnN0YXR1cy1jaGlwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdGF0dXMtY2hpcC1iYWNrZ3JvdW5kLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBjb2xvcjogdmFyKC0tc3RhdHVzLWNoaXAtY29sb3IpOwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEpIHZhcigtLXNwYWNpbmctMik7Cn0KLnN0YXR1cy1jaGlwLS1zdWNjZXNzIHsKICAtLXN0YXR1cy1jaGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tc3VjY2Vzcy01MDApOwogIC0tc3RhdHVzLWNoaXAtY29sb3I6dmFyKC0tbmV1dHJhbC0wMDApOwp9Ci5zdGF0dXMtY2hpcC0td2FybmluZyB7CiAgLS1zdGF0dXMtY2hpcC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdhcm5pbmctNTAwKTsKICAtLXN0YXR1cy1jaGlwLWNvbG9yOnZhcigtLW5ldXRyYWwtMDAwKTsKfQouc3RhdHVzLWNoaXAtLWVycm9yIHsKICAtLXN0YXR1cy1jaGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZXJyb3ItNTAwKTsKICAtLXN0YXR1cy1jaGlwLWNvbG9yOnZhcigtLW5ldXRyYWwtMDAwKTsKfQouc3RhdHVzLWNoaXAtLWRpc2FibGVkIHsKICAtLXN0YXR1cy1jaGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tbmV1dHJhbC00MDApOwogIC0tc3RhdHVzLWNoaXAtY29sb3I6dmFyKC0tbmV1dHJhbC0wMDApOwp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9Td2l0Y2gvU3dpdGNoLmNzcyAqLwouc3dpdGNoX19sYWJlbCB7CiAgY3Vyc29yOiBwb2ludGVyOwp9Ci5zd2l0Y2hfX3RodW1iIHsKICAtLXN3aXRjaC13aWR0aDo1MXB4OwogIGJhY2tncm91bmQ6CiAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgIHRvIHJpZ2h0LAogICAgICB2YXIoLS1wcmltYXJ5LTUwMCkgNTAlLAogICAgICB2YXIoLS1uZXV0cmFsLTIwMCkgNTAlKTsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlOwogIGJhY2tncm91bmQtc2l6ZTogMjAwJTsKICBib3JkZXItcmFkaXVzOiAyNHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBoZWlnaHQ6IDMxcHg7CiAgbWFyZ2luOiAwOwogIG1pbi13aWR0aDogdmFyKC0tc3dpdGNoLXdpZHRoKTsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aWR0aDogdmFyKC0tc3dpdGNoLXdpZHRoKTsKfQouc3dpdGNoX190aHVtYiwKYnV0dG9uLnN3aXRjaF9fdGh1bWIgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiAgYXBwZWFyYW5jZTogbm9uZTsKfQpidXR0b24uc3dpdGNoX190aHVtYiB7CiAgYm9yZGVyOiBub25lOwp9Ci5zd2l0Y2hfX3RodW1iOmNoZWNrZWQsCi5zd2l0Y2hfX3RodW1iW2RhdGEtc3RhdGU9Y2hlY2tlZF0gewogIGJhY2tncm91bmQtcG9zaXRpb246IDA7Cn0KLnN3aXRjaF9fdGh1bWI6YWZ0ZXIgewogIC0tc3dpdGNoLXRodW1iLXdpZHRoOjI3cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3gtc2hhZG93OiAwIDNweCA4cHggcmdiYSgwLCAwLCAwLCAuMTUpLCAwIDNweCAxcHggcmdiKDAgMCAwLzYlKTsKICBjb250ZW50OiAiIjsKICBoZWlnaHQ6IDI3cHg7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogMnB4OwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOwogIHdpZHRoOiB2YXIoLS1zd2l0Y2gtdGh1bWItd2lkdGgpOwp9CmJ1dHRvbi5zd2l0Y2hfX3RodW1iOmFmdGVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygzLjVweCAtIHZhcigtLXN3aXRjaC10aHVtYi13aWR0aCkpKTsKfQouc3dpdGNoX190aHVtYjpjaGVja2VkOmFmdGVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyh2YXIoLS1zd2l0Y2gtd2lkdGgpIC0gdmFyKC0tc3dpdGNoLXRodW1iLXdpZHRoKSAtIDJweCkpOwp9CmJ1dHRvbi5zd2l0Y2hfX3RodW1iW2RhdGEtc3RhdGU9Y2hlY2tlZF06YWZ0ZXIgewogIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMy41cHgpOwp9Ci5zd2l0Y2hfX2xhYmVsLS1kaXNhYmxlZCB7CiAgY3Vyc29yOiBkZWZhdWx0Owp9Ci5zd2l0Y2hfX3RodW1iOmRpc2FibGVkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgY3Vyc29yOiBub3QtYWxsb3dlZDsKfQouc3dpdGNoX190aHVtYjpkaXNhYmxlZDphZnRlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IG5vbmU7Cn0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpIHsKICAuc3dpdGNoX190aHVtYiB7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zOwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1wb3NpdGlvbjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogIH0KICAuc3dpdGNoX190aHVtYjphZnRlciB7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMTVzOwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvVGV4dEFyZWEvVGV4dEFyZWEuY3NzICovCi50ZXh0LWFyZWEgewogIGJvcmRlcjogbm9uZTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tbmV1dHJhbC00MDApOwogIGZvbnQ6IHZhcigtLWJvZHktMi1yZWd1bGFyKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpOwp9Ci50ZXh0LWFyZWFbYXJpYS1pbnZhbGlkPXRydWVdIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tZXJyb3ItNTAwKTsKfQoudGV4dC1hcmVhOjotbW96LXBsYWNlaG9sZGVyIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwp9Ci50ZXh0LWFyZWE6OnBsYWNlaG9sZGVyIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAudGV4dC1hcmVhOmhvdmVyIHsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTMwMCk7CiAgfQp9Ci50ZXh0LWFyZWE6Zm9jdXMgewogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvVW5vcmRlcmVkTGlzdC9Vbm9yZGVyZWRMaXN0LmNzcyAqLwoudW5vcmRlcmVkLWxpc3QtLWNoZWNrID4gbGkgewogIC0tbW9iaWxlLWNoZWNrOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZmlsbD0nJTIzMDBBQjlFJyBkPSdNOC4wMDIuMDM3YzQuNTA0LjUzMiA5LjI3NiAxLjgxIDEzLjQ0MyAzLjYwMi44OTQuMzg1IDEuNTk2Ljk2IDIuMDQgMS43M3MuNTkyIDEuNjY1LjQ3OCAyLjYzMmMtLjUzMiA0LjUwNS0xLjgxIDkuMjc2LTMuNjAyIDEzLjQ0My0uMzg0Ljg5NS0uOTYgMS41OTctMS43MyAyLjA0MXMtMS42NjUuNTkyLTIuNjMyLjQ3OGMtNC41MDUtLjUzMi05LjI3Ni0xLjgxLTEzLjQ0My0zLjYwMi0uODk1LS4zODUtMS41OTctLjk2LTIuMDQxLTEuNzNzLS41OTItMS42NjUtLjQ3OC0yLjYzM2MuNTMyLTQuNTA0IDEuODEtOS4yNzYgMy42MDItMTMuNDQzLjM4NS0uODk0Ljk2LTEuNTk2IDEuNzMtMi4wNFM3LjAzNC0uMDc3IDguMDAyLjAzNycvJTNFJTNDcGF0aCBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuMjUnIGQ9J00xNy4zMzMgOC4zMzMgMTAgMTUuNjY2bC0zLjMzMy0zLjMzMycvJTNFJTNDL3N2ZyUzRSIpOwogIC0tZGVza3RvcC1jaGVjazp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczMicgaGVpZ2h0PSczMicgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZmlsbD0nJTIzMDBBQjlFJyBkPSdNOC4wMDIuMDM3YzQuNTA0LjUzMiA5LjI3NiAxLjgxIDEzLjQ0MyAzLjYwMi44OTQuMzg1IDEuNTk2Ljk2IDIuMDQgMS43M3MuNTkyIDEuNjY1LjQ3OCAyLjYzMmMtLjUzMiA0LjUwNS0xLjgxIDkuMjc2LTMuNjAyIDEzLjQ0My0uMzg0Ljg5NS0uOTYgMS41OTctMS43MyAyLjA0MXMtMS42NjUuNTkyLTIuNjMyLjQ3OGMtNC41MDUtLjUzMi05LjI3Ni0xLjgxLTEzLjQ0My0zLjYwMi0uODk1LS4zODUtMS41OTctLjk2LTIuMDQxLTEuNzNzLS41OTItMS42NjUtLjQ3OC0yLjYzM2MuNTMyLTQuNTA0IDEuODEtOS4yNzYgMy42MDItMTMuNDQzLjM4NS0uODk0Ljk2LTEuNTk2IDEuNzMtMi4wNFM3LjAzNC0uMDc3IDguMDAyLjAzNycvJTNFJTNDcGF0aCBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuMjUnIGQ9J00xNy4zMzMgOC4zMzMgMTAgMTUuNjY2bC0zLjMzMy0zLjMzMycvJTNFJTNDL3N2ZyUzRSIpOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IHZhcigtLXNwYWNpbmctMyk7Cn0KLnVub3JkZXJlZC1saXN0LS1jaGVjayA+IGxpOmJlZm9yZSB7CiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tbW9iaWxlLWNoZWNrKTsKICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogIGNvbnRlbnQ6ICIiOwogIGhlaWdodDogMjRweDsKICB3aWR0aDogMjRweDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLnVub3JkZXJlZC1saXN0LS1jaGVjayA+IGxpOmJlZm9yZSB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kZXNrdG9wLWNoZWNrKTsKICAgIGhlaWdodDogMzJweDsKICAgIHdpZHRoOiAzMnB4OwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NhcmQvQ2FyZEFjdGlvbi9DYXJkQWN0aW9uLmNzcyAqLwouY2FyZF9faGVhZGVyX19hY3Rpb24gewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBmb250OiB2YXIoLS1zdWJ0ZXh0LW1lZGl1bSk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19oZWFkZXJfX2FjdGlvbiB7CiAgICBmb250OiB2YXIoLS1ib2R5LTEtbWVkaXVtKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRCb2R5L0NhcmRCb2R5LmNzcyAqLwouY2FyZF9fYm9keSB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmNhcmRfX2JvZHkgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRFbXB0eVN0YXRlL0NhcmRFbXB0eVN0YXRlLmNzcyAqLwouY2FyZF9fZW1wdHktc3RhdGUgewogIC0tY2FyZC1lbXB0eS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW5ldXRyYWwtMTAwKTsKICAtLWNhcmQtZW1wdHktc3RhdGUtaWNvbi1jb2xvcjp2YXIoLS1uZXV0cmFsLTgwMCk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNzAwKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5jYXJkX19lbXB0eS1zdGF0ZS0tZXJyb3IgewogIC0tY2FyZC1lbXB0eS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVycm9yLTIwMCk7CiAgLS1jYXJkLWVtcHR5LXN0YXRlLWljb24tY29sb3I6dmFyKC0tZXJyb3ItNTAwKTsKfQouY2FyZF9fZW1wdHktc3RhdGUtLXN0YW5kYWxvbmUgewogIHBhZGRpbmc6IDA7Cn0KLmNhcmRfX2VtcHR5LXN0YXRlX193cmFwcGVyIHsKICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1lbXB0eS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiBhdXRvOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNik7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5jYXJkX19lbXB0eS1zdGF0ZS0tc3RhbmRhbG9uZSAuY2FyZF9fZW1wdHktc3RhdGVfX3dyYXBwZXIgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYm9yZGVyLXJhZGl1czogMDsKICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggdmFyKC0tbmV1dHJhbC0yMDApOwogIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQouY2FyZF9fZW1wdHktc3RhdGVfX2ljb24sCi5jYXJkX19lbXB0eS1zdGF0ZV9fdGl0bGUgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7Cn0KLmNhcmRfX2VtcHR5LXN0YXRlX19pY29uIHsKICBjb2xvcjogdmFyKC0tY2FyZC1lbXB0eS1zdGF0ZS1pY29uLWNvbG9yKTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMyk7Cn0KLmNhcmRfX2VtcHR5LXN0YXRlX190aXRsZSB7CiAgZm9udC13ZWlnaHQ6IDgwMDsKICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTIpOwp9Ci5jYXJkX19lbXB0eS1zdGF0ZS0tc3RhbmRhbG9uZSA6aXMoLmNhcmRfX2VtcHR5LXN0YXRlX190aXRsZSwgLmNhcmRfX2VtcHR5LXN0YXRlX19kZXNjcmlwdGlvbikgewogIG1hcmdpbi1ib3R0b206IDA7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19lbXB0eS1zdGF0ZSB7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNik7CiAgfQogIC5jYXJkX19lbXB0eS1zdGF0ZS0tc3RhbmRhbG9uZSB7CiAgICBwYWRkaW5nOiAwOwogIH0KICAuY2FyZF9fZW1wdHktc3RhdGVfX3dyYXBwZXIgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KTsKICB9CiAgLmNhcmRfX2VtcHR5LXN0YXRlLS1zdGFuZGFsb25lIC5jYXJkX19lbXB0eS1zdGF0ZV9fd3JhcHBlciB7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpOwogIH0KICAuY2FyZF9fZW1wdHktc3RhdGVfX2Rlc2NyaXB0aW9uLAogIC5jYXJkX19lbXB0eS1zdGF0ZV9fdGl0bGUgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBtYXgtd2lkdGg6IDUyNXB4OwogIH0KICAuY2FyZF9fZW1wdHktc3RhdGUtLXN0YW5kYWxvbmUgOmlzKC5jYXJkX19lbXB0eS1zdGF0ZV9fdGl0bGUsIC5jYXJkX19lbXB0eS1zdGF0ZV9fZGVzY3JpcHRpb24pIHsKICAgIG1heC13aWR0aDogdW5zZXQ7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkRm9vdGVyL0NhcmRGb290ZXIuY3NzICovCi5jYXJkX19mb290ZXIgewogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19mb290ZXIgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRIZWFkZXIvQ2FyZEhlYWRlci5jc3MgKi8KLmNhcmRfX2hlYWRlciB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IHZhcigtLW5ldXRyYWwtMjAwKTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5jYXJkX19oZWFkZXItLXN0aWNreSB7CiAgLS1jYXJkLWhlYWRlci1zdGlja3ktdG9wOjA7CiAgcG9zaXRpb246IHN0aWNreTsKICB0b3A6IHZhcigtLWNhcmQtaGVhZGVyLXN0aWNreS10b3ApOwogIHotaW5kZXg6IDE7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19oZWFkZXIgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9CiAgLmNhcmRfX2hlYWRlci5jYXJkX19oZWFkZXItLXRhYnMgewogICAgcGFkZGluZzogMDsKICB9CiAgLmNhcmRfX2hlYWRlci5jYXJkX19oZWFkZXItLXRhYnMgLnRhYnMgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkSXRlbS9DYXJkSXRlbS5jc3MgKi8KLmNhcmRfX2JvZHlfX2l0ZW0gewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IHZhcigtLXNwYWNpbmctNik7Cn0KLmNhcmRfX2JvZHkgLmNhcmRfX2JvZHlfX2l0ZW06bm90KDpsYXN0LW9mLXR5cGUpIHsKICBtYXJnaW4tYm90dG9tOiAxNnB4Owp9Ci5jYXJkX19ib2R5ID4gLmNhcmRfX2JvZHlfX2l0ZW06b25seS1vZi10eXBlIHsKICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTsKfQouY2FyZF9fYm9keV9faXRlbSAubGlzdC1pdGVtLmxpc3QtaXRlbS0td2l0aC1kaXZpZGVyIHsKICBib3gtc2hhZG93OgogICAgaW5zZXQgMXB4IDAgMCB2YXIoLS1uZXV0cmFsLTIwMCksCiAgICBpbnNldCAtMXB4IDAgMCB2YXIoLS1uZXV0cmFsLTIwMCksCiAgICBpbnNldCAwIC0xcHggdmFyKC0tbmV1dHJhbC0yMDApOwp9Ci5jYXJkX19ib2R5X19pdGVtOmxhc3Qtb2YtdHlwZSAubGlzdC1pdGVtLS13aXRoLWRpdmlkZXIgewogIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmNhcmRfX2JvZHkgLmNhcmRfX2JvZHlfX2l0ZW0gewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwOwogIH0KICAuY2FyZF9fYm9keSAuY2FyZF9fYm9keV9faXRlbTpub3QoOmxhc3Qtb2YtdHlwZSkgewogICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IHZhcigtLW5ldXRyYWwtMjAwKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOmZpcnN0LW9mLXR5cGUgewogICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctOCk7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy04KTsKICB9CiAgLmNhcmRfX2JvZHkgLmNhcmRfX2JvZHlfX2l0ZW06bm90KDpsYXN0LW9mLXR5cGUsIDpmaXJzdC1vZi10eXBlKSB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTgpIDA7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOm9ubHktb2YtdHlwZSB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIDA7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOm9ubHktY2hpbGQgewogICAgcGFkZGluZzogMDsKICB9CiAgLmNhcmRfX2JvZHkgPiAuY2FyZF9fYm9keV9faXRlbTpvbmx5LW9mLXR5cGUgewogICAgcGFkZGluZy10b3A6IDA7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkU3VidGl0bGUvQ2FyZFN1YnRpdGxlLmNzcyAqLwouY2FyZF9fYm9keV9fc3VidGl0bGUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3gtc2hhZG93OiBpbnNldCAtMXB4IDAgdmFyKC0tbmV1dHJhbC0yMDApLCBpbnNldCAxcHggMCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBmb250OiB2YXIoLS1zdWJ0ZXh0LXJlZ3VsYXIpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19ib2R5X19zdWJ0aXRsZSB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIHZhcigtLXNwYWNpbmctNik7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkVGl0bGUvQ2FyZFRpdGxlLmNzcyAqLwouY2FyZF9faGVhZGVyX190aXRsZSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udDogdmFyKC0tdGl0bGUtMy1yZWd1bGFyKTsKICBnYXA6IHZhcigtLXNwYWNpbmctMik7Cn0KLmNhcmRfX2hlYWRlcl9fdGl0bGVfX2ljb24gewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19oZWFkZXJfX3RpdGxlIHsKICAgIGZvbnQ6IHZhcigtLXRpdGxlLTItcmVndWxhcik7CiAgICBnYXA6IHZhcigtLXNwYWNpbmctNCk7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkLmNzcyAqLwouY2FyZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCB2YXIoLS1uZXV0cmFsLTIwMCksIGluc2V0IDAgMXB4IHZhcigtLW5ldXRyYWwtMjAwKTsKfQouY2FyZC0tZGlzYWJsZWQgKiB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNTAwKSAhaW1wb3J0YW50OwogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAuY2FyZCB7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgICBoZWlnaHQ6IC1tb3otZml0LWNvbnRlbnQ7CiAgICBoZWlnaHQ6IGZpdC1jb250ZW50OwogIH0KICB1bC5jYXJkIC5saXN0LWl0ZW0gewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgfQogIHVsLmNhcmQgLmxpc3QtaXRlbSA+IDppcyhhLCBidXR0b24pOmZvY3VzIHsKICAgIGJveC1zaGFkb3c6CiAgICAgIGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCksCiAgICAgIGluc2V0IDAgMCAwIDNweCB2YXIoLS1uZXV0cmFsLTAwMCksCiAgICAgIGluc2V0IDAgMCAwIDVweCB2YXIoLS1wcmltYXJ5LTIwMCk7CiAgfQogIHVsLmNhcmQgOmlzKC5saXN0LWl0ZW06Zmlyc3Qtb2YtdHlwZSwgLmxpc3QtaXRlbTpmaXJzdC1vZi10eXBlIGEpIHsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIH0KICB1bC5jYXJkIDppcygubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSwgLmxpc3QtaXRlbTpsYXN0LW9mLXR5cGUgYSkgewogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkSW1hZ2VWYXJpYW50LmNzcyAqLwouY2FyZC0taW1hZ2UgewogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiBhdXRvOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5jYXJkLS1pbWFnZSwKLmNhcmQtLWltYWdlIC5jYXJkX19pbGx1c3RyYXRpb24gewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKfQouY2FyZC0taW1hZ2UgLmNhcmRfX2hlYWRlcl9fdGl0bGUgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZm9udDogdmFyKC0tdGl0bGUtMi1tZWRpdW0pOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgMDsKfQouY2FyZC0taW1hZ2UgLmNhcmRfX2JvZHkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGZvbnQ6IHZhcigtLWJvZHktMS1yZWd1bGFyKTsKICBtYXJnaW46IDAgYXV0byB2YXIoLS1zcGFjaW5nLTYpOwogIG1heC13aWR0aDogNDIwcHg7CiAgcGFkZGluZzogMDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmNhcmQtLWltYWdlIC5jYXJkX19mb290ZXIgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBwYWRkaW5nOiAwOwogIHdpZHRoOiAxMDAlOwp9Ci5jYXJkLS1pbWFnZSAuY2FyZF9fZm9vdGVyID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTQpOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAuY2FyZC0taW1hZ2UgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KSB2YXIoLS1zcGFjaW5nLTgpIHZhcigtLXNwYWNpbmctMTEpOwogIH0KICAuY2FyZC0taW1hZ2UgLmNhcmRfX2Zvb3RlciB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogIH0KICAuY2FyZC0taW1hZ2UgLmNhcmRfX2Zvb3RlciA+IDpub3QoOmZpcnN0LWNoaWxkKSB7CiAgICBtYXJnaW46IDA7CiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy00KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRMaXN0L0NhcmRMaXN0LmNzcyAqLwouY2FyZC1saXN0ID4gLmNhcmQ6bm90KDpsYXN0LWNoaWxkKSB7CiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmNhcmQtbGlzdCB7CiAgICBwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctOCk7CiAgfQogIC5jYXJkLWxpc3QgPiAuY2FyZDpub3QoOmxhc3QtY2hpbGQpIHsKICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hlY2tib3gvQ2hlY2tib3guY3NzICovCi5jaGVja2JveCB7CiAgLS1jaGVja2JveC13aWR0aDoyNHB4OwogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgOmlzKC5jaGVja2JveF9faW5wdXQsIC5jaGVja2JveF9fbGFiZWwpOmhvdmVyIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9Cn0KLmNoZWNrYm94LS1uZXV0cmFsLAouY2hlY2tib3gtLXByaW1hcnkgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLmNoZWNrYm94X19jb250ZW50IHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZm9udDogdmFyKC0tYm9keS0xLXJlZ3VsYXIpOwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQouY2hlY2tib3hfX3NwaW5uZXIgewogIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktNTAwKTsKfQouY2hlY2tib3hfX2NoZWNrLAouY2hlY2tib3hfX3NwaW5uZXIgewogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtMzAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiB2YXIoLS1jaGVja2JveC13aWR0aCk7CiAgbWluLXdpZHRoOiB2YXIoLS1jaGVja2JveC13aWR0aCk7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICB2aXNpYmlsaXR5OiB1bnNldDsKfQouY2hlY2tib3guY2hlY2tib3gtLWVycm9yIC5jaGVja2JveF9fY2hlY2sgewogIGJvcmRlci1jb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQouY2hlY2tib3hfX2lucHV0IHsKICBoZWlnaHQ6IHZhcigtLWNoZWNrYm94LXdpZHRoKTsKICBtYXJnaW46IDA7CiAgb3BhY2l0eTogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IHZhcigtLWNoZWNrYm94LXdpZHRoKTsKICB6LWluZGV4OiAxMDsKfQouY2hlY2tib3hfX2lucHV0IH4gLmNoZWNrYm94X19jaGVjayBwYXRoIHsKICBzdHJva2U6IHZhcigtLW5ldXRyYWwtMDAwKTsKICBzdHJva2UtZGFzaG9mZnNldDogLTc1Owp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuY2hlY2tib3hfX2lucHV0OmhvdmVyIH4gLmNoZWNrYm94X19jaGVjayB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTEwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICB9Cn0KLmNoZWNrYm94X19pbnB1dDpmb2N1cy13aXRoaW4gfiAuY2hlY2tib3hfX2NoZWNrIHsKICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwogIG91dGxpbmUtb2Zmc2V0OiAycHg7Cn0KLmNoZWNrYm94X19pbnB1dDpub3QoOmluZGV0ZXJtaW5hdGUpOmlzKDpjaGVja2VkLCBbYXJpYS1jaGVja2VkPXRydWVdKSB+IC5jaGVja2JveF9fY2hlY2sgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQouY2hlY2tib3hfX2lucHV0OmhvdmVyOmlzKDpjaGVja2VkLCBbYXJpYS1jaGVja2VkPXRydWVdKSB+IC5jaGVja2JveF9fY2hlY2sgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKfQouY2hlY2tib3hfX2lucHV0Om5vdCg6aW5kZXRlcm1pbmF0ZSk6aXMoOmNoZWNrZWQsIFthcmlhLWNoZWNrZWQ9dHJ1ZV0pIH4gLmNoZWNrYm94X19jaGVjayBwYXRoIHsKICBzdHJva2UtZGFzaG9mZnNldDogMDsKfQouY2hlY2tib3hfX2lucHV0Om5vdCg6aW5kZXRlcm1pbmF0ZSk6aXMoOmRpc2FibGVkLCBbYXJpYS1kaXNhYmxlZD10cnVlXSkgfiAuY2hlY2tib3hfX2NoZWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTIwMCk7Cn0KLmNoZWNrYm94X19pbnB1dDpub3QoOmluZGV0ZXJtaW5hdGUpOmlzKDpjaGVja2VkLCBbYXJpYS1jaGVja2VkPXRydWVdKTppcyg6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPXRydWVdKSB+IC5jaGVja2JveF9fY2hlY2sgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKfQouY2hlY2tib3hfX2lucHV0Om5vdCg6aW5kZXRlcm1pbmF0ZSk6aXMoOmRpc2FibGVkLCBbYXJpYS1kaXNhYmxlZD10cnVlXSkgfiAuY2hlY2tib3hfX2NoZWNrIHBhdGggewogIHN0cm9rZTogdmFyKC0tbmV1dHJhbC02MDApOwp9Ci5jaGVja2JveF9fbGFiZWwgewogIGZvbnQ6IHZhcigtLWJvZHktMS1yZWd1bGFyKTsKfQouY2hlY2tib3hfX2hpbnQgewogIGZvbnQ6IHZhcigtLWJvZHktMi1yZWd1bGFyKTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLmNoZWNrYm94X19lcnJvciB7CiAgY29sb3I6IHZhcigtLWVycm9yLTUwMCk7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKfQouY2hlY2tib3hfX2lucHV0OmluZGV0ZXJtaW5hdGUgewogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLmNoZWNrYm94X19jaGVjayB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuMjVzIGVhc2UtaW4tb3V0OwogIH0KICAuY2hlY2tib3hfX2NoZWNrIHBhdGggewogICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgLjM1cyBlYXNlLW91dDsKICB9CiAgLmNoZWNrYm94X19zcGlubmVyIGNpcmNsZTpsYXN0LW9mLXR5cGUgewogICAgYW5pbWF0aW9uOiBidXR0b24tc3Bpbm5lciAxcyBlYXNlIGluZmluaXRlOwogICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOwogIH0KICBAa2V5ZnJhbWVzIGNoZWNrYm94LXNwaW5uZXIgewogICAgMCUgewogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwdHVybik7CiAgICB9CiAgICB0byB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsKICAgIH0KICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Db21ib2JveC9Db21ib2JveC5jc3MgKi8KLmNvbWJvYm94IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KdWxbcm9sZT1saXN0Ym94XS5jb21ib2JveF9fbGlzdC0tb3BlbiB7CiAgZGlzcGxheTogYmxvY2s7Cn0KdWxbcm9sZT1saXN0Ym94XSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtMjAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZGlzcGxheTogbm9uZTsKICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgM3B4IDhweCByZ2IoNDYgNTkgODYvMTAlKSk7CiAgZm9udDogdmFyKC0tYm9keS0yLXJlZ3VsYXIpOwogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy0xKTsKICBtYXgtaGVpZ2h0OiAxNjVweDsKICBvdmVyZmxvdzogc2Nyb2xsOwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDAwOwp9CnVsW3JvbGU9bGlzdGJveF0gbGlbcm9sZT1vcHRpb25dIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTsKfQp1bFtyb2xlPWxpc3Rib3hdIGxpW3JvbGU9b3B0aW9uXTpub3QoOmxhc3QtY2hpbGQpIHsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0xMDApOwp9Ci5jb21ib2JveF9fbGlzdC1pdGVtLS1zZWxlY3RlZCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICBmb250OiB2YXIoLS1ib2R5LTItbWVkaXVtKTsKfQouY29tYm9ib3hfX2xpc3QtaXRlbS0taGlnaGxpZ2h0IHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLTEwMCk7Cn0KLmNvbWJvYm94X19saXN0LWl0ZW0tLWxvYWRpbmcgewogIGNvbG9yOiB0cmFuc3BhcmVudDsKICBoZWlnaHQ6IDQ4cHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICB1c2VyLXNlbGVjdDogbm9uZTsKfQouY29tYm9ib3hfX2xpc3QtaXRlbS0tbG9hZGluZzphZnRlciB7CiAgYW5pbWF0aW9uOiBidXR0b24tc3Bpbm5lciAxcyBlYXNlIGluZmluaXRlOwogIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3JkZXItdG9wOiA0cHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbnRlbnQ6ICIiOwogIGhlaWdodDogMTZweDsKICBpbnNldDogMDsKICBtYXJnaW46IGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxNnB4Owp9Ci5jb21ib2JveF9fbGlzdC1pdGVtLS1lbXB0eSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICBjdXJzb3I6IGRlZmF1bHQ7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2NyaXB0aW9uTGlzdC5jc3MgKi8KLmRlc2NyaXB0aW9uLWxpc3QtLWZvcm0gZHQgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTYwMCk7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTEpOwp9Ci5kZXNjcmlwdGlvbi1saXN0LS1mb3JtIGRkIHsKICBmb250OiB2YXIoLS1ib2R5LTItbWVkaXVtKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmRlc2NyaXB0aW9uLWxpc3QtLWZvcm0gZHQgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICAgIGZvbnQ6IHZhcigtLWJvZHktMS1yZWd1bGFyKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIC5kZXNjcmlwdGlvbi1saXN0LS1mb3JtIGRkIHsKICAgIGZvbnQ6IHZhcigtLWJvZHktMS1tZWRpdW0pOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0Rlc2NyaXB0aW9uTGlzdC9EZXNjcmlwdGlvbkNvbnRlbnQvRGVzY3JpcHRpb25Db250ZW50LmNzcyAqLwpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmRlc2NyaXB0aW9uLWxpc3RfX2NvbnRlbnQgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogdmFyKC0tc3BhY2luZy00KTsKICB9CiAgLmRlc2NyaXB0aW9uLWxpc3RfX2NvbnRlbnQgPiAqIHsKICAgIGZsZXg6IDE7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2NyaXB0aW9uSXRlbS9EZXNjcmlwdGlvbkl0ZW0uY3NzICovCi5kZXNjcmlwdGlvbi1saXN0X19pdGVtIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7Cn0KLmRlc2NyaXB0aW9uLWxpc3RfX2l0ZW0gPiAqIHsKICBmbGV4OiAxOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2N0aXB0aW9uUHJlZml4L0Rlc2NyaXB0aW9uUHJlZml4LmNzcyAqLwouZGVzY3JpcHRpb24tbGlzdF9fcHJlZml4IHsKICBmbGV4OiAwOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2N0aXB0aW9uU3VmZml4L0Rlc2NyaXB0aW9uU3VmZml4LmNzcyAqLwouZGVzY3JpcHRpb24tbGlzdF9fc3VmZml4IHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIGZsZXg6IDA7Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9EaWFsb2cvRGlhbG9nLmNzcyAqLwouZGlhbG9nW29wZW5dOjpiYWNrZHJvcCB7CiAgYmFja2dyb3VuZDogdmFyKC0tbmV1dHJhbC02MDApOwogIG9wYWNpdHk6IC4yNTsKfQpib2R5OmhhcyhkaWFsb2dbb3Blbl0pIHsKICBvdmVyZmxvdzogaGlkZGVuOwp9CmRpYWxvZzpub3QoW29wZW5dKSB7CiAgdmlzaWJpbGl0eTogaGlkZGVuOwp9CmRpYWxvZzpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQouZGlhbG9nIHsKICBib3JkZXI6IG5vbmU7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgYm94LXNoYWRvdzoKICAgIDAgNzZweCA4MHB4IHJnYigwIDAgMC83JSksCiAgICAwIDIxcHggMjRweCByZ2IoMCAwIDAvNSUpLAogICAgMCA4cHggMTBweCByZ2IoMCAwIDAvNCUpLAogICAgMCAzcHggM3B4IHJnYigwIDAgMC8yJSk7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctNCk7CiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tc3BhY2luZy00KSoyKTsKICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNwYWNpbmctNCkqMik7CiAgcGFkZGluZzogMDsKICBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiAwOwogIHdpZHRoOiAxMDAlOwogIHotaW5kZXg6IDEwMDsKfQouZGlhbG9nX19oZWFkZXIgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYmFja2dyb3VuZDogI2ZmZjsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0yMDApOwogIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy00KTsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgcG9zaXRpb246IHN0aWNreTsKICB0b3A6IDA7CiAgei1pbmRleDogMTAwMDsKfQouZGlhbG9nX19oZWFkZXJfX2ljb24gewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRpYWxvZ19faGVhZGVyX190aXRsZSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC05MDApOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udDogdmFyKC0tdGl0bGUtMi1tZWRpdW0pOwogIGdhcDogdmFyKC0tc3BhY2luZy00KTsKfQouZGlhbG9nX19oZWFkZXJfX3RpdGxlOmZvY3VzIHsKICBvdXRsaW5lOiBub25lOwp9Ci5kaWFsb2dfX2JvZHksCi5kaWFsb2dfX2Zvb3RlciwKLmRpYWxvZ19faGVhZGVyIHsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5kaWFsb2dfX2JvZHkgewogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KLmRpYWxvZ19fYm9keSwKLmRpYWxvZ19fZm9vdGVyIHsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy00KTsKfQouZGlhbG9nX19mb290ZXIgewogIGJhY2tncm91bmQ6ICNmZmY7CiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgYm90dG9tOiAwOwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogIHBvc2l0aW9uOiBzdGlja3k7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5kaWFsb2dfX2JvZHksCiAgLmRpYWxvZ19fZm9vdGVyLAogIC5kaWFsb2dfX2hlYWRlciB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpOwogIH0KICAuZGlhbG9nX19ib2R5IHsKICAgIGdhcDogdmFyKC0tc3BhY2luZy02KTsKICB9CiAgLmRpYWxvZyB7CiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTgpOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICB9CiAgLmRpYWxvZ19fZm9vdGVyIHsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgfQp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLmRpYWxvZ1tvcGVuXS5kaWFsb2ctLWFuaW1hdGVkIHsKICAgIGFuaW1hdGlvbjogem9vbS1pbiAuMTVzOwogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7CiAgfQogIC5kaWFsb2c6bm90KFtvcGVuXSkuZGlhbG9nLS1hbmltYXRlZCB7CiAgICBhbmltYXRpb246IHpvb20tb3V0IC4xNXM7CiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IC4xNXM7CiAgfQogIC5kaWFsb2dbb3Blbl0uZGlhbG9nLS1hbmltYXRlZDo6YmFja2Ryb3AgewogICAgYW5pbWF0aW9uOiBmYWRlLWluIC4xNXM7CiAgfQogIC5kaWFsb2c6bm90KFtvcGVuXSkuZGlhbG9nLS1hbmltYXRlZDo6YmFja2Ryb3AgewogICAgYW5pbWF0aW9uOiBmYWRlLW91dCAuMTVzOwogIH0KfQpAa2V5ZnJhbWVzIHpvb20taW4gewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICB9CiAgMC4wMDAwMDAwMDAxJSB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgLjk1LCAuOTUpOwogIH0KfQpAa2V5ZnJhbWVzIHpvb20tb3V0IHsKICB0byB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgLjk1LCAuOTUpOwogIH0KfQpAa2V5ZnJhbWVzIGZhZGUtaW4gewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgfQp9CkBrZXlmcmFtZXMgZmFkZS1vdXQgewogIDAlIHsKICAgIG9wYWNpdHk6IC4yNTsKICB9CiAgdG8gewogICAgb3BhY2l0eTogMDsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9MaXN0SXRlbS9MaXN0SXRlbS5jc3MgKi8KLmxpc3QtaXRlbSwKLmxpc3QtaXRlbSA+IDppcyhhLCBidXR0b24pIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9Ci5saXN0LWl0ZW0gewogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Owp9Ci5saXN0LWl0ZW06bm90KC5saXN0LWl0ZW0tLXdpdGgtbGluayksCi5saXN0LWl0ZW0gPiA6aXMoYSwgYnV0dG9uKSB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KSB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5saXN0LWl0ZW0gPiA6aXMoYSwgYnV0dG9uKSB7CiAgYmFja2dyb3VuZDogbm9uZTsKICBib3JkZXI6IG5vbmU7CiAgY29sb3I6IGluaGVyaXQ7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQ6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQteHRyYSk7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIHdpZHRoOiAxMDAlOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAubGlzdC1pdGVtID4gOmlzKGEsIGJ1dHRvbik6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0xMDApOwogICAgYm9yZGVyOiBub25lOwogIH0KfQoubGlzdC1pdGVtID4gOmlzKGEsIGJ1dHRvbik6Zm9jdXMgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tbmV1dHJhbC0wMDApLCBpbnNldCAwIDAgMCA1cHggdmFyKC0tcHJpbWFyeS0yMDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLmxpc3QtaXRlbSA+IDppcyhhLCBidXR0b24pOmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MCk7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQoubGlzdC1pdGVtLS13aXRoLWRpdmlkZXIgewogIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCB2YXIoLS1uZXV0cmFsLTIwMCk7Cn0KLmxpc3QtaXRlbS0tZGlzYWJsZWQgewogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5saXN0LWl0ZW0tLWRlc3RydWN0aXZlIHsKICBjb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQoubGlzdC1pdGVtLmxpc3QtaXRlbS0tZGVzdHJ1Y3RpdmUgLmxpc3QtaXRlbTpub3QoLmxpc3QtaXRlbS0td2l0aC1saW5rKTpmb2N1cywKLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlID4gOmlzKGEsIGJ1dHRvbik6Zm9jdXMgewogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCB2YXIoLS1uZXV0cmFsLTAwMCksIGluc2V0IDAgMCAwIDVweCB2YXIoLS1lcnJvci0yMDApOwp9Ci5saXN0LWl0ZW0ubGlzdC1pdGVtLS1kZXN0cnVjdGl2ZSAubGlzdC1pdGVtOm5vdCgubGlzdC1pdGVtLS13aXRoLWxpbmspOmFjdGl2ZSwKLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlID4gOmlzKGEsIGJ1dHRvbik6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1lcnJvci0yMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIHZhcigtLXByaW1hcnktNTAwKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmxpc3QtaXRlbTpub3QoLmxpc3QtaXRlbS0td2l0aC1saW5rKSwKICAubGlzdC1pdGVtID4gOmlzKGEsIGJ1dHRvbikgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9CiAgLmxpc3QtaXRlbS0td2l0aC1kaXZpZGVyOmxhc3Qtb2YtdHlwZSB7CiAgICBib3gtc2hhZG93OiBub25lOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtQ29udGVudC9MaXN0SXRlbUNvbnRlbnQuY3NzICovCi5saXN0LWl0ZW1fX2NvbnRlbnQgewogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTGlzdEl0ZW0vTGlzdEl0ZW1NZXRhL0xpc3RJdGVtTWV0YS5jc3MgKi8KLmxpc3QtaXRlbV9fbWV0YSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTGlzdEl0ZW0vTGlzdEl0ZW1QcmVmaXgvTGlzdEl0ZW1QcmVmaXguY3NzICovCi5saXN0LWl0ZW1fX3ByZWZpeCB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBjb2xvcjogaW5oZXJpdDsKICBkaXNwbGF5OiBmbGV4Owp9Ci5saXN0LWl0ZW0ubGlzdC1pdGVtLS1kZXN0cnVjdGl2ZTpub3QoLmxpc3QtaXRlbS0td2l0aC1saW5rKTphY3RpdmUgLmxpc3QtaXRlbV9fcHJlZml4LAoubGlzdC1pdGVtLmxpc3QtaXRlbS0tZGVzdHJ1Y3RpdmUgPiA6aXMoYSwgYnV0dG9uKTphY3RpdmUgLmxpc3QtaXRlbV9fcHJlZml4IHsKICBjb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtU3VidGl0bGUvTGlzdEl0ZW1TdWJ0aXRsZS5jc3MgKi8KLmxpc3QtaXRlbV9fc3VidGl0bGUgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTUwMCk7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKfQoubGlzdC1pdGVtLS1kaXNhYmxlZCAubGlzdC1pdGVtX19zdWJ0aXRsZSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtU3VmZml4L0xpc3RJdGVtU3VmZml4LmNzcyAqLwoubGlzdC1pdGVtX19zdWZmaXggewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKfQoubGlzdC1pdGVtLS13aXRoLWxpbmsgLmxpc3QtaXRlbV9fc3VmZml4IHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwp9Ci5saXN0LWl0ZW0tLWRpc2FibGVkIC5saXN0LWl0ZW1fX3N1ZmZpeCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKfQoubGlzdC1pdGVtLS13aXRoLWxpbmsgOmlzKGEsIGJ1dHRvbik6YWN0aXZlIC5saXN0LWl0ZW1fX3N1ZmZpeCB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtVGV4dC9MaXN0SXRlbVRleHQuY3NzICovCi5saXN0LWl0ZW1fX3RleHQgewogIGNvbG9yOiBpbmhlcml0OwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoubGlzdC1pdGVtLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlOm5vdCgubGlzdC1pdGVtLS13aXRoLWxpbmspOmFjdGl2ZSAubGlzdC1pdGVtX190ZXh0LAoubGlzdC1pdGVtLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlID4gOmlzKGEsIGJ1dHRvbik6YWN0aXZlIC5saXN0LWl0ZW1fX3RleHQgewogIGNvbG9yOiB2YXIoLS1lcnJvci01MDApOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTGlzdEl0ZW0vTGlzdEl0ZW1UaXRsZS9MaXN0SXRlbVRpdGxlLmNzcyAqLwoubGlzdC1pdGVtX190aXRsZSB7CiAgZm9udC13ZWlnaHQ6IDUwMDsKfQoubGlzdC1pdGVtLS1kaXNhYmxlZCAubGlzdC1pdGVtX190aXRsZSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL01lbnUvQ29udGVudC9Db250ZW50LmNzcyAqLwoubWVudV9fbGlzdCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tb2RhbCksIGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgbWFyZ2luLXRvcDogMTBweDsKICBtaW4td2lkdGg6IDIyMHB4OwogIG9wYWNpdHk6IDA7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0yKSAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0cmFuc2Zvcm06IHNjYWxlKC44KTsKICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgei1pbmRleDogMTAwMDAwOwp9Ci5tZW51X19saXN0LAoubWVudV9fbGlzdCA+IHVsIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Ci5tZW51X19saXN0ID4gdWwgewogIGdhcDogdmFyKC0tc3BhY2luZy0xKTsKfQoubWVudV9fbGlzdC0tYWN0aXZlIHsKICBvcGFjaXR5OiAxOwogIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgdmlzaWJpbGl0eTogdmlzaWJsZTsKfQoubWVudV9fbGlzdC0tbGVmdCB7CiAgbGVmdDogMDsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoubWVudV9fbGlzdC0tcmlnaHQgewogIHJpZ2h0OiAwOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSkgewogIC5tZW51X19saXN0IHsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4xNXM7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OgogICAgICB0cmFuc2Zvcm0sCiAgICAgIG9wYWNpdHksCiAgICAgIHJvdGF0ZSwKICAgICAgdmlzaWJpbGl0eTsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL01lbnUvTWVudUl0ZW0vTWVudUl0ZW0uY3NzICovCi5tZW51X19saXN0LWl0ZW0gewogIGRpc3BsYXk6IGZsZXg7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+ICogewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlcjogMDsKICBjb2xvcjogaW5oZXJpdDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgZm9udDogaW5oZXJpdDsKICBnYXA6IHZhcigtLXNwYWNpbmctNCk7CiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogIG1hcmdpbjogMCAxcHg7CiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAycHgpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCkgdmFyKC0tc3BhY2luZy02KTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgd2lkdGg6IDEwMCU7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5tZW51X19saXN0LWl0ZW0gPiA6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0xMDApOwogIH0KfQoubWVudV9fbGlzdC1pdGVtID4gOmZvY3VzIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tbmV1dHJhbC0wMDApLCBpbnNldCAwIDAgMCA1cHggdmFyKC0tcHJpbWFyeS0yMDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+IDphY3RpdmUgewogIGJveC1zaGFkb3c6IG5vbmU7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+IDphY3RpdmUsCi5tZW51X19saXN0LWl0ZW0gPiA6YWN0aXZlOmJlZm9yZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS0xMDApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+IDphY3RpdmU6YmVmb3JlIHsKICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIDAgdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5tZW51X19saXN0LWl0ZW0gLmJ1dHRvbiB7CiAgYm9yZGVyLXJhZGl1czogMDsKfQoubWVudV9fbGlzdC1pdGVtIC5idXR0b24tLXdpdGgtaWNvbiB7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5tZW51X19saXN0LWl0ZW0tLWxvZ291dCAuYnV0dG9uIHsKICBjb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQoubWVudV9fbGlzdC1pdGVtLS1sb2dvdXQgLmJ1dHRvbjpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLW5ldXRyYWwtMDAwKSwgaW5zZXQgMCAwIDAgNXB4IHJnYmEoMjU1LCA5MiwgOTIsIC4xKTsKfQoubWVudV9fbGlzdC1pdGVtLS1sb2dvdXQgLmJ1dHRvbjphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA5MiwgOTIsIC4xKTsKICBib3gtc2hhZG93OiBub25lOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTWVudS9UcmlnZ2VyL1RyaWdnZXIuY3NzICovCi5tZW51X190cmlnZ2VyW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gewogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLm1lbnVfX3RyaWdnZXJbYXJpYS1leHBhbmRlZD10cnVlXSAuYnV0dG9uX19pY29uLXJpZ2h0IHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpIHsKICAubWVudV9fdHJpZ2dlciAuYnV0dG9uX19pY29uLXJpZ2h0IHsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4xNXM7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07CiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9NZW51L01lbnUuY3NzICovCi5tZW51IHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC05MDApOwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TZWN0aW9uTWVzc2FnZS9TZWN0aW9uTWVzc2FnZS5jc3MgKi8KLnNlY3Rpb24tbWVzc2FnZSB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tbmV1dHJhbC0wMDApOwogIC0tc2VjdGlvbi1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tbmV1dHJhbC04MDApOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpOwp9Ci5zZWN0aW9uLW1lc3NhZ2UsCi5zZWN0aW9uLW1lc3NhZ2VfX2ljb24gewogIGNvbG9yOiB2YXIoLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3IpOwp9Ci5zZWN0aW9uLW1lc3NhZ2UtLWluZm8gewogIGJvcmRlci1yYWRpdXM6IDA7Cn0KLnNlY3Rpb24tbWVzc2FnZS0tcHJpbWFyeSB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tcHJpbWFyeS03MDApOwogIC0tc2VjdGlvbi1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeS01MCk7Cn0KLnNlY3Rpb24tbWVzc2FnZS0tc3VjY2VzcyB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tc3VjY2Vzcy01MDApOwogIC0tc2VjdGlvbi1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tc3VjY2Vzcy0yMDApOwp9Ci5zZWN0aW9uLW1lc3NhZ2UtLXdhcm5pbmcgewogIC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yOnZhcigtLXdhcm5pbmctNTAwKTsKICAtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdhcm5pbmctMjAwKTsKfQouc2VjdGlvbi1tZXNzYWdlLS1lcnJvciB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tZXJyb3ItNTAwKTsKICAtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVycm9yLTIwMCk7Cn0KLnNlY3Rpb24tbWVzc2FnZS0tZGlzYWJsZWQgewogIC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yOnZhcigtLW5ldXRyYWwtNjAwKTsKICAtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW5ldXRyYWwtMjAwKTsKfQouc2VjdGlvbi1tZXNzYWdlX19pY29uIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogIGRpc3BsYXk6IGZsZXg7CiAgaGVpZ2h0OiAyNHB4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHdpZHRoOiAyNHB4Owp9Ci5zZWN0aW9uLW1lc3NhZ2VfX2ljb24tLWluZm8gewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLnNlY3Rpb24tbWVzc2FnZV9faWNvbi0tcHJpbWFyeSB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQouc2VjdGlvbi1tZXNzYWdlX19kZXNjcmlwdGlvbiwKLnNlY3Rpb24tbWVzc2FnZV9fdGl0bGUgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IHZhcigtLXNwYWNpbmctMik7Cn0KLnNlY3Rpb24tbWVzc2FnZV9fZGVzY3JpcHRpb24gewogIGZvbnQ6IHZhcigtLXN1YnRleHQtcmVndWxhcik7Cn0KLnNlY3Rpb24tbWVzc2FnZV9fYWN0aW9uLAouc2VjdGlvbi1tZXNzYWdlX190aXRsZSArIC5zZWN0aW9uLW1lc3NhZ2VfX2Rlc2NyaXB0aW9uIHsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTIpOwp9Ci5zZWN0aW9uLW1lc3NhZ2VfX2FjdGlvbiB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xKSAwOwp9Ci5zZWN0aW9uLW1lc3NhZ2VfX2FjdGlvbiA6aXMoYSwgcCwgYnV0dG9uKSB7CiAgY29sb3I6IGluaGVyaXQ7CiAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgbWluLWhlaWdodDogdW5zZXQ7CiAgcGFkZGluZzogMDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgd2lkdGg6IGZpdC1jb250ZW50Owp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuc2VjdGlvbi1tZXNzYWdlX19hY3Rpb24gLmFuY2hvcjpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yKTsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KfQouc2VjdGlvbi1tZXNzYWdlX19hY3Rpb24gLmFuY2hvcjphY3RpdmUsCi5zZWN0aW9uLW1lc3NhZ2VfX2FjdGlvbiAuYW5jaG9yOmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWN0aW9uLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcik7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1zZWN0aW9uLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvciksIDAgMCAwIDEwcHggdmFyKC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yKTsKICBjb2xvcjogdmFyKC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yKTsKfQouc2VjdGlvbi1tZXNzYWdlLS1kaXNhYmxlZCA6aXMoYSwgcCwgYnV0dG9uKSB7CiAgY3Vyc29yOiBub3QtYWxsb3dlZDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLnNlY3Rpb24tbWVzc2FnZSB7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCkgdmFyKC0tc3BhY2luZy01KTsKICB9CiAgLnNlY3Rpb24tbWVzc2FnZV9fZGVzY3JpcHRpb24gewogICAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICB9CiAgLnNlY3Rpb24tbWVzc2FnZV9fYWN0aW9uIDppcyhhLCBwLCBidXR0b24pIHsKICAgIGZvbnQ6IHZhcigtLWJvZHktMS1tZWRpdW0pOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1Bob25lTnVtYmVyL1Bob25lTnVtYmVyLmNzcyAqLwoucGhvbmUtbnVtYmVyIHsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKfQoucGhvbmUtbnVtYmVyIC5pbnB1dF9fd3JhcHBlciB7CiAgZmxleC1ncm93OiAxOwp9Ci5waG9uZS1udW1iZXIgLnBob25lLW51bWJlcl9fY291bnRyeS1jb2RlLXNlbGVjdCB7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiA5NnB4Owp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9TZWxlY3QvU2VsZWN0LmNzcyAqLwouc2VsZWN0LXdyYXBwZXIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouc2VsZWN0LXdyYXBwZXI6YWZ0ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtOTAwKTsKICBjb250ZW50OiAiIjsKICBoZWlnaHQ6IDI0cHg7CiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzMDAwJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMS41JyBkPSdtOCAxMCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7CiAgbWFzay1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTggMTAgNCA0IDQtNCcvJTNFJTNDL3N2ZyUzRSIpOwogIC13ZWJraXQtbWFzay1wb3NpdGlvbjogY2VudGVyOwogIG1hc2stcG9zaXRpb246IGNlbnRlcjsKICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7CiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDsKICAtd2Via2l0LW1hc2stc2l6ZTogY292ZXI7CiAgbWFzay1zaXplOiBjb3ZlcjsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgcmlnaHQ6IHZhcigtLXNwYWNpbmctNCk7CiAgdG9wOiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogIHdpZHRoOiAyNHB4Owp9Ci5zZWxlY3QgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0yMDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZm9udDogdmFyKC0tYm9keS0yLXJlZ3VsYXIpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTsKICB3aWR0aDogMTAwJTsKfQouc2VsZWN0LS13aXRoLXBsYWNlaG9sZGVyIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuc2VsZWN0OmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS0zMDApOwogIH0KfQouc2VsZWN0OmZvY3VzIHsKICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBvdXRsaW5lOiBub25lOwp9Ci5zZWxlY3Qtd3JhcHBlci0tZm9jdXM6YWZ0ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NlZ21lbnRlZENvbnRyb2wvU2VnbWVudGVkQ29udHJvbC5jc3MgKi8KLnNlZ21lbnRlZC1jb250cm9sX19saXN0LAouc2VnbWVudGVkLWNvbnRyb2xfX3BhbmVsIHsKICBkaXNwbGF5OiBub25lOwp9Ci5oYXMtanMgLnNlZ21lbnRlZC1jb250cm9sX19saXN0LAouaGFzLWpzIC5zZWdtZW50ZWQtY29udHJvbF9fcGFuZWwgewogIGRpc3BsYXk6IGJsb2NrOwp9Ci5oYXMtanMgLnNlZ21lbnRlZC1jb250cm9sIFtyb2xlPXRhYnBhbmVsXVtkYXRhLXN0YXRlPWluYWN0aXZlXSB7CiAgZGlzcGxheTogbm9uZTsKfQouc2VnbWVudGVkLWNvbnRyb2wgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKfQouc2VnbWVudGVkLWNvbnRyb2xfX2xpc3RfX3dyYXBwZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEpOwp9Ci5zZWdtZW50ZWQtY29udHJvbF9fdHJpZ2dlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyOiBub25lOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc20pOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTYwMCk7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZsZXg6IDE7CiAgZm9udDogdmFyKC0tc3VidGV4dC1tZWRpdW0pOwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1zcGFjaW5nLTQpOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLnNlZ21lbnRlZC1jb250cm9sX190cmlnZ2VyW2RhdGEtc3RhdGU9YWN0aXZlXSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLnNlZ21lbnRlZC1jb250cm9sX190cmlnZ2VyW2RhdGEtc3RhdGU9YWN0aXZlXTpmb2N1cy12aXNpYmxlIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tcHJpbWFyeS01MDApLCBpbnNldCAwIDAgMCA1cHggdmFyKC0tbmV1dHJhbC0wMDApOwogIG91dGxpbmU6IG5vbmU7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5zZWdtZW50ZWQtY29udHJvbF9fdHJpZ2dlcltkYXRhLXN0YXRlPWluYWN0aXZlXTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgfQp9Ci5zZWdtZW50ZWQtY29udHJvbF9fdHJpZ2dlcltkYXRhLXN0YXRlPWluYWN0aXZlXTpmb2N1cyB7CiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMnB4IHZhcigtLXByaW1hcnktNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1RhYnMvVGFicy5jc3MgKi8KLnRhYnMgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnRhYnMuc2VnbWVudGVkLWNvbnRyb2wgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEpOwogIHdpZHRoOiAxMDAlOwp9Ci50YWJzLnNlZ21lbnRlZC1jb250cm9sIC50YWJzX19saW5rIHsKICB3aWR0aDogMTAwJTsKfQoudGFicy5zZWdtZW50ZWQtY29udHJvbCBhIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgdmFyKC0tc3BhY2luZy00KTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLnRhYnMuc2VnbWVudGVkLWNvbnRyb2wgYS5hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAudGFicywKICAudGFicy5zZWdtZW50ZWQtY29udHJvbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgICBnYXA6IHZhcigtLXNwYWNpbmctOCk7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIHZhcigtLXNwYWNpbmctOCkgMCB2YXIoLS1zcGFjaW5nLTgpOwogICAgcG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogdmFyKC0tc2l0ZS1oZWFkZXItaGVpZ2h0KTsKICAgIHotaW5kZXg6IDE1OwogIH0KICAudGFicy5zZWdtZW50ZWQtY29udHJvbCAudGFic19fbGluayB7CiAgICB3aWR0aDogYXV0bzsKICB9CiAgLnRhYnMgYSwKICAudGFicy50YWJzLnNlZ21lbnRlZC1jb250cm9sIGEgewogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGNvbG9yOiBpbmhlcml0OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmb250OiB2YXIoLS1ib2R5LTItcmVndWxhcik7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIC50YWJzIGEuYWN0aXZlLAogIC50YWJzLnRhYnMuc2VnbWVudGVkLWNvbnRyb2wgYS5hY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogICAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgfQogIC50YWJzIGE6YmVmb3JlIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgICBoZWlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdmlzaWJpbGl0eTogaGlkZGVuOwogIH0KICBAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgICAudGFicyBhOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KICAgIC50YWJzIGE6bm90KC5hY3RpdmUpOmhvdmVyOmFmdGVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0zMDApOwogICAgICBib3R0b206IDA7CiAgICAgIGNvbnRlbnQ6ICIiOwogICAgICBoZWlnaHQ6IDJweDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICB9CiAgLnRhYnMgYTpub3QoLmFjdGl2ZSk6Zm9jdXM6YWZ0ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS0zMDApOwogIH0KICAudGFicyBhLmFjdGl2ZTphZnRlciwKICAudGFicyBhOm5vdCguYWN0aXZlKTpmb2N1czphZnRlciB7CiAgICBib3R0b206IDA7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogMnB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDEwMCU7CiAgfQogIC50YWJzIGEuYWN0aXZlOmFmdGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Ub2FzdC9Ub2FzdC5jc3MgKi8KLnRvYXN0IHsKICAtLXNsaWRlLWluLWVuZDowOwogIC0tc2xpZGUtaW4tc3RhcnQ6Y2FsYygxMDAlICsgdmFyKC0tc3BhY2luZy04KSk7CiAgYW5pbWF0aW9uOiBzbGlkZS1pbiAwbXMsIHNsaWRlLW91dCAwbXMgNXMgZm9yd2FyZHM7CiAgYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpOwogIGhlaWdodDogYXV0bzsKICBsZWZ0OiB2YXIoLS1zcGFjaW5nLTQpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zcGFjaW5nLTQpKjIpOwp9Ci50b2FzdC0tZXJyb3IgewogIGJhY2tncm91bmQ6CiAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgIDBkZWcsCiAgICAgIHJnYigyMzAgNDUgNTAvNSUpLAogICAgICByZ2IoMjMwIDQ1IDUwLzUlKSksCiAgICB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm94LXNoYWRvdzoKICAgIGluc2V0IDJweCAwIHZhcigtLWVycm9yLTQwMCksCiAgICAwIDc2cHggODBweCByZ2IoMCAwIDAvNyUpLAogICAgMCAyMXB4IDI0cHggcmdiKDAgMCAwLzUlKSwKICAgIDAgOHB4IDEwcHggcmdiKDAgMCAwLzQlKSwKICAgIDAgM3B4IDNweCByZ2IoMCAwIDAvMiUpOwogIGNvbG9yOiB2YXIoLS1lcnJvci01MDApOwp9Ci50b2FzdC0taW5mbyB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC04MDApOwogIGJveC1zaGFkb3c6CiAgICBpbnNldCAycHggMCB2YXIoLS1wcmltYXJ5LTUwMCksCiAgICAwIDc2cHggODBweCByZ2IoMCAwIDAvNyUpLAogICAgMCAyMXB4IDI0cHggcmdiKDAgMCAwLzUlKSwKICAgIDAgOHB4IDEwcHggcmdiKDAgMCAwLzQlKSwKICAgIDAgM3B4IDNweCByZ2IoMCAwIDAvMiUpOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLnRvYXN0X190aXRsZSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZvbnQ6IHZhcigtLWJvZHktMi1yZWd1bGFyKTsKICBnYXA6IHZhcigtLXNwYWNpbmctMik7Cn0KLnRvYXN0X190aXRsZV9faWNvbiB7CiAgZGlzcGxheTogZmxleDsKfQoudG9hc3QtLWluZm8gLnRvYXN0X190aXRsZV9faWNvbiB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLnRvYXN0IHsKICAgIC0tc2xpZGUtaW4tc3RhcnQ6Y2FsYygxMDAlICsgdmFyKC0tc3BhY2luZy0xMikpOwogICAgYm90dG9tOiB2YXIoLS1zcGFjaW5nLTEwKTsKICAgIGxlZnQ6IGF1dG87CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpOwogICAgcmlnaHQ6IHZhcigtLXNwYWNpbmctMTApOwogICAgd2lkdGg6IDQyMHB4OwogIH0KfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSkgewogIC50b2FzdCB7CiAgICBhbmltYXRpb246IHNsaWRlLWluIC4zcyBlYXNlLW91dCwgc2xpZGUtb3V0IC4zcyBlYXNlLWluIDVzIGZvcndhcmRzOwogIH0KfQpAa2V5ZnJhbWVzIHNsaWRlLWluIHsKICAwJSB7CiAgICBvcGFjaXR5OiAuODsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1zbGlkZS1pbi1zdGFydCkpOwogIH0KICB0byB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXNsaWRlLWluLWVuZCkpOwogIH0KfQpAa2V5ZnJhbWVzIHNsaWRlLW91dCB7CiAgMCUgewogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1zbGlkZS1pbi1lbmQpKTsKICB9CiAgdG8gewogICAgb3BhY2l0eTogLjg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tc2xpZGUtaW4tc3RhcnQpKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Ub2dnbGUvVG9nZ2xlLmNzcyAqLwoudG9nZ2xlIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMik7Cn0KLnRvZ2dsZV9faXRlbSB7CiAgd2lkdGg6IDEwMCU7Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TdGVwcy9TdGVwcy5jc3MgKi8KLnN0ZXBzIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwp9Ci5zdGVwc19fbGluayBhLAouc3RlcHNfX2xpbmsgc3BhbiB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLnN0ZXBzX19saW5rIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7Cn0KLnN0ZXBzX19saW5rIC5zdGVwc19fbGlua19fY2hhcmFjdGVyIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKICBkaXNwbGF5OiBmbGV4OwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBoZWlnaHQ6IHZhcigtLXNwYWNpbmctNik7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLTIpOwogIHdpZHRoOiB2YXIoLS1zcGFjaW5nLTYpOwp9Ci5zdGVwc19fbGlua19fZGl2aWRlciB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBtYXJnaW46IDAgdmFyKC0tc3BhY2luZy00KTsKfQouc3RlcHNfX2xpbms6Zmlyc3Qtb2YtdHlwZSAuc3RlcHNfX2xpbmtfX2RpdmlkZXIgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnN0ZXBzX19saW5rLmFjdGl2ZSAuc3RlcHNfX2xpbmtfX2NoYXJhY3RlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5zdGVwc19fbGluay5hY3RpdmUgLnN0ZXBzX19saW5rX19kaXZpZGVyLAouc3RlcHNfX2xpbmsuYWN0aXZlIGEgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5zdGVwc19fbGlua19fZGl2aWRlciB7CiAgICBtYXJnaW46IDAgdmFyKC0tc3BhY2luZy02KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9UaW1lbGluZS9UaW1lbGluZS5jc3MgKi8KLnRpbWVsaW5lIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnRpbWVsaW5lOmFmdGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgY29udGVudDogIiI7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luOiAwIGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci50aW1lbGluZS0tdmVydGljYWw6YWZ0ZXIgewogIGhlaWdodDogMTAwJTsKICBpbnNldDogMCA1MCUgYXV0bzsKICB3aWR0aDogMXB4Owp9Ci50aW1lbGluZS0taG9yaXpvbnRhbCB7CiAgd2lkdGg6IDEwMCU7Cn0KLnRpbWVsaW5lLS1ob3Jpem9udGFsOmFmdGVyIHsKICBoZWlnaHQ6IDFweDsKICBpbnNldDogNTAlIDAgYXV0bzsKICB3aWR0aDogMTAwJTsKfQoudGltZWxpbmVfX2xhYmVsIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgaGVpZ2h0OiAzMnB4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHdpZHRoOiAzMnB4Owp9Ci50aW1lbGluZV9fbGFiZWw6YmVmb3JlIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDMycHg7CiAgd2lkdGg6IDMycHg7CiAgei1pbmRleDogMTA7Cn0KLnRpbWVsaW5lX19sYWJlbCA+IDppcyhzdmcsIHNwYW4pIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHotaW5kZXg6IDIwOwp9Ci50aW1lbGluZS0tdmVydGljYWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgbWFyZ2luOiB2YXIoLS1zcGFjaW5nLTQpIGF1dG8gMDsKfQoudGltZWxpbmUtLWhvcml6b250YWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNpbmctNCk7Cn0KLnRpbWVsaW5lX19sYWJlbC0tcHJpbWFyeSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKfQoudGltZWxpbmVfX2xhYmVsLS1wcmltYXJ5OmJlZm9yZSB7CiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMzInIGhlaWdodD0nMzInIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAzMyAzMiclM0UlM0NwYXRoIGZpbGw9JyUyMzAwQUI5RScgZD0nTTExLjE2OS4wNWM2LjAwNi43MDkgMTIuMzY4IDIuNDEzIDE3LjkyNCA0LjgwMiAxLjE5My41MTMgMi4xMjggMS4yOCAyLjcyIDIuMzA3cy43OSAyLjIyLjYzOCAzLjUxYy0uNzEgNi4wMDUtMi40MTQgMTIuMzY3LTQuODAzIDE3LjkyMy0uNTEzIDEuMTk0LTEuMjggMi4xMy0yLjMwNiAyLjcyMnMtMi4yMi43ODktMy41MS42MzdjLTYuMDA2LS43MS0xMi4zNjgtMi40MTQtMTcuOTI0LTQuODAzLTEuMTk0LS41MTMtMi4xMy0xLjI4LTIuNzIyLTIuMzA3cy0uNzg5LTIuMjItLjYzNy0zLjUxYy43MS02LjAwNiAyLjQxNC0xMi4zNjggNC44MDQtMTcuOTI0LjUxMy0xLjE5MyAxLjI4LTIuMTI4IDIuMzA2LTIuNzJzMi4yMi0uNzkgMy41MS0uNjM4Jy8lM0UlM0Mvc3ZnJTNFIik7Cn0KLnRpbWVsaW5lX19sYWJlbC0tc2Vjb25kYXJ5IHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci50aW1lbGluZV9fbGFiZWwtLXNlY29uZGFyeTpiZWZvcmUgewogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMzMgMzInJTNFJTNDcGF0aCBmaWxsPSclMjNmZmYnIHN0cm9rZT0nJTIzMDBBQjlFJyBkPSdNMTEuMTEuNTQ2YzUuOTU4LjcwMyAxMi4yNzQgMi4zOTYgMTcuNzg1IDQuNzY1IDEuMTEzLjQ3OSAxLjk1NiAxLjE4MSAyLjQ4NiAyLjA5OC41MjkuOTE2LjcxNSAxLjk5OC41NzMgMy4yLS43MDMgNS45NTktMi4zOTUgMTIuMjc0LTQuNzY1IDE3Ljc4Ni0uNDc4IDEuMTEzLTEuMTggMS45NTYtMi4wOTcgMi40ODYtLjkxNy41MjktMS45OTkuNzE1LTMuMjAxLjU3My01Ljk1OS0uNzAzLTEyLjI3NC0yLjM5Ni0xNy43ODYtNC43NjUtMS4xMTMtLjQ3OS0xLjk1Ni0xLjE4MS0yLjQ4Ni0yLjA5OC0uNTI5LS45MTYtLjcxNS0xLjk5OC0uNTczLTMuMjAxQzEuNzUgMTUuNDMgMy40NDIgOS4xMTYgNS44MTIgMy42MDVjLjQ3OC0xLjExMyAxLjE4LTEuOTU2IDIuMDk3LTIuNDg2QzguODI2LjU5IDkuOTA3LjQwNCAxMS4xMS41NDZaJy8lM0UlM0Mvc3ZnJTNFIik7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC50aW1lbGluZV9fbGFiZWwgewogICAgZm9udDogdmFyKC0tYm9keS0xLW1lZGl1bSk7CiAgfQogIC50aW1lbGluZS0tdmVydGljYWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgICBtYXJnaW46IHZhcigtLXNwYWNpbmctNSkgYXV0byAwOwogIH0KICAudGltZWxpbmUtLWhvcml6b250YWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy01KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL29yZ2FuaXNtcy9Gb3JtR3JvdXAvRm9ybUdyb3VwLmNzcyAqLwouZm9ybS1ncm91cCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgovKiBzcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvRm9ybUdyb3VwL0hpbnQvSGludC5jc3MgKi8KLmZvcm0tZ3JvdXBfX2Vycm9yLAouZm9ybS1ncm91cF9faGludCB7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTEpOwogIHdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogIHdpZHRoOiBmaXQtY29udGVudDsKfQouZm9ybS1ncm91cF9faGludCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKfQouZm9ybS1ncm91cF9fZXJyb3IgewogIGNvbG9yOiB2YXIoLS1lcnJvci01MDApOwp9CgovKiBzcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvRm9ybUdyb3VwL0xhYmVsL0xhYmVsLmNzcyAqLwouZm9ybS1pdGVtX19sYWJlbCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBmb250OiB2YXIoLS1zdWJ0ZXh0LXJlZ3VsYXIpOwogIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMSk7CiAgbWF4LXdpZHRoOiAxMDAlOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgd2lkdGg6IGZpdC1jb250ZW50Owp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9SYWRpby9SYWRpby5jc3MgKi8KLnJhZGlvLWdyb3VwIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoucmFkaW9fX2lucHV0LXdyYXBwZXIgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IHZhcigtLXNwYWNpbmctMyk7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5yYWRpb19fbGFiZWwgewogIGN1cnNvcjogcG9pbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KLnJhZGlvX19pbnB1dCB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgLW1vei1hcHBlYXJhbmNlOiBub25lOwogIGFwcGVhcmFuY2U6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLTMwMCk7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTMwMCk7CiAgZGlzcGxheTogZ3JpZDsKICBmb250OiBpbmhlcml0OwogIGhlaWdodDogdmFyKC0tc3BhY2luZy02KTsKICBtYXJnaW46IDA7CiAgbWluLXdpZHRoOiB2YXIoLS1zcGFjaW5nLTYpOwogIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnJhZGlvX19pbnB1dDppcyg6Y2hlY2tlZCwgOmZvY3VzLCA6Zm9jdXMtd2l0aGluLCA6YWN0aXZlKSB7CiAgb3V0bGluZTogbm9uZTsKfQoucmFkaW9fX2lucHV0OmlzKDpjaGVja2VkLCA6YWN0aXZlKSB7CiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAucmFkaW9fX2lucHV0Om5vdCg6ZGlzYWJsZWQsIDpmb2N1cy13aXRoaW4sIDphY3RpdmUsIDpjaGVja2VkKTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnktNTAwKTsKICB9Cn0KLnJhZGlvX19pbnB1dDpiZWZvcmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgY29udGVudDogIiI7CiAgZGlzcGxheTogYmxvY2s7CiAgaGVpZ2h0OiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICByaWdodDogNTAlOwogIHRvcDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTUwJSk7CiAgd2lkdGg6IDA7Cn0KLnJhZGlvX19pbnB1dDpjaGVja2VkOmJlZm9yZSB7CiAgaGVpZ2h0OiAxMnB4OwogIHdpZHRoOiAxMnB4Owp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLnJhZGlvX19pbnB1dDpiZWZvcmUgewogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjE1czsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBoZWlnaHQ7CiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvUGFzc3dvcmQvUGFzc3dvcmQuY3NzICovCi5wYXNzd29yZCArIC5pbnB1dF9fc3VmZml4IHsKICBwb2ludGVyLWV2ZW50czogYXV0bzsKICByaWdodDogdmFyKC0tc3BhY2luZy02KTsKfQoucGFzc3dvcmQgKyAuaW5wdXRfX3N1ZmZpeCAuYnV0dG9uIHsKICBwYWRkaW5nOiAwOwp9Ci5wYXNzd29yZCArIC5pbnB1dF9fc3VmZml4IC5idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc20pOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQoucGFzc3dvcmQgKyAuaW5wdXRfX3N1ZmZpeCAuYnV0dG9uX19sYWJlbCB7CiAgZGlzcGxheTogZmxleDsKICB3aWR0aDogLW1vei1maXQtY29udGVudDsKICB3aWR0aDogZml0LWNvbnRlbnQ7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5pbnB1dF9fd3JhcHBlcjpob3ZlciAuaW5wdXQ6bm90KDotbW96LXJlYWQtb25seSwgOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsIHsKICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgfQogIC5pbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsLAogIC5pbnB1dF9fd3JhcHBlcjpob3ZlciAuaW5wdXQ6bm90KDpyZWFkLW9ubHksIDpkaXNhYmxlZCkgKyAuaW5wdXRfX3N1ZmZpeCAuYnV0dG9uX19sYWJlbCB7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIH0KfQouaW5wdXRfX3dyYXBwZXIgLmlucHV0OmlzKDpmb2N1cywgOmFjdGl2ZSk6bm90KDotbW96LXJlYWQtb25seSwgOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsIHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5pbnB1dF9fd3JhcHBlciAuaW5wdXQ6aXMoOmZvY3VzLCA6YWN0aXZlKTpub3QoOnJlYWQtb25seSwgOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsIHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAucGFzc3dvcmQgKyAuaW5wdXRfX3N1ZmZpeCB7CiAgICByaWdodDogdmFyKC0tc3BhY2luZy00KTsKICB9Cn0K";
1120
+ const wm = "data:text/css;base64,Lyogc3JjL3N0eWxlcy9yZXNldC5jc3MgKi8KYSwKYWJiciwKYWNyb255bSwKYWRkcmVzcywKYXBwbGV0LAphcnRpY2xlLAphc2lkZSwKYXVkaW8sCmIsCmJpZywKYmxvY2txdW90ZSwKYm9keSwKY2FudmFzLApjYXB0aW9uLApjZW50ZXIsCmNpdGUsCmNvZGUsCmRkLApkZWwsCmRldGFpbHMsCmRmbiwKZGl2LApkbCwKZHQsCmVtLAplbWJlZCwKZmllbGRzZXQsCmZpZ2NhcHRpb24sCmZpZ3VyZSwKZm9vdGVyLApmb3JtLApoMSwKaDIsCmgzLApoNCwKaDUsCmg2LApoZWFkZXIsCmhncm91cCwKaHRtbCwKaSwKaWZyYW1lLAppbWcsCmlucywKa2JkLApsYWJlbCwKbGVnZW5kLApsaSwKbWFyaywKbWVudSwKbmF2LApvYmplY3QsCm9sLApvdXRwdXQsCnAsCnByZSwKcSwKcnVieSwKcywKc2FtcCwKc2VjdGlvbiwKc21hbGwsCnNwYW4sCnN0cmlrZSwKc3Ryb25nLApzdWIsCnN1bW1hcnksCnN1cCwKdGFibGUsCnRib2R5LAp0ZCwKdGZvb3QsCnRoLAp0aGVhZCwKdGltZSwKdHIsCnR0LAp1LAp1bCwKdmFyLAp2aWRlbyB7CiAgYm9yZGVyOiAwOwogIGZvbnQ6IGluaGVyaXQ7CiAgZm9udC1zaXplOiAxMDAlOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKfQphcnRpY2xlLAphc2lkZSwKZGV0YWlscywKZmlnY2FwdGlvbiwKZmlndXJlLApmb290ZXIsCmhlYWRlciwKaGdyb3VwLAptZW51LApuYXYsCnNlY3Rpb24gewogIGRpc3BsYXk6IGJsb2NrOwp9CmJvZHkgewogIGxpbmUtaGVpZ2h0OiAxOwp9Cm9sLAp1bCB7CiAgbGlzdC1zdHlsZTogbm9uZTsKfQpibG9ja3F1b3RlLApxIHsKICBxdW90ZXM6IG5vbmU7Cn0KYmxvY2txdW90ZTphZnRlciwKYmxvY2txdW90ZTpiZWZvcmUsCnE6YWZ0ZXIsCnE6YmVmb3JlIHsKICBjb250ZW50OiAiIjsKICBjb250ZW50OiBub25lOwp9CnRhYmxlIHsKICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwogIGJvcmRlci1zcGFjaW5nOiAwOwp9CgovKiBzcmMvc3R5bGVzL2dsb2JhbC5jc3MgKi8KOjpiYWNrZHJvcCwKOmhvc3QsCjpyb290IHsKICAtLW5ldXRyYWwtOTk5OiMwMDA7CiAgLS1uZXV0cmFsLTkwMDojMWIxZjI3OwogIC0tbmV1dHJhbC04MDA6IzJlM2I1NjsKICAtLW5ldXRyYWwtNzAwOiM0ODUyNmQ7CiAgLS1uZXV0cmFsLTYwMDojNjM3MDhhOwogIC0tbmV1dHJhbC01MDA6IzdjODlhMzsKICAtLW5ldXRyYWwtNDAwOiM5ZmFhYzA7CiAgLS1uZXV0cmFsLTMwMDojYmJjMWQzOwogIC0tbmV1dHJhbC0yMDA6I2ViZWRmNTsKICAtLW5ldXRyYWwtMTAwOiNmM2Y0ZmE7CiAgLS1uZXV0cmFsLTUwOiNmOWZhZmM7CiAgLS1uZXV0cmFsLTAwMDojZmZmOwogIC0tcHJpbWFyeS05MDA6IzAwM2MzNzsKICAtLXByaW1hcnktODAwOiMwMDU2NGY7CiAgLS1wcmltYXJ5LTcwMDojMDA4MDc3OwogIC0tcHJpbWFyeS02MDA6IzAwOWE4ZTsKICAtLXByaW1hcnktNTAwOiMwMGFiOWU7CiAgLS1wcmltYXJ5LTQwMDojMTliM2E4OwogIC0tcHJpbWFyeS0zMDA6IzgwZDVjZjsKICAtLXByaW1hcnktMjAwOiNjY2VlZWM7CiAgLS1wcmltYXJ5LTEwMDojZTVmN2Y1OwogIC0tcHJpbWFyeS01MDojZWZmOWY5OwogIC0tc3VjY2Vzcy0yMDA6I2YyZjllYzsKICAtLXN1Y2Nlc3MtNTAwOiMwMDlhM2U7CiAgLS1lcnJvci0yMDA6I2ZlZjRmNTsKICAtLWVycm9yLTMwMDojZjI5Njk5OwogIC0tZXJyb3ItNDAwOiNmZjVjNWM7CiAgLS1lcnJvci01MDA6I2U2MmQzMjsKICAtLWVycm9yLTYwMDojY2YyODJkOwogIC0td2FybmluZy0yMDA6I2ZmZmFmMzsKICAtLXdhcm5pbmctNTAwOiNkYzg2MzM7CiAgLS1kaXNjb3VudC01MDojZmRmMmY0OwogIC0tcHJpbWFyeS1ncmFkaWVudDpsaW5lYXItZ3JhZGllbnQoCiAgICAgIDEzMy41M2RlZywjMTU5YTk1IDI1LjU3JSwjMTBiOGIxIDc0LjI5JSk7CiAgLS1zaGFkb3ctY2FyZDowIDNweCA4cHggcmdiYSg0Niw1OSw4NiwuMSk7CiAgLS1zaGFkb3ctbmF2OjAgMCAxMnB4IHJnYmEoNDYsNTksODYsLjEyKTsKICAtLXNoYWRvdy1idXR0b246MCA4cHggOHB4IC01cHggcmdiYSgxLDE0MSwxMzYsLjIpOwogIC0tc2hhZG93LWZhYjowIDRweCA4cHggLTVweCByZ2JhKDEsMTQxLDEzNiwuMik7CiAgLS1zaGFkb3ctbW9kYWw6MCA3NnB4IDgwcHggcmdiKDAgMCAwLzclKSwwIDIxcHggMjRweCByZ2IoMCAwIDAvNSUpLDAgOHB4IDEwcHggcmdiKDAgMCAwLzQlKSwwIDNweCAzcHggcmdiKDAgMCAwLzIlKTsKICAtLWJvcmRlci1yYWRpdXMtc206NHB4OwogIC0tYm9yZGVyLXJhZGl1cy1tZDo4cHg7CiAgLS1ib3JkZXItcmFkaXVzLWxnOjE2cHg7CiAgLS1zcGFjaW5nLTE6NHB4OwogIC0tc3BhY2luZy0yOjhweDsKICAtLXNwYWNpbmctMzoxMnB4OwogIC0tc3BhY2luZy00OjE2cHg7CiAgLS1zcGFjaW5nLTU6MjBweDsKICAtLXNwYWNpbmctNjoyNHB4OwogIC0tc3BhY2luZy03OjI4cHg7CiAgLS1zcGFjaW5nLTg6MzJweDsKICAtLXNwYWNpbmctOTo0MHB4OwogIC0tc3BhY2luZy0xMDo0OHB4OwogIC0tc3BhY2luZy0xMTo1NnB4OwogIC0tc3BhY2luZy0xMjo2NHB4OwogIC0tZm9udC14dHJhOiJOZXVlIix1aS1zYW5zLXNlcmlmLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLGJsaW5rbWFjc3lzdGVtZm9udCwiU2Vnb2UgVUkiLHJvYm90bywiSGVsdmV0aWNhIE5ldWUiLGFyaWFsLCJOb3RvIFNhbnMiLHNhbnMtc2VyaWYsIkFwcGxlIENvbG9yIEVtb2ppIiwiU2Vnb2UgVUkgRW1vamkiLCJTZWdvZSBVSSBTeW1ib2wiLCJOb3RvIENvbG9yIEVtb2ppIjsKICAtLWRpc3BsYXktMS1tZWRpdW06NTAwIDNyZW0vMS4yIHZhcigtLWZvbnQteHRyYSk7CiAgLS1kaXNwbGF5LTItbWVkaXVtOjUwMCAyLjVyZW0vMS4yIHZhcigtLWZvbnQteHRyYSk7CiAgLS1kaXNwbGF5LTMtbWVkaXVtOjUwMCAycmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMS1yZWd1bGFyOjQwMCAxLjVyZW0vMS4zIHZhcigtLWZvbnQteHRyYSk7CiAgLS10aXRsZS0xLW1lZGl1bTo1MDAgMS41cmVtLzEuMyB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMi1yZWd1bGFyOjQwMCAxLjI1cmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMi1tZWRpdW06NTAwIDEuMjVyZW0vMS4yIHZhcigtLWZvbnQteHRyYSk7CiAgLS10aXRsZS0zLXJlZ3VsYXI6NDAwIDEuMTI1cmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tdGl0bGUtMy1tZWRpdW06NTAwIDEuMTI1cmVtLzEuMiB2YXIoLS1mb250LXh0cmEpOwogIC0tYm9keS0xLXJlZ3VsYXI6NDAwIDEuMTI1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tYm9keS0xLW1lZGl1bTo1MDAgMS4xMjVyZW0vMS41IHZhcigtLWZvbnQteHRyYSk7CiAgLS1ib2R5LTItcmVndWxhcjo0MDAgMXJlbS8xLjMgdmFyKC0tZm9udC14dHJhKTsKICAtLWJvZHktMi1tZWRpdW06NTAwIDFyZW0vMS4zIHZhcigtLWZvbnQteHRyYSk7CiAgLS1zdWJ0ZXh0LXJlZ3VsYXI6NDAwIDAuODc1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tc3VidGV4dC1tZWRpdW06NTAwIDAuODc1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tbGFiZWwtcmVndWxhcjo0MDAgMC42ODc1cmVtLzEuNSB2YXIoLS1mb250LXh0cmEpOwogIC0tbGFiZWwtbWVkaXVtOjUwMCAwLjY4NzVyZW0vMS41IHZhcigtLWZvbnQteHRyYSk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICBmb250OiB2YXIoLS1ib2R5LTItcmVndWxhcik7CiAgbGV0dGVyLXNwYWNpbmc6IC4wMWVtOwp9Ci5zci1vbmx5IHsKICBib3JkZXItd2lkdGg6IDA7CiAgaGVpZ2h0OiAxcHg7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IDFweDsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KOmhvc3QgKiwKOnJvb3QgKiB7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgOmhvc3QsCiAgOnJvb3QgewogICAgZm9udDogdmFyKC0tYm9keS0xLXJlZ3VsYXIpOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvQW5jaG9yL0FuY2hvci5jc3MgKi8KLmFuY2hvciB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1zbSk7CiAgZGlzcGxheTogYmxvY2s7CiAgZm9udC13ZWlnaHQ6IDUwMDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgd2lkdGg6IGZpdC1jb250ZW50Owp9Ci5hbmNob3ItLWlubGluZSB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5hbmNob3ItLWlubGluZTpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwogICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgfQp9Ci5hbmNob3ItLWlubGluZTphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1wcmltYXJ5LTUwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwp9Ci5hbmNob3ItLWlubGluZTpub3QoOmFjdGl2ZSk6Zm9jdXMgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tcHJpbWFyeS03MDApOwp9Ci5hbmNob3ItLW5ldXRyYWwgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTYwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5hbmNob3ItLW5ldXRyYWw6aG92ZXIgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tbmV1dHJhbC04MDApOwogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tbmV1dHJhbC04MDApOwogIH0KfQouYW5jaG9yLS1uZXV0cmFsOmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1uZXV0cmFsLTAwMCksIDAgMCAwIDEwcHggdmFyKC0tbmV1dHJhbC04MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7Cn0KLmFuY2hvci0tbmV1dHJhbDphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1zcGFjaW5nLTIpIHZhcigtLW5ldXRyYWwtMTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC04MDApOwp9Ci5hbmNob3ItLW5ldXRyYWw6Zm9jdXM6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1uZXV0cmFsLTEwMCksIDAgMCAwIDEwcHggdmFyKC0tbmV1dHJhbC04MDApOwp9Ci5hbmNob3ItLXByaW1hcnkgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5hbmNob3ItLW5ldXRyYWw6aG92ZXIgewogICAgY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKICAgIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tcHJpbWFyeS03MDApOwogICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgdmFyKC0tcHJpbWFyeS03MDApOwogIH0KfQouYW5jaG9yLS1wcmltYXJ5OmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1uZXV0cmFsLTAwMCksIDAgMCAwIDkuNXB4IHZhcigtLXByaW1hcnktNzAwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwp9Ci5hbmNob3ItLXByaW1hcnk6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwKTsKICBib3gtc2hhZG93OiAwIDAgMCB2YXIoLS1zcGFjaW5nLTIpIHZhcigtLXByaW1hcnktNTApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCk7Cn0KLmFuY2hvci0tcHJpbWFyeTpmb2N1czphY3RpdmUgewogIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktNTApOwogIGJveC1zaGFkb3c6IDAgMCAwIHZhcigtLXNwYWNpbmctMikgdmFyKC0tcHJpbWFyeS01MCksIDAgMCAwIDkuNXB4IHZhcigtLXByaW1hcnktNzAwKTsKfQouYW5jaG9yLS1kaXNhYmxlZCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvQXZhdGFyL0F2YXRhci5jc3MgKi8KLmF2YXRhciB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7CiAgZGlzcGxheTogZmxleDsKICBmb250LXdlaWdodDogNTAwOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwp9Ci5hdmF0YXItLXNtYWxsIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBmb250LXNpemU6IDEwcHg7CiAgaGVpZ2h0OiAyNHB4OwogIHdpZHRoOiAyNHB4Owp9Ci5hdmF0YXItLW1lZGl1bSB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgZm9udC1zaXplOiAxOHB4OwogIGhlaWdodDogNDBweDsKICB3aWR0aDogNDBweDsKfQouYXZhdGFyLS1sYXJnZSB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1sZyk7CiAgZm9udC1zaXplOiA0MnB4OwogIGhlaWdodDogMTAwcHg7CiAgd2lkdGg6IDEwMHB4Owp9Ci5hdmF0YXJfX2luaXRpYWxzIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL0J1dHRvbi9CdXR0b24uY3NzICovCi5idXR0b24gewogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJvcmRlcjogMDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZm9udDogaW5oZXJpdDsKICBmb250LXdlaWdodDogNTAwOwogIGxldHRlci1zcGFjaW5nOiAuMDFlbTsKICBtYXJnaW46IDA7CiAgbWluLWhlaWdodDogNDhweDsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpIHZhcigtLXNwYWNpbmctNik7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7CiAgd2lkdGg6IDEwMCU7Cn0KLmJ1dHRvbi0tcHJpbWFyeSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5idXR0b24tLXByaW1hcnk6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS02MDApOwogIH0KfQouYnV0dG9uLS1wcmltYXJ5OmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTYwMCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLXByaW1hcnktNjAwKSwgaW5zZXQgMCAwIDAgNXB4IHZhcigtLW5ldXRyYWwtMDAwKTsKICBvdXRsaW5lOiBub25lOwp9Ci5idXR0b24tLXByaW1hcnk6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTcwMCk7CiAgYm94LXNoYWRvdzogbm9uZTsKfQouYnV0dG9uLS1kaXNhYmxlZCwKLmJ1dHRvbi0tcHJpbWFyeTpkaXNhYmxlZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0yMDApOwogIGJveC1zaGFkb3c6IG5vbmU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9Ci5idXR0b24tLXNlY29uZGFyeSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmJ1dHRvbi0tc2Vjb25kYXJ5OmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIH0KfQouYnV0dG9uLS1zZWNvbmRhcnk6Zm9jdXMgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS1zZWNvbmRhcnk6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTEwMCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXByaW1hcnktNjAwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS02MDApOwp9Ci5idXR0b24tLXNlY29uZGFyeTpkaXNhYmxlZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0yMDApOwogIGJveC1zaGFkb3c6IG5vbmU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9Ci5idXR0b24tLXNlY29uZGFyeS0tZmlsbGVkIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLmJ1dHRvbi0tdGVydGlhcnkgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0zKSB2YXIoLS1zcGFjaW5nLTEpOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuYnV0dG9uLS1zZWNvbmRhcnk6aG92ZXIgewogICAgLXdlYmtpdC10ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAxLjVweDsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIDEuNXB4OwogIH0KfQouYnV0dG9uLS10ZXJ0aWFyeTphY3RpdmUsCi5idXR0b24tLXRlcnRpYXJ5OmZvY3VzIHsKICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIDEuNXB4OwogIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIDEuNXB4Owp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuYnV0dG9uLS10ZXJ0aWFyeTpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS03MDApOwogIH0KfQouYnV0dG9uLS10ZXJ0aWFyeTpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMS41cHggdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS10ZXJ0aWFyeTphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLmJ1dHRvbi0tdGVydGlhcnk6ZGlzYWJsZWQsCi5idXR0b24tLXRlcnRpYXJ5W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gewogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OwogIGJveC1zaGFkb3c6IG5vbmU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQouYnV0dG9uLS13YXJuaW5nIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1lcnJvci01MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5idXR0b24tLXdhcm5pbmc6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXJyb3ItNDAwKTsKICB9Cn0KLmJ1dHRvbi0td2FybmluZzpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLWVycm9yLTQwMCksIGluc2V0IDAgMCAwIDVweCB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS13YXJuaW5nOmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZXJyb3ItNDAwKTsKICBib3gtc2hhZG93OiBub25lOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuYnV0dG9uLS13YXJuaW5nOmZvY3VzOm5vdCg6aG92ZXIpIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWVycm9yLTUwMCk7CiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tZXJyb3ItNTAwKSwgaW5zZXQgMCAwIDAgNXB4IHZhcigtLW5ldXRyYWwtMDAwKTsKICB9Cn0KLmJ1dHRvbi0tbmV1dHJhbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtOTAwKTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmJ1dHRvbi0tbmV1dHJhbDpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgfQp9Ci5idXR0b24tLW5ldXRyYWw6Zm9jdXMgewogIGJveC1zaGFkb3c6CiAgICBpbnNldCAwIDAgMCAxcHggdmFyKC0tcHJpbWFyeS0yMDApLAogICAgaW5zZXQgMCAwIDAgM3B4IHZhcigtLW5ldXRyYWwtMDAwKSwKICAgIGluc2V0IDAgMCAwIDRweCB2YXIoLS1wcmltYXJ5LTIwMCk7CiAgb3V0bGluZTogbm9uZTsKfQouYnV0dG9uLS1uZXV0cmFsOmFjdGl2ZSB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXByaW1hcnktNTAwKTsKfQouYnV0dG9uLS1uZXV0cmFsOmRpc2FibGVkIHsKICBvcGFjaXR5OiAuNjsKfQouYnV0dG9uLS1pY29uLS1wcmltYXJ5LAouYnV0dG9uLS1pY29uLS1zZWNvbmRhcnkgewogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc20pOwogIGNvbG9yOiBpbmhlcml0OwogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIG1pbi1oZWlnaHQ6IHVuc2V0OwogIHBhZGRpbmc6IDA7CiAgd2lkdGg6IGF1dG87Cn0KLmJ1dHRvbi0taWNvbi0tcHJpbWFyeSB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQouYnV0dG9uLS1pY29uLS1wcmltYXJ5W2FyaWEtZGlzYWJsZWQ9dHJ1ZV0gewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTQwMCk7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5idXR0b24tLWljb24tLXByaW1hcnk6aG92ZXIgewogICAgY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKICB9Cn0KLmJ1dHRvbi0taWNvbi0tcHJpbWFyeTpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLXByaW1hcnktNTAwKTsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLmJ1dHRvbi0taWNvbi0tcHJpbWFyeTphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTApOwp9Ci5idXR0b24tLWljb24tLXNlY29uZGFyeSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtOTAwKTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmJ1dHRvbi0taWNvbi0tc2Vjb25kYXJ5OmhvdmVyIHsKICAgIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7CiAgfQp9Ci5idXR0b24tLWljb24tLXNlY29uZGFyeTpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHZhcigtLW5ldXRyYWwtOTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC05MDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLmJ1dHRvbi0taWNvbi0tc2Vjb25kYXJ5OmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0xMDApOwp9Ci5idXR0b24tLXdpdGgtaWNvbiB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQouYnV0dG9uX19pY29uIHsKICBkaXNwbGF5OiBmbGV4Owp9Ci5idXR0b25fX2xhYmVsIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IHN1YjsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmJ1dHRvbiB7CiAgICB3aWR0aDogYXV0bzsKICB9Cn0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpIHsKICAuYnV0dG9uLmJ1dHRvbi0tcGVuZGluZyB7CiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAgIHVzZXItc2VsZWN0OiBub25lOwogIH0KICAuYnV0dG9uLmJ1dHRvbi0tcGVuZGluZzphZnRlciB7CiAgICBhbmltYXRpb246IGJ1dHRvbi1zcGlubmVyIDFzIGVhc2UgaW5maW5pdGU7CiAgICBib3JkZXI6IDRweCBzb2xpZCB0cmFuc3BhcmVudDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIGJvcmRlci10b3A6IDRweCBzb2xpZCB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogMTZweDsKICAgIGluc2V0OiAwOwogICAgbWFyZ2luOiBhdXRvOwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDE2cHg7CiAgfQogIC5idXR0b24tLXNlY29uZGFyeS5idXR0b24tLXBlbmRpbmc6YWZ0ZXIgewogICAgYm9yZGVyLXRvcC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIH0KICBAa2V5ZnJhbWVzIGJ1dHRvbi1zcGlubmVyIHsKICAgIDAlIHsKICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMHR1cm4pOwogICAgfQogICAgdG8gewogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxdHVybik7CiAgICB9CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9DYWxsVG9BY3Rpb24vQ2FsbFRvQWN0aW9uLmNzcyAqLwouY2FsbC10by1hY3Rpb24gewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLmNhbGwtdG8tYWN0aW9uX193cmFwcGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgZGlzcGxheTogZmxleDsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouY2FsbC10by1hY3Rpb25fX2JhY2tncm91bmQgewogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE3NTQnIGhlaWdodD0nMTc5NScgZmlsbD0nbm9uZSclM0UlM0NlbGxpcHNlIGN4PSc4NzYuOTIzJyBjeT0nOTM3LjQ1NycgZmlsbD0nJTIzMDA5QThFJyByeD0nMzQ5JyByeT0nODA1LjUnIHRyYW5zZm9ybT0ncm90YXRlKDYzLjkzMyA4NzYuOTIzIDkzNy40NTcpJy8lM0UlM0NwYXRoIHN0cm9rZT0nJTIzMTlCM0E4JyBzdHJva2Utd2lkdGg9JzInIGQ9J001OTQuMzA0IDEwMjcuMzlDNTA4Ljg2IDgxNS44NjggNDY3LjcyOSA2MDkuNzg2IDQ3MC4yNjcgNDQ3LjYxNGMxLjI2OS04MS4wODggMTMuNDU2LTE1MS4xNDcgMzYuNDM5LTIwNS40MDcgMjIuOTgyLTU0LjI1NiA1Ni43MjUtOTIuNjQ3IDEwMS4wODYtMTEwLjU2NnM5NS4zMDItMTMuNzM2IDE0OS41MTkgOS4zMzZjNTQuMjIyIDIzLjA3NCAxMTEuNjQ5IDY1LjAxMyAxNjguODgyIDEyMi40NyAxMTQuNDY3IDExNC45MSAyMjguMDA3IDI5MS43NDIgMzEzLjQ0NyA1MDMuMjY4IDg1LjQ1IDIxMS41MjUgMTI2LjU4IDQxNy42MDUgMTI0LjA0IDU3OS43NzUtMS4yNyA4MS4wOS0xMy40NSAxNTEuMTUtMzYuNDQgMjA1LjQxLTIyLjk4IDU0LjI2LTU2LjcyIDkyLjY1LTEwMS4wOCAxMTAuNTctNDQuMzcgMTcuOTItOTUuMzEgMTMuNzMtMTQ5LjUyLTkuMzQtNTQuMjMtMjMuMDctMTExLjY1My02NS4wMS0xNjguODg2LTEyMi40Ny0xMTQuNDYzLTExNC45MS0yMjguMDA2LTI5MS43NC0zMTMuNDUtNTAzLjI3WicvJTNFJTNDL3N2ZyUzRSIpOwogIGJhY2tncm91bmQtcG9zaXRpb246IC0zMDRweCAtNTI2cHg7CiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOwogIGNvbnRlbnQ6ICIiOwogIGhlaWdodDogMTc5NC4xMXB4OwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTc1My44NXB4Owp9Ci5jYWxsLXRvLWFjdGlvbl9fY29udGVudCB7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSB2YXIoLS1zcGFjaW5nLTQpIDY0cHggdmFyKC0tc3BhY2luZy00KTsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiA0Owp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAuY2FsbC10by1hY3Rpb24gewogICAgcGFkZGluZzogMCB2YXIoLS1zcGFjaW5nLTgpOwogIH0KICAuY2FsbC10by1hY3Rpb25fX3dyYXBwZXIgewogICAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgfQogIC5jYWxsLXRvLWFjdGlvbl9fYmFja2dyb3VuZCB7CiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMjQ2cHggLTY3MXB4OwogIH0KICAuY2FsbC10by1hY3Rpb25fX2NvbnRlbnQgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KSB2YXIoLS1zcGFjaW5nLTEyKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL0NoaXAvQ2hpcC5jc3MgKi8KLmNoaXAtZ3JvdXAgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKfQouY2hpcC1ncm91cCwKLmNoaXBfX2lucHV0LXdyYXBwZXIsCi5jaGlwX19sYWJlbCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5jaGlwX19sYWJlbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtMjAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC04MDApOwogIGN1cnNvcjogcG9pbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy04KTsKICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwp9Ci5jaGlwX19pbnB1dCB7CiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwogIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKICBhcHBlYXJhbmNlOiBub25lOwogIGluc2V0OiAwOwogIG1hcmdpbjogMDsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwp9Ci5jaGlwX19pbnB1dDppcyg6Y2hlY2tlZCwgOmZvY3VzLCA6Zm9jdXMtd2l0aGluLCA6YWN0aXZlKSB7CiAgb3V0bGluZTogbm9uZTsKfQouY2hpcF9faW5wdXQ6ZGlzYWJsZWQgKyAuY2hpcF9fbGFiZWwgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMjAwKTsKfQouY2hpcF9faW5wdXQ6aXMoOmNoZWNrZWQsIDphY3RpdmUpICsgLmNoaXBfX2xhYmVsIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgYm94LXNoYWRvdzogbm9uZTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuY2hpcF9faW5wdXQ6bm90KDpkaXNhYmxlZCwgOmZvY3VzLXdpdGhpbiwgOmFjdGl2ZSwgOmNoZWNrZWQpOmhvdmVyICsgLmNoaXBfX2xhYmVsIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICB9Cn0KLmNoaXBfX2lucHV0OmNoZWNrZWQ6Zm9jdXMtdmlzaWJsZSArIC5jaGlwX19sYWJlbCB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLXByaW1hcnktNTAwKSwgaW5zZXQgMCAwIDAgNXB4IHZhcigtLW5ldXRyYWwtMDAwKTsKfQouY2hpcF9faW5wdXQ6bm90KDpkaXNhYmxlZCk6aXMoOmNoZWNrZWQsIDphY3RpdmUsIDpmb2N1cywgOmZvY3VzLXdpdGhpbikgKyAuY2hpcF9fbGFiZWwgewogIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLmNoaXBfX2xhYmVsIHsKICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IsIGNvbG9yOwogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjE1czsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLW91dDsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL0lucHV0RmllbGQvSW5wdXRGaWVsZC5jc3MgKi8KLmlucHV0IHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0yMDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZm9udDogdmFyKC0tYm9keS0yLXJlZ3VsYXIpOwogIGZvbnQtZmFtaWx5OiBpbmhlcml0OwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTsKICB3aWR0aDogMTAwJTsKfQouaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTQwMCk7Cn0KLmlucHV0OjpwbGFjZWhvbGRlciB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKfQouaW5wdXQtLXN1Y2NlcyB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYWxlcnQtc3VjY2VzLTUwMCk7Cn0KLmlucHV0W2FyaWEtaW52YWxpZD10cnVlXSB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZXJyb3ItNTAwKTsKfQouaW5wdXQ6ZGlzYWJsZWQgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwogIGN1cnNvcjogZGVmYXVsdDsKfQouaW5wdXQ6aXMoOmZvY3VzLCA6Zm9jdXMtd2l0aGluLCA6YWN0aXZlKSB7CiAgb3V0bGluZTogbm9uZTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgLmlucHV0X193cmFwcGVyOmhvdmVyIC5pbnB1dDpub3QoOi1tb3otcmVhZC1vbmx5LCA6ZGlzYWJsZWQpIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS0zMDApOwogIH0KICAuaW5wdXQ6aG92ZXI6bm90KDpkaXNhYmxlZCksCiAgLmlucHV0X193cmFwcGVyOmhvdmVyIC5pbnB1dDpub3QoOnJlYWQtb25seSwgOmRpc2FibGVkKSB7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktMzAwKTsKICB9Cn0KLmlucHV0X193cmFwcGVyIC5pbnB1dDppcyg6Zm9jdXMsIDphY3RpdmUpOm5vdCg6LW1vei1yZWFkLW9ubHksIDpkaXNhYmxlZCkgewogIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5pbnB1dF9fd3JhcHBlciAuaW5wdXQ6aXMoOmZvY3VzLCA6YWN0aXZlKTpub3QoOnJlYWQtb25seSwgOmRpc2FibGVkKSB7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLmlucHV0LS13aXRoLXByZWZpeCB7CiAgcGFkZGluZy1sZWZ0OiBjYWxjKHZhcigtLXNwYWNpbmctNCkqMiArIDI0cHgpOwp9Ci5pbnB1dC0td2l0aC1zdWZmaXggewogIHBhZGRpbmctcmlnaHQ6IGNhbGModmFyKC0tc3BhY2luZy00KSoyICsgMjRweCk7Cn0KLmlucHV0X19wcmVmaXgsCi5pbnB1dF9fc3VmZml4IHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZGlzcGxheTogZmxleDsKICBmb250LWZhbWlseTogaW5oZXJpdDsKICBmb250LXNpemU6IGluaGVyaXQ7CiAgaGVpZ2h0OiAxMDAlOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHBvaW50ZXItZXZlbnRzOiBub25lOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMjRweDsKfQouaW5wdXRfX3ByZWZpeCB7CiAgbGVmdDogdmFyKC0tc3BhY2luZy00KTsKfQouaW5wdXRfX3N1ZmZpeCB7CiAgcmlnaHQ6IHZhcigtLXNwYWNpbmctNCk7Cn0KaW5wdXRbdHlwZT1kYXRlXTo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHsKICBiYWNrZ3JvdW5kOiBub25lOwogIGhlaWdodDogMjRweDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgcmlnaHQ6IHZhcigtLXNwYWNpbmctNCk7CiAgd2lkdGg6IDI0cHg7CiAgei1pbmRleDogMTsKfQppbnB1dFt0eXBlPWRhdGVdIHsKICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgLW1vei1hcHBlYXJhbmNlOiBub25lOwogIGFwcGVhcmFuY2U6IG5vbmU7Cn0KaW5wdXQ6Oi13ZWJraXQtZGF0ZS1hbmQtdGltZS12YWx1ZSB7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQouaW5wdXRfX3N1ZmZpeCArIGlucHV0W3R5cGU9ZGF0ZV06Oi13ZWJraXQtY2FsZW5kYXItcGlja2VyLWluZGljYXRvciB7CiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7CiAgY29sb3I6IHRyYW5zcGFyZW50Owp9Ci5pbnB1dF9fd3JhcHBlciB7CiAgZGlzcGxheTogZmxleDsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi8qIHNyYy9jb21wb25lbnRzL2F0b21zL1N0YXR1c0NoaXAvU3RhdHVzQ2hpcC5jc3MgKi8KLnN0YXR1cy1jaGlwIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zdGF0dXMtY2hpcC1iYWNrZ3JvdW5kLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBjb2xvcjogdmFyKC0tc3RhdHVzLWNoaXAtY29sb3IpOwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEpIHZhcigtLXNwYWNpbmctMik7Cn0KLnN0YXR1cy1jaGlwLS1zdWNjZXNzIHsKICAtLXN0YXR1cy1jaGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tc3VjY2Vzcy01MDApOwogIC0tc3RhdHVzLWNoaXAtY29sb3I6dmFyKC0tbmV1dHJhbC0wMDApOwp9Ci5zdGF0dXMtY2hpcC0td2FybmluZyB7CiAgLS1zdGF0dXMtY2hpcC1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdhcm5pbmctNTAwKTsKICAtLXN0YXR1cy1jaGlwLWNvbG9yOnZhcigtLW5ldXRyYWwtMDAwKTsKfQouc3RhdHVzLWNoaXAtLWVycm9yIHsKICAtLXN0YXR1cy1jaGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tZXJyb3ItNTAwKTsKICAtLXN0YXR1cy1jaGlwLWNvbG9yOnZhcigtLW5ldXRyYWwtMDAwKTsKfQouc3RhdHVzLWNoaXAtLWRpc2FibGVkIHsKICAtLXN0YXR1cy1jaGlwLWJhY2tncm91bmQtY29sb3I6dmFyKC0tbmV1dHJhbC00MDApOwogIC0tc3RhdHVzLWNoaXAtY29sb3I6dmFyKC0tbmV1dHJhbC0wMDApOwp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9Td2l0Y2gvU3dpdGNoLmNzcyAqLwouc3dpdGNoX19sYWJlbCB7CiAgY3Vyc29yOiBwb2ludGVyOwp9Ci5zd2l0Y2hfX3RodW1iIHsKICAtLXN3aXRjaC13aWR0aDo1MXB4OwogIGJhY2tncm91bmQ6CiAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgIHRvIHJpZ2h0LAogICAgICB2YXIoLS1wcmltYXJ5LTUwMCkgNTAlLAogICAgICB2YXIoLS1uZXV0cmFsLTIwMCkgNTAlKTsKICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlOwogIGJhY2tncm91bmQtc2l6ZTogMjAwJTsKICBib3JkZXItcmFkaXVzOiAyNHB4OwogIGN1cnNvcjogcG9pbnRlcjsKICBoZWlnaHQ6IDMxcHg7CiAgbWFyZ2luOiAwOwogIG1pbi13aWR0aDogdmFyKC0tc3dpdGNoLXdpZHRoKTsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICB3aWR0aDogdmFyKC0tc3dpdGNoLXdpZHRoKTsKfQouc3dpdGNoX190aHVtYiwKYnV0dG9uLnN3aXRjaF9fdGh1bWIgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiAgYXBwZWFyYW5jZTogbm9uZTsKfQpidXR0b24uc3dpdGNoX190aHVtYiB7CiAgYm9yZGVyOiBub25lOwp9Ci5zd2l0Y2hfX3RodW1iOmNoZWNrZWQsCi5zd2l0Y2hfX3RodW1iW2RhdGEtc3RhdGU9Y2hlY2tlZF0gewogIGJhY2tncm91bmQtcG9zaXRpb246IDA7Cn0KLnN3aXRjaF9fdGh1bWI6YWZ0ZXIgewogIC0tc3dpdGNoLXRodW1iLXdpZHRoOjI3cHg7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3gtc2hhZG93OiAwIDNweCA4cHggcmdiYSgwLCAwLCAwLCAuMTUpLCAwIDNweCAxcHggcmdiKDAgMCAwLzYlKTsKICBjb250ZW50OiAiIjsKICBoZWlnaHQ6IDI3cHg7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRvcDogMnB4OwogIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgycHgpOwogIHdpZHRoOiB2YXIoLS1zd2l0Y2gtdGh1bWItd2lkdGgpOwp9CmJ1dHRvbi5zd2l0Y2hfX3RodW1iOmFmdGVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYygzLjVweCAtIHZhcigtLXN3aXRjaC10aHVtYi13aWR0aCkpKTsKfQouc3dpdGNoX190aHVtYjpjaGVja2VkOmFmdGVyIHsKICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoY2FsYyh2YXIoLS1zd2l0Y2gtd2lkdGgpIC0gdmFyKC0tc3dpdGNoLXRodW1iLXdpZHRoKSAtIDJweCkpOwp9CmJ1dHRvbi5zd2l0Y2hfX3RodW1iW2RhdGEtc3RhdGU9Y2hlY2tlZF06YWZ0ZXIgewogIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMy41cHgpOwp9Ci5zd2l0Y2hfX2xhYmVsLS1kaXNhYmxlZCB7CiAgY3Vyc29yOiBkZWZhdWx0Owp9Ci5zd2l0Y2hfX3RodW1iOmRpc2FibGVkIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgY3Vyc29yOiBub3QtYWxsb3dlZDsKfQouc3dpdGNoX190aHVtYjpkaXNhYmxlZDphZnRlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IG5vbmU7Cn0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpIHsKICAuc3dpdGNoX190aHVtYiB7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiA3NW1zOwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogYmFja2dyb3VuZC1wb3NpdGlvbjsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogIH0KICAuc3dpdGNoX190aHVtYjphZnRlciB7CiAgICB0cmFuc2l0aW9uLWR1cmF0aW9uOiAuMTVzOwogICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNmb3JtOwogICAgdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb246IGVhc2UtaW4tb3V0OwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvVGV4dEFyZWEvVGV4dEFyZWEuY3NzICovCi50ZXh0LWFyZWEgewogIGJvcmRlcjogbm9uZTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tbmV1dHJhbC00MDApOwogIGZvbnQ6IHZhcigtLWJvZHktMi1yZWd1bGFyKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpOwp9Ci50ZXh0LWFyZWFbYXJpYS1pbnZhbGlkPXRydWVdIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggdmFyKC0tZXJyb3ItNTAwKTsKfQoudGV4dC1hcmVhOjotbW96LXBsYWNlaG9sZGVyIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwp9Ci50ZXh0LWFyZWE6OnBsYWNlaG9sZGVyIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAudGV4dC1hcmVhOmhvdmVyIHsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTMwMCk7CiAgfQp9Ci50ZXh0LWFyZWE6Zm9jdXMgewogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQoKLyogc3JjL2NvbXBvbmVudHMvYXRvbXMvVW5vcmRlcmVkTGlzdC9Vbm9yZGVyZWRMaXN0LmNzcyAqLwoudW5vcmRlcmVkLWxpc3QtLWNoZWNrID4gbGkgewogIC0tbW9iaWxlLWNoZWNrOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggZmlsbD0nJTIzMDBBQjlFJyBkPSdNOC4wMDIuMDM3YzQuNTA0LjUzMiA5LjI3NiAxLjgxIDEzLjQ0MyAzLjYwMi44OTQuMzg1IDEuNTk2Ljk2IDIuMDQgMS43M3MuNTkyIDEuNjY1LjQ3OCAyLjYzMmMtLjUzMiA0LjUwNS0xLjgxIDkuMjc2LTMuNjAyIDEzLjQ0My0uMzg0Ljg5NS0uOTYgMS41OTctMS43MyAyLjA0MXMtMS42NjUuNTkyLTIuNjMyLjQ3OGMtNC41MDUtLjUzMi05LjI3Ni0xLjgxLTEzLjQ0My0zLjYwMi0uODk1LS4zODUtMS41OTctLjk2LTIuMDQxLTEuNzNzLS41OTItMS42NjUtLjQ3OC0yLjYzM2MuNTMyLTQuNTA0IDEuODEtOS4yNzYgMy42MDItMTMuNDQzLjM4NS0uODk0Ljk2LTEuNTk2IDEuNzMtMi4wNFM3LjAzNC0uMDc3IDguMDAyLjAzNycvJTNFJTNDcGF0aCBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuMjUnIGQ9J00xNy4zMzMgOC4zMzMgMTAgMTUuNjY2bC0zLjMzMy0zLjMzMycvJTNFJTNDL3N2ZyUzRSIpOwogIC0tZGVza3RvcC1jaGVjazp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczMicgaGVpZ2h0PSczMicgZmlsbD0nbm9uZScgdmlld0JveD0nMCAwIDI0IDI0JyUzRSUzQ3BhdGggZmlsbD0nJTIzMDBBQjlFJyBkPSdNOC4wMDIuMDM3YzQuNTA0LjUzMiA5LjI3NiAxLjgxIDEzLjQ0MyAzLjYwMi44OTQuMzg1IDEuNTk2Ljk2IDIuMDQgMS43M3MuNTkyIDEuNjY1LjQ3OCAyLjYzMmMtLjUzMiA0LjUwNS0xLjgxIDkuMjc2LTMuNjAyIDEzLjQ0My0uMzg0Ljg5NS0uOTYgMS41OTctMS43MyAyLjA0MXMtMS42NjUuNTkyLTIuNjMyLjQ3OGMtNC41MDUtLjUzMi05LjI3Ni0xLjgxLTEzLjQ0My0zLjYwMi0uODk1LS4zODUtMS41OTctLjk2LTIuMDQxLTEuNzNzLS41OTItMS42NjUtLjQ3OC0yLjYzM2MuNTMyLTQuNTA0IDEuODEtOS4yNzYgMy42MDItMTMuNDQzLjM4NS0uODk0Ljk2LTEuNTk2IDEuNzMtMi4wNFM3LjAzNC0uMDc3IDguMDAyLjAzNycvJTNFJTNDcGF0aCBzdHJva2U9JyUyM2ZmZicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuMjUnIGQ9J00xNy4zMzMgOC4zMzMgMTAgMTUuNjY2bC0zLjMzMy0zLjMzMycvJTNFJTNDL3N2ZyUzRSIpOwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IHZhcigtLXNwYWNpbmctMyk7Cn0KLnVub3JkZXJlZC1saXN0LS1jaGVjayA+IGxpOmJlZm9yZSB7CiAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tbW9iaWxlLWNoZWNrKTsKICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OwogIGNvbnRlbnQ6ICIiOwogIGhlaWdodDogMjRweDsKICB3aWR0aDogMjRweDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLnVub3JkZXJlZC1saXN0LS1jaGVjayA+IGxpOmJlZm9yZSB7CiAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kZXNrdG9wLWNoZWNrKTsKICAgIGhlaWdodDogMzJweDsKICAgIHdpZHRoOiAzMnB4OwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0NhcmQvQ2FyZEFjdGlvbi9DYXJkQWN0aW9uLmNzcyAqLwouY2FyZF9faGVhZGVyX19hY3Rpb24gewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBmb250OiB2YXIoLS1zdWJ0ZXh0LW1lZGl1bSk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19oZWFkZXJfX2FjdGlvbiB7CiAgICBmb250OiB2YXIoLS1ib2R5LTEtbWVkaXVtKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRCb2R5L0NhcmRCb2R5LmNzcyAqLwouY2FyZF9fYm9keSB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmNhcmRfX2JvZHkgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL2ljb25zL2Z1bmN0aW9uYWwvU3Bpbm5lci9TcGlubmVyLmNzcyAqLwpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSkgewogIC5zcGlubmVyIGNpcmNsZTpsYXN0LW9mLXR5cGUgewogICAgYW5pbWF0aW9uOiBidXR0b24tc3Bpbm5lciAxcyBlYXNlIGluZmluaXRlOwogICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyOwogIH0KICBAa2V5ZnJhbWVzIHNwaW5uZXIgewogICAgMCUgewogICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwdHVybik7CiAgICB9CiAgICB0byB7CiAgICAgIHRyYW5zZm9ybTogcm90YXRlKDF0dXJuKTsKICAgIH0KICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRFbXB0eVN0YXRlL0NhcmRFbXB0eVN0YXRlLmNzcyAqLwouY2FyZF9fZW1wdHktc3RhdGUgewogIC0tY2FyZC1lbXB0eS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW5ldXRyYWwtMTAwKTsKICAtLWNhcmQtZW1wdHktc3RhdGUtaWNvbi1jb2xvcjp2YXIoLS1uZXV0cmFsLTgwMCk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNzAwKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5jYXJkX19lbXB0eS1zdGF0ZS0tZXJyb3IgewogIC0tY2FyZC1lbXB0eS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVycm9yLTIwMCk7CiAgLS1jYXJkLWVtcHR5LXN0YXRlLWljb24tY29sb3I6dmFyKC0tZXJyb3ItNTAwKTsKfQouY2FyZF9fZW1wdHktc3RhdGUtLXN0YW5kYWxvbmUgewogIHBhZGRpbmc6IDA7Cn0KLmNhcmRfX2VtcHR5LXN0YXRlX193cmFwcGVyIHsKICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY2FyZC1lbXB0eS1zdGF0ZS1iYWNrZ3JvdW5kLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiBhdXRvOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNik7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5jYXJkX19lbXB0eS1zdGF0ZS0tc3RhbmRhbG9uZSAuY2FyZF9fZW1wdHktc3RhdGVfX3dyYXBwZXIgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYm9yZGVyLXJhZGl1czogMDsKICBib3gtc2hhZG93OiBpbnNldCAwIC0xcHggdmFyKC0tbmV1dHJhbC0yMDApOwogIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQouY2FyZF9fZW1wdHktc3RhdGVfX2ljb24sCi5jYXJkX19lbXB0eS1zdGF0ZV9fdGl0bGUgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTgwMCk7Cn0KLmNhcmRfX2VtcHR5LXN0YXRlX19pY29uIHsKICBjb2xvcjogdmFyKC0tY2FyZC1lbXB0eS1zdGF0ZS1pY29uLWNvbG9yKTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMyk7Cn0KLmNhcmRfX2VtcHR5LXN0YXRlX190aXRsZSB7CiAgZm9udC13ZWlnaHQ6IDgwMDsKICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTIpOwp9Ci5jYXJkX19lbXB0eS1zdGF0ZS0tc3RhbmRhbG9uZSA6aXMoLmNhcmRfX2VtcHR5LXN0YXRlX190aXRsZSwgLmNhcmRfX2VtcHR5LXN0YXRlX19kZXNjcmlwdGlvbikgewogIG1hcmdpbi1ib3R0b206IDA7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19lbXB0eS1zdGF0ZSB7CiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNik7CiAgfQogIC5jYXJkX19lbXB0eS1zdGF0ZS0tc3RhbmRhbG9uZSB7CiAgICBwYWRkaW5nOiAwOwogIH0KICAuY2FyZF9fZW1wdHktc3RhdGVfX3dyYXBwZXIgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy04KTsKICB9CiAgLmNhcmRfX2VtcHR5LXN0YXRlLS1zdGFuZGFsb25lIC5jYXJkX19lbXB0eS1zdGF0ZV9fd3JhcHBlciB7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpOwogIH0KICAuY2FyZF9fZW1wdHktc3RhdGVfX2Rlc2NyaXB0aW9uLAogIC5jYXJkX19lbXB0eS1zdGF0ZV9fdGl0bGUgewogICAgbWFyZ2luLWxlZnQ6IGF1dG87CiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87CiAgICBtYXgtd2lkdGg6IDUyNXB4OwogIH0KICAuY2FyZF9fZW1wdHktc3RhdGUtLXN0YW5kYWxvbmUgOmlzKC5jYXJkX19lbXB0eS1zdGF0ZV9fdGl0bGUsIC5jYXJkX19lbXB0eS1zdGF0ZV9fZGVzY3JpcHRpb24pIHsKICAgIG1heC13aWR0aDogdW5zZXQ7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkRm9vdGVyL0NhcmRGb290ZXIuY3NzICovCi5jYXJkX19mb290ZXIgewogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19mb290ZXIgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRIZWFkZXIvQ2FyZEhlYWRlci5jc3MgKi8KLmNhcmRfX2hlYWRlciB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IHZhcigtLW5ldXRyYWwtMjAwKTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5jYXJkX19oZWFkZXItLXN0aWNreSB7CiAgLS1jYXJkLWhlYWRlci1zdGlja3ktdG9wOjA7CiAgcG9zaXRpb246IHN0aWNreTsKICB0b3A6IHZhcigtLWNhcmQtaGVhZGVyLXN0aWNreS10b3ApOwogIHotaW5kZXg6IDE7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19oZWFkZXIgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9CiAgLmNhcmRfX2hlYWRlci5jYXJkX19oZWFkZXItLXRhYnMgewogICAgcGFkZGluZzogMDsKICB9CiAgLmNhcmRfX2hlYWRlci5jYXJkX19oZWFkZXItLXRhYnMgLnRhYnMgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkSXRlbS9DYXJkSXRlbS5jc3MgKi8KLmNhcmRfX2JvZHlfX2l0ZW0gewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBnYXA6IHZhcigtLXNwYWNpbmctNik7Cn0KLmNhcmRfX2JvZHkgLmNhcmRfX2JvZHlfX2l0ZW06bm90KDpsYXN0LW9mLXR5cGUpIHsKICBtYXJnaW4tYm90dG9tOiAxNnB4Owp9Ci5jYXJkX19ib2R5ID4gLmNhcmRfX2JvZHlfX2l0ZW06b25seS1vZi10eXBlIHsKICBwYWRkaW5nLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTsKfQouY2FyZF9fYm9keV9faXRlbSAubGlzdC1pdGVtLmxpc3QtaXRlbS0td2l0aC1kaXZpZGVyIHsKICBib3gtc2hhZG93OgogICAgaW5zZXQgMXB4IDAgMCB2YXIoLS1uZXV0cmFsLTIwMCksCiAgICBpbnNldCAtMXB4IDAgMCB2YXIoLS1uZXV0cmFsLTIwMCksCiAgICBpbnNldCAwIC0xcHggdmFyKC0tbmV1dHJhbC0yMDApOwp9Ci5jYXJkX19ib2R5X19pdGVtOmxhc3Qtb2YtdHlwZSAubGlzdC1pdGVtLS13aXRoLWRpdmlkZXIgewogIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmNhcmRfX2JvZHkgLmNhcmRfX2JvZHlfX2l0ZW0gewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy00KSAwOwogIH0KICAuY2FyZF9fYm9keSAuY2FyZF9fYm9keV9faXRlbTpub3QoOmxhc3Qtb2YtdHlwZSkgewogICAgYm94LXNoYWRvdzogaW5zZXQgMCAtMXB4IHZhcigtLW5ldXRyYWwtMjAwKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOmZpcnN0LW9mLXR5cGUgewogICAgcGFkZGluZy1ib3R0b206IHZhcigtLXNwYWNpbmctOCk7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOmxhc3Qtb2YtdHlwZSB7CiAgICBwYWRkaW5nLXRvcDogdmFyKC0tc3BhY2luZy04KTsKICB9CiAgLmNhcmRfX2JvZHkgLmNhcmRfX2JvZHlfX2l0ZW06bm90KDpsYXN0LW9mLXR5cGUsIDpmaXJzdC1vZi10eXBlKSB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTgpIDA7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOm9ubHktb2YtdHlwZSB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIDA7CiAgfQogIC5jYXJkX19ib2R5IC5jYXJkX19ib2R5X19pdGVtOm9ubHktY2hpbGQgewogICAgcGFkZGluZzogMDsKICB9CiAgLmNhcmRfX2JvZHkgPiAuY2FyZF9fYm9keV9faXRlbTpvbmx5LW9mLXR5cGUgewogICAgcGFkZGluZy10b3A6IDA7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkU3VidGl0bGUvQ2FyZFN1YnRpdGxlLmNzcyAqLwouY2FyZF9fYm9keV9fc3VidGl0bGUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3gtc2hhZG93OiBpbnNldCAtMXB4IDAgdmFyKC0tbmV1dHJhbC0yMDApLCBpbnNldCAxcHggMCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBmb250OiB2YXIoLS1zdWJ0ZXh0LXJlZ3VsYXIpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19ib2R5X19zdWJ0aXRsZSB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIHZhcigtLXNwYWNpbmctNik7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkVGl0bGUvQ2FyZFRpdGxlLmNzcyAqLwouY2FyZF9faGVhZGVyX190aXRsZSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udDogdmFyKC0tdGl0bGUtMy1yZWd1bGFyKTsKICBnYXA6IHZhcigtLXNwYWNpbmctMik7Cn0KLmNhcmRfX2hlYWRlcl9fdGl0bGVfX2ljb24gewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5jYXJkX19oZWFkZXJfX3RpdGxlIHsKICAgIGZvbnQ6IHZhcigtLXRpdGxlLTItcmVndWxhcik7CiAgICBnYXA6IHZhcigtLXNwYWNpbmctNCk7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkLmNzcyAqLwouY2FyZCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCB2YXIoLS1uZXV0cmFsLTIwMCksIGluc2V0IDAgMXB4IHZhcigtLW5ldXRyYWwtMjAwKTsKfQouY2FyZC0tZGlzYWJsZWQgKiB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNTAwKSAhaW1wb3J0YW50OwogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAuY2FyZCB7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgICBoZWlnaHQ6IC1tb3otZml0LWNvbnRlbnQ7CiAgICBoZWlnaHQ6IGZpdC1jb250ZW50OwogIH0KICB1bC5jYXJkIC5saXN0LWl0ZW0gewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgfQogIHVsLmNhcmQgLmxpc3QtaXRlbSA+IDppcyhhLCBidXR0b24pOmZvY3VzIHsKICAgIGJveC1zaGFkb3c6CiAgICAgIGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTIwMCksCiAgICAgIGluc2V0IDAgMCAwIDNweCB2YXIoLS1uZXV0cmFsLTAwMCksCiAgICAgIGluc2V0IDAgMCAwIDVweCB2YXIoLS1wcmltYXJ5LTIwMCk7CiAgfQogIHVsLmNhcmQgOmlzKC5saXN0LWl0ZW06Zmlyc3Qtb2YtdHlwZSwgLmxpc3QtaXRlbTpmaXJzdC1vZi10eXBlIGEpIHsKICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIH0KICB1bC5jYXJkIDppcygubGlzdC1pdGVtOmxhc3Qtb2YtdHlwZSwgLmxpc3QtaXRlbTpsYXN0LW9mLXR5cGUgYSkgewogICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2FyZC9DYXJkSW1hZ2VWYXJpYW50LmNzcyAqLwouY2FyZC0taW1hZ2UgewogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgbWFyZ2luOiBhdXRvOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7CiAgdGV4dC1hbGlnbjogY2VudGVyOwp9Ci5jYXJkLS1pbWFnZSwKLmNhcmQtLWltYWdlIC5jYXJkX19pbGx1c3RyYXRpb24gewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKfQouY2FyZC0taW1hZ2UgLmNhcmRfX2hlYWRlcl9fdGl0bGUgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZm9udDogdmFyKC0tdGl0bGUtMi1tZWRpdW0pOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgMDsKfQouY2FyZC0taW1hZ2UgLmNhcmRfX2JvZHkgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIGZvbnQ6IHZhcigtLWJvZHktMS1yZWd1bGFyKTsKICBtYXJnaW46IDAgYXV0byB2YXIoLS1zcGFjaW5nLTYpOwogIG1heC13aWR0aDogNDIwcHg7CiAgcGFkZGluZzogMDsKICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KLmNhcmQtLWltYWdlIC5jYXJkX19mb290ZXIgewogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBwYWRkaW5nOiAwOwogIHdpZHRoOiAxMDAlOwp9Ci5jYXJkLS1pbWFnZSAuY2FyZF9fZm9vdGVyID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTQpOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAuY2FyZC0taW1hZ2UgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KSB2YXIoLS1zcGFjaW5nLTgpIHZhcigtLXNwYWNpbmctMTEpOwogIH0KICAuY2FyZC0taW1hZ2UgLmNhcmRfX2Zvb3RlciB7CiAgICBmbGV4LWRpcmVjdGlvbjogcm93OwogIH0KICAuY2FyZC0taW1hZ2UgLmNhcmRfX2Zvb3RlciA+IDpub3QoOmZpcnN0LWNoaWxkKSB7CiAgICBtYXJnaW46IDA7CiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy00KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9DYXJkL0NhcmRMaXN0L0NhcmRMaXN0LmNzcyAqLwouY2FyZC1saXN0ID4gLmNhcmQ6bm90KDpsYXN0LWNoaWxkKSB7CiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tc3BhY2luZy00KTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmNhcmQtbGlzdCB7CiAgICBwYWRkaW5nOiAwIHZhcigtLXNwYWNpbmctOCk7CiAgfQogIC5jYXJkLWxpc3QgPiAuY2FyZDpub3QoOmxhc3QtY2hpbGQpIHsKICAgIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctNik7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvQ2hlY2tib3gvQ2hlY2tib3guY3NzICovCi5jaGVja2JveCB7CiAgLS1jaGVja2JveC13aWR0aDoyNHB4OwogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQpAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgOmlzKC5jaGVja2JveF9faW5wdXQsIC5jaGVja2JveF9fbGFiZWwpOmhvdmVyIHsKICAgIGN1cnNvcjogcG9pbnRlcjsKICB9Cn0KLmNoZWNrYm94LS1uZXV0cmFsLAouY2hlY2tib3gtLXByaW1hcnkgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLmNoZWNrYm94X19jb250ZW50IHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZm9udDogdmFyKC0tYm9keS0xLXJlZ3VsYXIpOwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQouY2hlY2tib3hfX3NwaW5uZXIgewogIGJhY2tncm91bmQ6IHZhcigtLXByaW1hcnktNTAwKTsKfQouY2hlY2tib3hfX2NoZWNrLAouY2hlY2tib3hfX3NwaW5uZXIgewogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtMzAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgaGVpZ2h0OiB2YXIoLS1jaGVja2JveC13aWR0aCk7CiAgbWluLXdpZHRoOiB2YXIoLS1jaGVja2JveC13aWR0aCk7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICB2aXNpYmlsaXR5OiB1bnNldDsKfQouY2hlY2tib3guY2hlY2tib3gtLWVycm9yIC5jaGVja2JveF9fY2hlY2sgewogIGJvcmRlci1jb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQouY2hlY2tib3hfX2lucHV0IHsKICBoZWlnaHQ6IHZhcigtLWNoZWNrYm94LXdpZHRoKTsKICBtYXJnaW46IDA7CiAgb3BhY2l0eTogMDsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgd2lkdGg6IHZhcigtLWNoZWNrYm94LXdpZHRoKTsKICB6LWluZGV4OiAxMDsKfQouY2hlY2tib3hfX2lucHV0IH4gLmNoZWNrYm94X19jaGVjayBwYXRoIHsKICBzdHJva2U6IHZhcigtLW5ldXRyYWwtMDAwKTsKICBzdHJva2UtZGFzaG9mZnNldDogLTc1Owp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuY2hlY2tib3hfX2lucHV0OmhvdmVyIH4gLmNoZWNrYm94X19jaGVjayB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTEwMCk7CiAgICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICB9Cn0KLmNoZWNrYm94X19pbnB1dDpmb2N1cy13aXRoaW4gfiAuY2hlY2tib3hfX2NoZWNrIHsKICBvdXRsaW5lOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwogIG91dGxpbmUtb2Zmc2V0OiAycHg7Cn0KLmNoZWNrYm94X19pbnB1dDpub3QoOmluZGV0ZXJtaW5hdGUpOmlzKDpjaGVja2VkLCBbYXJpYS1jaGVja2VkPXRydWVdKSB+IC5jaGVja2JveF9fY2hlY2sgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQouY2hlY2tib3hfX2lucHV0OmhvdmVyOmlzKDpjaGVja2VkLCBbYXJpYS1jaGVja2VkPXRydWVdKSB+IC5jaGVja2JveF9fY2hlY2sgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNzAwKTsKfQouY2hlY2tib3hfX2lucHV0Om5vdCg6aW5kZXRlcm1pbmF0ZSk6aXMoOmNoZWNrZWQsIFthcmlhLWNoZWNrZWQ9dHJ1ZV0pIH4gLmNoZWNrYm94X19jaGVjayBwYXRoIHsKICBzdHJva2UtZGFzaG9mZnNldDogMDsKfQouY2hlY2tib3hfX2lucHV0Om5vdCg6aW5kZXRlcm1pbmF0ZSk6aXMoOmRpc2FibGVkLCBbYXJpYS1kaXNhYmxlZD10cnVlXSkgfiAuY2hlY2tib3hfX2NoZWNrIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTIwMCk7Cn0KLmNoZWNrYm94X19pbnB1dDpub3QoOmluZGV0ZXJtaW5hdGUpOmlzKDpjaGVja2VkLCBbYXJpYS1jaGVja2VkPXRydWVdKTppcyg6ZGlzYWJsZWQsIFthcmlhLWRpc2FibGVkPXRydWVdKSB+IC5jaGVja2JveF9fY2hlY2sgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKICBib3JkZXItY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKfQouY2hlY2tib3hfX2lucHV0Om5vdCg6aW5kZXRlcm1pbmF0ZSk6aXMoOmRpc2FibGVkLCBbYXJpYS1kaXNhYmxlZD10cnVlXSkgfiAuY2hlY2tib3hfX2NoZWNrIHBhdGggewogIHN0cm9rZTogdmFyKC0tbmV1dHJhbC02MDApOwp9Ci5jaGVja2JveF9fbGFiZWwgewogIGZvbnQ6IHZhcigtLWJvZHktMS1yZWd1bGFyKTsKfQouY2hlY2tib3hfX2hpbnQgewogIGZvbnQ6IHZhcigtLWJvZHktMi1yZWd1bGFyKTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLmNoZWNrYm94X19lcnJvciB7CiAgY29sb3I6IHZhcigtLWVycm9yLTUwMCk7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKfQouY2hlY2tib3hfX2lucHV0OmluZGV0ZXJtaW5hdGUgewogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLmNoZWNrYm94X19jaGVjayB7CiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIC4yNXMgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuMjVzIGVhc2UtaW4tb3V0OwogIH0KICAuY2hlY2tib3hfX2NoZWNrIHBhdGggewogICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgLjM1cyBlYXNlLW91dDsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Db21ib2JveC9Db21ib2JveC5jc3MgKi8KLmNvbWJvYm94IHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KdWxbcm9sZT1saXN0Ym94XS5jb21ib2JveF9fbGlzdC0tb3BlbiB7CiAgZGlzcGxheTogYmxvY2s7Cn0KdWxbcm9sZT1saXN0Ym94XSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLW5ldXRyYWwtMjAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZGlzcGxheTogbm9uZTsKICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgM3B4IDhweCByZ2IoNDYgNTkgODYvMTAlKSk7CiAgZm9udDogdmFyKC0tYm9keS0yLXJlZ3VsYXIpOwogIGxpc3Qtc3R5bGU6IG5vbmU7CiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2luZy0xKTsKICBtYXgtaGVpZ2h0OiAxNjVweDsKICBvdmVyZmxvdzogc2Nyb2xsOwogIG92ZXJmbG93LXg6IGhpZGRlbjsKICBwYWRkaW5nOiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMTAwJTsKICB6LWluZGV4OiAxMDAwOwp9CnVsW3JvbGU9bGlzdGJveF0gbGlbcm9sZT1vcHRpb25dIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTsKfQp1bFtyb2xlPWxpc3Rib3hdIGxpW3JvbGU9b3B0aW9uXTpub3QoOmxhc3QtY2hpbGQpIHsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0xMDApOwp9Ci5jb21ib2JveF9fbGlzdC1pdGVtLS1zZWxlY3RlZCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICBmb250OiB2YXIoLS1ib2R5LTItbWVkaXVtKTsKfQouY29tYm9ib3hfX2xpc3QtaXRlbS0taGlnaGxpZ2h0IHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1uZXV0cmFsLTEwMCk7Cn0KLmNvbWJvYm94X19saXN0LWl0ZW0tLWxvYWRpbmcgewogIGNvbG9yOiB0cmFuc3BhcmVudDsKICBoZWlnaHQ6IDQ4cHg7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICB1c2VyLXNlbGVjdDogbm9uZTsKfQouY29tYm9ib3hfX2xpc3QtaXRlbS0tbG9hZGluZzphZnRlciB7CiAgYW5pbWF0aW9uOiBidXR0b24tc3Bpbm5lciAxcyBlYXNlIGluZmluaXRlOwogIGJvcmRlcjogNHB4IHNvbGlkIHRyYW5zcGFyZW50OwogIGJvcmRlci1yYWRpdXM6IDUwJTsKICBib3JkZXItdG9wOiA0cHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbnRlbnQ6ICIiOwogIGhlaWdodDogMTZweDsKICBpbnNldDogMDsKICBtYXJnaW46IGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxNnB4Owp9Ci5jb21ib2JveF9fbGlzdC1pdGVtLS1lbXB0eSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICBjdXJzb3I6IGRlZmF1bHQ7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2NyaXB0aW9uTGlzdC5jc3MgKi8KLmRlc2NyaXB0aW9uLWxpc3QtLWZvcm0gZHQgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTYwMCk7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjaW5nLTEpOwp9Ci5kZXNjcmlwdGlvbi1saXN0LS1mb3JtIGRkIHsKICBmb250OiB2YXIoLS1ib2R5LTItbWVkaXVtKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmRlc2NyaXB0aW9uLWxpc3QtLWZvcm0gZHQgewogICAgY29sb3I6IHZhcigtLW5ldXRyYWwtODAwKTsKICAgIGZvbnQ6IHZhcigtLWJvZHktMS1yZWd1bGFyKTsKICAgIG1hcmdpbi1ib3R0b206IDA7CiAgfQogIC5kZXNjcmlwdGlvbi1saXN0LS1mb3JtIGRkIHsKICAgIGZvbnQ6IHZhcigtLWJvZHktMS1tZWRpdW0pOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0Rlc2NyaXB0aW9uTGlzdC9EZXNjcmlwdGlvbkNvbnRlbnQvRGVzY3JpcHRpb25Db250ZW50LmNzcyAqLwpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmRlc2NyaXB0aW9uLWxpc3RfX2NvbnRlbnQgewogICAgZGlzcGxheTogZmxleDsKICAgIGdhcDogdmFyKC0tc3BhY2luZy00KTsKICB9CiAgLmRlc2NyaXB0aW9uLWxpc3RfX2NvbnRlbnQgPiAqIHsKICAgIGZsZXg6IDE7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2NyaXB0aW9uSXRlbS9EZXNjcmlwdGlvbkl0ZW0uY3NzICovCi5kZXNjcmlwdGlvbi1saXN0X19pdGVtIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7Cn0KLmRlc2NyaXB0aW9uLWxpc3RfX2l0ZW0gPiAqIHsKICBmbGV4OiAxOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2N0aXB0aW9uUHJlZml4L0Rlc2NyaXB0aW9uUHJlZml4LmNzcyAqLwouZGVzY3JpcHRpb24tbGlzdF9fcHJlZml4IHsKICBmbGV4OiAwOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvRGVzY3JpcHRpb25MaXN0L0Rlc2N0aXB0aW9uU3VmZml4L0Rlc2NyaXB0aW9uU3VmZml4LmNzcyAqLwouZGVzY3JpcHRpb24tbGlzdF9fc3VmZml4IHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIGZsZXg6IDA7Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9EaWFsb2cvRGlhbG9nLmNzcyAqLwouZGlhbG9nW29wZW5dOjpiYWNrZHJvcCB7CiAgYmFja2dyb3VuZDogdmFyKC0tbmV1dHJhbC02MDApOwogIG9wYWNpdHk6IC4yNTsKfQpib2R5OmhhcyhkaWFsb2dbb3Blbl0pIHsKICBvdmVyZmxvdzogaGlkZGVuOwp9CmRpYWxvZzpub3QoW29wZW5dKSB7CiAgdmlzaWJpbGl0eTogaGlkZGVuOwp9CmRpYWxvZzpmb2N1cyB7CiAgb3V0bGluZTogbm9uZTsKfQouZGlhbG9nIHsKICBib3JkZXI6IG5vbmU7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgYm94LXNoYWRvdzoKICAgIDAgNzZweCA4MHB4IHJnYigwIDAgMC83JSksCiAgICAwIDIxcHggMjRweCByZ2IoMCAwIDAvNSUpLAogICAgMCA4cHggMTBweCByZ2IoMCAwIDAvNCUpLAogICAgMCAzcHggM3B4IHJnYigwIDAgMC8yJSk7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogIG1hcmdpbi10b3A6IHZhcigtLXNwYWNpbmctNCk7CiAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gdmFyKC0tc3BhY2luZy00KSoyKTsKICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIHZhcigtLXNwYWNpbmctNCkqMik7CiAgcGFkZGluZzogMDsKICBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiAwOwogIHdpZHRoOiAxMDAlOwogIHotaW5kZXg6IDEwMDsKfQouZGlhbG9nX19oZWFkZXIgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYmFja2dyb3VuZDogI2ZmZjsKICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0yMDApOwogIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy00KTsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgcG9zaXRpb246IHN0aWNreTsKICB0b3A6IDA7CiAgei1pbmRleDogMTAwMDsKfQouZGlhbG9nX19oZWFkZXJfX2ljb24gewogIGRpc3BsYXk6IGZsZXg7Cn0KLmRpYWxvZ19faGVhZGVyX190aXRsZSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC05MDApOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udDogdmFyKC0tdGl0bGUtMi1tZWRpdW0pOwogIGdhcDogdmFyKC0tc3BhY2luZy00KTsKfQouZGlhbG9nX19oZWFkZXJfX3RpdGxlOmZvY3VzIHsKICBvdXRsaW5lOiBub25lOwp9Ci5kaWFsb2dfX2JvZHksCi5kaWFsb2dfX2Zvb3RlciwKLmRpYWxvZ19faGVhZGVyIHsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5kaWFsb2dfX2JvZHkgewogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KLmRpYWxvZ19fYm9keSwKLmRpYWxvZ19fZm9vdGVyIHsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy00KTsKfQouZGlhbG9nX19mb290ZXIgewogIGJhY2tncm91bmQ6ICNmZmY7CiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFyKC0tYm9yZGVyLXJhZGl1cy1tZCk7CiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLTIwMCk7CiAgYm90dG9tOiAwOwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsKICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOwogIHBvc2l0aW9uOiBzdGlja3k7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5kaWFsb2dfX2JvZHksCiAgLmRpYWxvZ19fZm9vdGVyLAogIC5kaWFsb2dfX2hlYWRlciB7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpOwogIH0KICAuZGlhbG9nX19ib2R5IHsKICAgIGdhcDogdmFyKC0tc3BhY2luZy02KTsKICB9CiAgLmRpYWxvZyB7CiAgICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTgpOwogICAgbWF4LXdpZHRoOiA2MDBweDsKICB9CiAgLmRpYWxvZ19fZm9vdGVyIHsKICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgfQp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLmRpYWxvZ1tvcGVuXS5kaWFsb2ctLWFuaW1hdGVkIHsKICAgIGFuaW1hdGlvbjogem9vbS1pbiAuMTVzOwogICAgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbi1vdXQ7CiAgfQogIC5kaWFsb2c6bm90KFtvcGVuXSkuZGlhbG9nLS1hbmltYXRlZCB7CiAgICBhbmltYXRpb246IHpvb20tb3V0IC4xNXM7CiAgICB0cmFuc2l0aW9uOiB2aXNpYmlsaXR5IC4xNXM7CiAgfQogIC5kaWFsb2dbb3Blbl0uZGlhbG9nLS1hbmltYXRlZDo6YmFja2Ryb3AgewogICAgYW5pbWF0aW9uOiBmYWRlLWluIC4xNXM7CiAgfQogIC5kaWFsb2c6bm90KFtvcGVuXSkuZGlhbG9nLS1hbmltYXRlZDo6YmFja2Ryb3AgewogICAgYW5pbWF0aW9uOiBmYWRlLW91dCAuMTVzOwogIH0KfQpAa2V5ZnJhbWVzIHpvb20taW4gewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgICB0cmFuc2Zvcm06IHNjYWxlWCgxKTsKICB9CiAgMC4wMDAwMDAwMDAxJSB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgLjk1LCAuOTUpOwogIH0KfQpAa2V5ZnJhbWVzIHpvb20tb3V0IHsKICB0byB7CiAgICBvcGFjaXR5OiAwOwogICAgdHJhbnNmb3JtOiBzY2FsZTNkKC45NSwgLjk1LCAuOTUpOwogIH0KfQpAa2V5ZnJhbWVzIGZhZGUtaW4gewogIDAlIHsKICAgIG9wYWNpdHk6IDA7CiAgfQp9CkBrZXlmcmFtZXMgZmFkZS1vdXQgewogIDAlIHsKICAgIG9wYWNpdHk6IC4yNTsKICB9CiAgdG8gewogICAgb3BhY2l0eTogMDsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9MaXN0SXRlbS9MaXN0SXRlbS5jc3MgKi8KLmxpc3QtaXRlbSwKLmxpc3QtaXRlbSA+IDppcyhhLCBidXR0b24pIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOwp9Ci5saXN0LWl0ZW0gewogIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50Owp9Ci5saXN0LWl0ZW06bm90KC5saXN0LWl0ZW0tLXdpdGgtbGluayksCi5saXN0LWl0ZW0gPiA6aXMoYSwgYnV0dG9uKSB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KSB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5saXN0LWl0ZW0gPiA6aXMoYSwgYnV0dG9uKSB7CiAgYmFja2dyb3VuZDogbm9uZTsKICBib3JkZXI6IG5vbmU7CiAgY29sb3I6IGluaGVyaXQ7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQ6IGluaGVyaXQ7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQteHRyYSk7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpOwogIHRleHQtYWxpZ246IGxlZnQ7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIHdpZHRoOiAxMDAlOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAubGlzdC1pdGVtID4gOmlzKGEsIGJ1dHRvbik6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0xMDApOwogICAgYm9yZGVyOiBub25lOwogIH0KfQoubGlzdC1pdGVtID4gOmlzKGEsIGJ1dHRvbik6Zm9jdXMgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tbmV1dHJhbC0wMDApLCBpbnNldCAwIDAgMCA1cHggdmFyKC0tcHJpbWFyeS0yMDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLmxpc3QtaXRlbSA+IDppcyhhLCBidXR0b24pOmFjdGl2ZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MCk7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQoubGlzdC1pdGVtLS13aXRoLWRpdmlkZXIgewogIGJveC1zaGFkb3c6IGluc2V0IDAgLTFweCB2YXIoLS1uZXV0cmFsLTIwMCk7Cn0KLmxpc3QtaXRlbS0tZGlzYWJsZWQgewogIHBvaW50ZXItZXZlbnRzOiBub25lOwp9Ci5saXN0LWl0ZW0tLWRlc3RydWN0aXZlIHsKICBjb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQoubGlzdC1pdGVtLmxpc3QtaXRlbS0tZGVzdHJ1Y3RpdmUgLmxpc3QtaXRlbTpub3QoLmxpc3QtaXRlbS0td2l0aC1saW5rKTpmb2N1cywKLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlID4gOmlzKGEsIGJ1dHRvbik6Zm9jdXMgewogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDNweCB2YXIoLS1uZXV0cmFsLTAwMCksIGluc2V0IDAgMCAwIDVweCB2YXIoLS1lcnJvci0yMDApOwp9Ci5saXN0LWl0ZW0ubGlzdC1pdGVtLS1kZXN0cnVjdGl2ZSAubGlzdC1pdGVtOm5vdCgubGlzdC1pdGVtLS13aXRoLWxpbmspOmFjdGl2ZSwKLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlID4gOmlzKGEsIGJ1dHRvbik6YWN0aXZlIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1lcnJvci0yMDApOwogIGJveC1zaGFkb3c6IGluc2V0IDJweCAwIHZhcigtLXByaW1hcnktNTAwKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLmxpc3QtaXRlbTpub3QoLmxpc3QtaXRlbS0td2l0aC1saW5rKSwKICAubGlzdC1pdGVtID4gOmlzKGEsIGJ1dHRvbikgewogICAgcGFkZGluZzogdmFyKC0tc3BhY2luZy02KTsKICB9CiAgLmxpc3QtaXRlbS0td2l0aC1kaXZpZGVyOmxhc3Qtb2YtdHlwZSB7CiAgICBib3gtc2hhZG93OiBub25lOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtQ29udGVudC9MaXN0SXRlbUNvbnRlbnQuY3NzICovCi5saXN0LWl0ZW1fX2NvbnRlbnQgewogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTGlzdEl0ZW0vTGlzdEl0ZW1NZXRhL0xpc3RJdGVtTWV0YS5jc3MgKi8KLmxpc3QtaXRlbV9fbWV0YSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZvbnQtd2VpZ2h0OiA1MDA7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTIpOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTGlzdEl0ZW0vTGlzdEl0ZW1QcmVmaXgvTGlzdEl0ZW1QcmVmaXguY3NzICovCi5saXN0LWl0ZW1fX3ByZWZpeCB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBjb2xvcjogaW5oZXJpdDsKICBkaXNwbGF5OiBmbGV4Owp9Ci5saXN0LWl0ZW0ubGlzdC1pdGVtLS1kZXN0cnVjdGl2ZTpub3QoLmxpc3QtaXRlbS0td2l0aC1saW5rKTphY3RpdmUgLmxpc3QtaXRlbV9fcHJlZml4LAoubGlzdC1pdGVtLmxpc3QtaXRlbS0tZGVzdHJ1Y3RpdmUgPiA6aXMoYSwgYnV0dG9uKTphY3RpdmUgLmxpc3QtaXRlbV9fcHJlZml4IHsKICBjb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtU3VidGl0bGUvTGlzdEl0ZW1TdWJ0aXRsZS5jc3MgKi8KLmxpc3QtaXRlbV9fc3VidGl0bGUgewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTUwMCk7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKfQoubGlzdC1pdGVtLS1kaXNhYmxlZCAubGlzdC1pdGVtX19zdWJ0aXRsZSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtU3VmZml4L0xpc3RJdGVtU3VmZml4LmNzcyAqLwoubGlzdC1pdGVtX19zdWZmaXggewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKfQoubGlzdC1pdGVtLS13aXRoLWxpbmsgLmxpc3QtaXRlbV9fc3VmZml4IHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwp9Ci5saXN0LWl0ZW0tLWRpc2FibGVkIC5saXN0LWl0ZW1fX3N1ZmZpeCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMzAwKTsKfQoubGlzdC1pdGVtLS13aXRoLWxpbmsgOmlzKGEsIGJ1dHRvbik6YWN0aXZlIC5saXN0LWl0ZW1fX3N1ZmZpeCB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL0xpc3RJdGVtL0xpc3RJdGVtVGV4dC9MaXN0SXRlbVRleHQuY3NzICovCi5saXN0LWl0ZW1fX3RleHQgewogIGNvbG9yOiBpbmhlcml0OwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKfQoubGlzdC1pdGVtLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlOm5vdCgubGlzdC1pdGVtLS13aXRoLWxpbmspOmFjdGl2ZSAubGlzdC1pdGVtX190ZXh0LAoubGlzdC1pdGVtLmxpc3QtaXRlbS5saXN0LWl0ZW0tLWRlc3RydWN0aXZlID4gOmlzKGEsIGJ1dHRvbik6YWN0aXZlIC5saXN0LWl0ZW1fX3RleHQgewogIGNvbG9yOiB2YXIoLS1lcnJvci01MDApOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTGlzdEl0ZW0vTGlzdEl0ZW1UaXRsZS9MaXN0SXRlbVRpdGxlLmNzcyAqLwoubGlzdC1pdGVtX190aXRsZSB7CiAgZm9udC13ZWlnaHQ6IDUwMDsKfQoubGlzdC1pdGVtLS1kaXNhYmxlZCAubGlzdC1pdGVtX190aXRsZSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL01lbnUvQ29udGVudC9Db250ZW50LmNzcyAqLwoubWVudV9fbGlzdCB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGJveC1zaGFkb3c6IHZhcigtLXNoYWRvdy1tb2RhbCksIGluc2V0IDAgMCAwIDFweCB2YXIoLS1uZXV0cmFsLTEwMCk7CiAgbWFyZ2luLXRvcDogMTBweDsKICBtaW4td2lkdGg6IDIyMHB4OwogIG9wYWNpdHk6IDA7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0yKSAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB0cmFuc2Zvcm06IHNjYWxlKC44KTsKICB2aXNpYmlsaXR5OiBoaWRkZW47CiAgei1pbmRleDogMTAwMDAwOwp9Ci5tZW51X19saXN0LAoubWVudV9fbGlzdCA+IHVsIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9Ci5tZW51X19saXN0ID4gdWwgewogIGdhcDogdmFyKC0tc3BhY2luZy0xKTsKfQoubWVudV9fbGlzdC0tYWN0aXZlIHsKICBvcGFjaXR5OiAxOwogIHRyYW5zZm9ybTogc2NhbGUoMSk7CiAgdmlzaWJpbGl0eTogdmlzaWJsZTsKfQoubWVudV9fbGlzdC0tbGVmdCB7CiAgbGVmdDogMDsKICB0cmFuc2Zvcm0tb3JpZ2luOiB0b3AgbGVmdDsKfQoubWVudV9fbGlzdC0tcmlnaHQgewogIHJpZ2h0OiAwOwogIHRyYW5zZm9ybS1vcmlnaW46IHRvcCByaWdodDsKfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSkgewogIC5tZW51X19saXN0IHsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4xNXM7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OgogICAgICB0cmFuc2Zvcm0sCiAgICAgIG9wYWNpdHksCiAgICAgIHJvdGF0ZSwKICAgICAgdmlzaWJpbGl0eTsKICAgIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uOiBlYXNlLWluOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL01lbnUvTWVudUl0ZW0vTWVudUl0ZW0uY3NzICovCi5tZW51X19saXN0LWl0ZW0gewogIGRpc3BsYXk6IGZsZXg7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+ICogewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwogIGJvcmRlcjogMDsKICBjb2xvcjogaW5oZXJpdDsKICBjdXJzb3I6IHBvaW50ZXI7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgZm9udDogaW5oZXJpdDsKICBnYXA6IHZhcigtLXNwYWNpbmctNCk7CiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OwogIG1hcmdpbjogMCAxcHg7CiAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAycHgpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCkgdmFyKC0tc3BhY2luZy02KTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgd2lkdGg6IDEwMCU7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5tZW51X19saXN0LWl0ZW0gPiA6aG92ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0xMDApOwogIH0KfQoubWVudV9fbGlzdC1pdGVtID4gOmZvY3VzIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tbmV1dHJhbC0wMDApLCBpbnNldCAwIDAgMCA1cHggdmFyKC0tcHJpbWFyeS0yMDApOwogIG91dGxpbmU6IG5vbmU7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+IDphY3RpdmUgewogIGJveC1zaGFkb3c6IG5vbmU7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+IDphY3RpdmUsCi5tZW51X19saXN0LWl0ZW0gPiA6YWN0aXZlOmJlZm9yZSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS0xMDApOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLm1lbnVfX2xpc3QtaXRlbSA+IDphY3RpdmU6YmVmb3JlIHsKICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIDAgdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5tZW51X19saXN0LWl0ZW0gLmJ1dHRvbiB7CiAgYm9yZGVyLXJhZGl1czogMDsKfQoubWVudV9fbGlzdC1pdGVtIC5idXR0b24tLXdpdGgtaWNvbiB7CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwp9Ci5tZW51X19saXN0LWl0ZW0tLWxvZ291dCAuYnV0dG9uIHsKICBjb2xvcjogdmFyKC0tZXJyb3ItNTAwKTsKfQoubWVudV9fbGlzdC1pdGVtLS1sb2dvdXQgLmJ1dHRvbjpmb2N1cyB7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgM3B4IHZhcigtLW5ldXRyYWwtMDAwKSwgaW5zZXQgMCAwIDAgNXB4IHJnYmEoMjU1LCA5MiwgOTIsIC4xKTsKfQoubWVudV9fbGlzdC1pdGVtLS1sb2dvdXQgLmJ1dHRvbjphY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCA5MiwgOTIsIC4xKTsKICBib3gtc2hhZG93OiBub25lOwp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvTWVudS9UcmlnZ2VyL1RyaWdnZXIuY3NzICovCi5tZW51X190cmlnZ2VyW2FyaWEtZXhwYW5kZWQ9dHJ1ZV0gewogIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KLm1lbnVfX3RyaWdnZXJbYXJpYS1leHBhbmRlZD10cnVlXSAuYnV0dG9uX19pY29uLXJpZ2h0IHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7Cn0KQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOm5vLXByZWZlcmVuY2UpIHsKICAubWVudV9fdHJpZ2dlciAuYnV0dG9uX19pY29uLXJpZ2h0IHsKICAgIHRyYW5zaXRpb24tZHVyYXRpb246IC4xNXM7CiAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2Zvcm07CiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1pbjsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9NZW51L01lbnUuY3NzICovCi5tZW51IHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC05MDApOwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TZWN0aW9uTWVzc2FnZS9TZWN0aW9uTWVzc2FnZS5jc3MgKi8KLnNlY3Rpb24tbWVzc2FnZSB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tbmV1dHJhbC0wMDApOwogIC0tc2VjdGlvbi1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tbmV1dHJhbC04MDApOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTMpOwp9Ci5zZWN0aW9uLW1lc3NhZ2UsCi5zZWN0aW9uLW1lc3NhZ2VfX2ljb24gewogIGNvbG9yOiB2YXIoLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3IpOwp9Ci5zZWN0aW9uLW1lc3NhZ2UtLWluZm8gewogIGJvcmRlci1yYWRpdXM6IDA7Cn0KLnNlY3Rpb24tbWVzc2FnZS0tcHJpbWFyeSB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tcHJpbWFyeS03MDApOwogIC0tc2VjdGlvbi1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tcHJpbWFyeS01MCk7Cn0KLnNlY3Rpb24tbWVzc2FnZS0tc3VjY2VzcyB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tc3VjY2Vzcy01MDApOwogIC0tc2VjdGlvbi1tZXNzYWdlLWJhY2tncm91bmQtY29sb3I6dmFyKC0tc3VjY2Vzcy0yMDApOwp9Ci5zZWN0aW9uLW1lc3NhZ2UtLXdhcm5pbmcgewogIC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yOnZhcigtLXdhcm5pbmctNTAwKTsKICAtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdhcm5pbmctMjAwKTsKfQouc2VjdGlvbi1tZXNzYWdlLS1lcnJvciB7CiAgLS1zZWN0aW9uLW1lc3NhZ2UtY29sb3I6dmFyKC0tZXJyb3ItNTAwKTsKICAtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWVycm9yLTIwMCk7Cn0KLnNlY3Rpb24tbWVzc2FnZS0tZGlzYWJsZWQgewogIC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yOnZhcigtLW5ldXRyYWwtNjAwKTsKICAtLXNlY3Rpb24tbWVzc2FnZS1iYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW5ldXRyYWwtMjAwKTsKfQouc2VjdGlvbi1tZXNzYWdlX19pY29uIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGFsaWduLXNlbGY6IGJhc2VsaW5lOwogIGRpc3BsYXk6IGZsZXg7CiAgaGVpZ2h0OiAyNHB4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHdpZHRoOiAyNHB4Owp9Ci5zZWN0aW9uLW1lc3NhZ2VfX2ljb24tLWluZm8gewogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLnNlY3Rpb24tbWVzc2FnZV9faWNvbi0tcHJpbWFyeSB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQouc2VjdGlvbi1tZXNzYWdlX19kZXNjcmlwdGlvbiwKLnNlY3Rpb24tbWVzc2FnZV9fdGl0bGUgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IHZhcigtLXNwYWNpbmctMik7Cn0KLnNlY3Rpb24tbWVzc2FnZV9fZGVzY3JpcHRpb24gewogIGZvbnQ6IHZhcigtLXN1YnRleHQtcmVndWxhcik7Cn0KLnNlY3Rpb24tbWVzc2FnZV9fYWN0aW9uLAouc2VjdGlvbi1tZXNzYWdlX190aXRsZSArIC5zZWN0aW9uLW1lc3NhZ2VfX2Rlc2NyaXB0aW9uIHsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTIpOwp9Ci5zZWN0aW9uLW1lc3NhZ2VfX2FjdGlvbiB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0xKSAwOwp9Ci5zZWN0aW9uLW1lc3NhZ2VfX2FjdGlvbiA6aXMoYSwgcCwgYnV0dG9uKSB7CiAgY29sb3I6IGluaGVyaXQ7CiAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgbWluLWhlaWdodDogdW5zZXQ7CiAgcGFkZGluZzogMDsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgd2lkdGg6IGZpdC1jb250ZW50Owp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuc2VjdGlvbi1tZXNzYWdlX19hY3Rpb24gLmFuY2hvcjpob3ZlciB7CiAgICBjb2xvcjogdmFyKC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yKTsKICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwogIH0KfQouc2VjdGlvbi1tZXNzYWdlX19hY3Rpb24gLmFuY2hvcjphY3RpdmUsCi5zZWN0aW9uLW1lc3NhZ2VfX2FjdGlvbiAuYW5jaG9yOmZvY3VzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1zZWN0aW9uLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvcik7CiAgYm94LXNoYWRvdzogMCAwIDAgdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1zZWN0aW9uLW1lc3NhZ2UtYmFja2dyb3VuZC1jb2xvciksIDAgMCAwIDEwcHggdmFyKC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yKTsKICBjb2xvcjogdmFyKC0tc2VjdGlvbi1tZXNzYWdlLWNvbG9yKTsKfQouc2VjdGlvbi1tZXNzYWdlLS1kaXNhYmxlZCA6aXMoYSwgcCwgYnV0dG9uKSB7CiAgY3Vyc29yOiBub3QtYWxsb3dlZDsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLnNlY3Rpb24tbWVzc2FnZSB7CiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICAgIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCkgdmFyKC0tc3BhY2luZy01KTsKICB9CiAgLnNlY3Rpb24tbWVzc2FnZV9fZGVzY3JpcHRpb24gewogICAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICB9CiAgLnNlY3Rpb24tbWVzc2FnZV9fYWN0aW9uIDppcyhhLCBwLCBidXR0b24pIHsKICAgIGZvbnQ6IHZhcigtLWJvZHktMS1tZWRpdW0pOwogIH0KfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1Bob25lTnVtYmVyL1Bob25lTnVtYmVyLmNzcyAqLwoucGhvbmUtbnVtYmVyIHsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKfQoucGhvbmUtbnVtYmVyIC5pbnB1dF9fd3JhcHBlciB7CiAgZmxleC1ncm93OiAxOwp9Ci5waG9uZS1udW1iZXIgLnBob25lLW51bWJlcl9fY291bnRyeS1jb2RlLXNlbGVjdCB7CiAgaGVpZ2h0OiAxMDAlOwogIHdpZHRoOiA5NnB4Owp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9TZWxlY3QvU2VsZWN0LmNzcyAqLwouc2VsZWN0LXdyYXBwZXIgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQouc2VsZWN0LXdyYXBwZXI6YWZ0ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtOTAwKTsKICBjb250ZW50OiAiIjsKICBoZWlnaHQ6IDI0cHg7CiAgLXdlYmtpdC1tYXNrLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgZmlsbD0nbm9uZSclM0UlM0NwYXRoIHN0cm9rZT0nJTIzMDAwJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnIHN0cm9rZS13aWR0aD0nMS41JyBkPSdtOCAxMCA0IDQgNC00Jy8lM0UlM0Mvc3ZnJTNFIik7CiAgbWFzay1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzEuNScgZD0nbTggMTAgNCA0IDQtNCcvJTNFJTNDL3N2ZyUzRSIpOwogIC13ZWJraXQtbWFzay1wb3NpdGlvbjogY2VudGVyOwogIG1hc2stcG9zaXRpb246IGNlbnRlcjsKICAtd2Via2l0LW1hc2stcmVwZWF0OiBuby1yZXBlYXQ7CiAgbWFzay1yZXBlYXQ6IG5vLXJlcGVhdDsKICAtd2Via2l0LW1hc2stc2l6ZTogY292ZXI7CiAgbWFzay1zaXplOiBjb3ZlcjsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgcmlnaHQ6IHZhcigtLXNwYWNpbmctNCk7CiAgdG9wOiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpOwogIHdpZHRoOiAyNHB4Owp9Ci5zZWxlY3QgewogIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsKICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7CiAgYXBwZWFyYW5jZTogbm9uZTsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tbmV1dHJhbC0yMDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtbWQpOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTkwMCk7CiAgZm9udDogdmFyKC0tYm9keS0yLXJlZ3VsYXIpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMykgdmFyKC0tc3BhY2luZy00KTsKICB3aWR0aDogMTAwJTsKfQouc2VsZWN0LS13aXRoLXBsYWNlaG9sZGVyIHsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC00MDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAuc2VsZWN0OmhvdmVyIHsKICAgIGJvcmRlci1jb2xvcjogdmFyKC0tcHJpbWFyeS0zMDApOwogIH0KfQouc2VsZWN0OmZvY3VzIHsKICBib3JkZXItY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBvdXRsaW5lOiBub25lOwp9Ci5zZWxlY3Qtd3JhcHBlci0tZm9jdXM6YWZ0ZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1NlZ21lbnRlZENvbnRyb2wvU2VnbWVudGVkQ29udHJvbC5jc3MgKi8KLnNlZ21lbnRlZC1jb250cm9sX19saXN0LAouc2VnbWVudGVkLWNvbnRyb2xfX3BhbmVsIHsKICBkaXNwbGF5OiBub25lOwp9Ci5oYXMtanMgLnNlZ21lbnRlZC1jb250cm9sX19saXN0LAouaGFzLWpzIC5zZWdtZW50ZWQtY29udHJvbF9fcGFuZWwgewogIGRpc3BsYXk6IGJsb2NrOwp9Ci5oYXMtanMgLnNlZ21lbnRlZC1jb250cm9sIFtyb2xlPXRhYnBhbmVsXVtkYXRhLXN0YXRlPWluYWN0aXZlXSB7CiAgZGlzcGxheTogbm9uZTsKfQouc2VnbWVudGVkLWNvbnRyb2wgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKfQouc2VnbWVudGVkLWNvbnRyb2xfX2xpc3RfX3dyYXBwZXIgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEpOwp9Ci5zZWdtZW50ZWQtY29udHJvbF9fdHJpZ2dlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm9yZGVyOiBub25lOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc20pOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTYwMCk7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZsZXg6IDE7CiAgZm9udDogdmFyKC0tc3VidGV4dC1tZWRpdW0pOwogIG92ZXJmbG93OiBoaWRkZW47CiAgcGFkZGluZzogdmFyKC0tc3BhY2luZy0yKSB2YXIoLS1zcGFjaW5nLTQpOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLnNlZ21lbnRlZC1jb250cm9sX190cmlnZ2VyW2RhdGEtc3RhdGU9YWN0aXZlXSB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLnNlZ21lbnRlZC1jb250cm9sX190cmlnZ2VyW2RhdGEtc3RhdGU9YWN0aXZlXTpmb2N1cy12aXNpYmxlIHsKICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAzcHggdmFyKC0tcHJpbWFyeS01MDApLCBpbnNldCAwIDAgMCA1cHggdmFyKC0tbmV1dHJhbC0wMDApOwogIG91dGxpbmU6IG5vbmU7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5zZWdtZW50ZWQtY29udHJvbF9fdHJpZ2dlcltkYXRhLXN0YXRlPWluYWN0aXZlXTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgfQp9Ci5zZWdtZW50ZWQtY29udHJvbF9fdHJpZ2dlcltkYXRhLXN0YXRlPWluYWN0aXZlXTpmb2N1cyB7CiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgYm94LXNoYWRvdzogaW5zZXQgMCAtMnB4IHZhcigtLXByaW1hcnktNTAwKTsKfQoKLyogc3JjL2NvbXBvbmVudHMvbW9sZWN1bGVzL1RhYnMvVGFicy5jc3MgKi8KLnRhYnMgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnRhYnMuc2VnbWVudGVkLWNvbnRyb2wgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGdhcDogdmFyKC0tc3BhY2luZy0yKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTEpOwogIHdpZHRoOiAxMDAlOwp9Ci50YWJzLnNlZ21lbnRlZC1jb250cm9sIC50YWJzX19saW5rIHsKICB3aWR0aDogMTAwJTsKfQoudGFicy5zZWdtZW50ZWQtY29udHJvbCBhIHsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLXNtKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC02MDApOwogIGRpc3BsYXk6IGJsb2NrOwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBvdmVyZmxvdzogaGlkZGVuOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMikgdmFyKC0tc3BhY2luZy00KTsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOwogIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KLnRhYnMuc2VnbWVudGVkLWNvbnRyb2wgYS5hY3RpdmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBjb2xvcjogdmFyKC0tbmV1dHJhbC0wMDApOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAudGFicywKICAudGFicy5zZWdtZW50ZWQtY29udHJvbCB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgICBnYXA6IHZhcigtLXNwYWNpbmctOCk7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIHZhcigtLXNwYWNpbmctOCkgMCB2YXIoLS1zcGFjaW5nLTgpOwogICAgcG9zaXRpb246IHN0aWNreTsKICAgIHRvcDogdmFyKC0tc2l0ZS1oZWFkZXItaGVpZ2h0KTsKICAgIHotaW5kZXg6IDE1OwogIH0KICAudGFicy5zZWdtZW50ZWQtY29udHJvbCAudGFic19fbGluayB7CiAgICB3aWR0aDogYXV0bzsKICB9CiAgLnRhYnMgYSwKICAudGFicy50YWJzLnNlZ21lbnRlZC1jb250cm9sIGEgewogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGNvbG9yOiBpbmhlcml0OwogICAgZGlzcGxheTogZmxleDsKICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICBmb250OiB2YXIoLS1ib2R5LTItcmVndWxhcik7CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTQpIDA7CiAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CiAgfQogIC50YWJzIGEuYWN0aXZlLAogIC50YWJzLnRhYnMuc2VnbWVudGVkLWNvbnRyb2wgYS5hY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogICAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgfQogIC50YWJzIGE6YmVmb3JlIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10ZXh0KTsKICAgIGRpc3BsYXk6IGJsb2NrOwogICAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgICBoZWlnaHQ6IDA7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdmlzaWJpbGl0eTogaGlkZGVuOwogIH0KICBAbWVkaWEgKGhvdmVyOmhvdmVyKSB7CiAgICAudGFicyBhOmZvY3VzIHsKICAgICAgb3V0bGluZTogbm9uZTsKICAgIH0KICAgIC50YWJzIGE6bm90KC5hY3RpdmUpOmhvdmVyOmFmdGVyIHsKICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC0zMDApOwogICAgICBib3R0b206IDA7CiAgICAgIGNvbnRlbnQ6ICIiOwogICAgICBoZWlnaHQ6IDJweDsKICAgICAgcG9zaXRpb246IGFic29sdXRlOwogICAgICB3aWR0aDogMTAwJTsKICAgIH0KICB9CiAgLnRhYnMgYTpub3QoLmFjdGl2ZSk6Zm9jdXM6YWZ0ZXIgewogICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS0zMDApOwogIH0KICAudGFicyBhLmFjdGl2ZTphZnRlciwKICAudGFicyBhOm5vdCguYWN0aXZlKTpmb2N1czphZnRlciB7CiAgICBib3R0b206IDA7CiAgICBjb250ZW50OiAiIjsKICAgIGhlaWdodDogMnB4OwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgd2lkdGg6IDEwMCU7CiAgfQogIC50YWJzIGEuYWN0aXZlOmFmdGVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Ub2FzdC9Ub2FzdC5jc3MgKi8KLnRvYXN0IHsKICAtLXNsaWRlLWluLWVuZDowOwogIC0tc2xpZGUtaW4tc3RhcnQ6Y2FsYygxMDAlICsgdmFyKC0tc3BhY2luZy04KSk7CiAgYW5pbWF0aW9uOiBzbGlkZS1pbiAwbXMsIHNsaWRlLW91dCAwbXMgNXMgZm9yd2FyZHM7CiAgYm90dG9tOiB2YXIoLS1zcGFjaW5nLTQpOwogIGhlaWdodDogYXV0bzsKICBsZWZ0OiB2YXIoLS1zcGFjaW5nLTQpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctNCk7CiAgcG9zaXRpb246IGZpeGVkOwogIHdpZHRoOiBjYWxjKDEwMCUgLSB2YXIoLS1zcGFjaW5nLTQpKjIpOwp9Ci50b2FzdC0tZXJyb3IgewogIGJhY2tncm91bmQ6CiAgICBsaW5lYXItZ3JhZGllbnQoCiAgICAgIDBkZWcsCiAgICAgIHJnYigyMzAgNDUgNTAvNSUpLAogICAgICByZ2IoMjMwIDQ1IDUwLzUlKSksCiAgICB2YXIoLS1uZXV0cmFsLTAwMCk7CiAgYm94LXNoYWRvdzoKICAgIGluc2V0IDJweCAwIHZhcigtLWVycm9yLTQwMCksCiAgICAwIDc2cHggODBweCByZ2IoMCAwIDAvNyUpLAogICAgMCAyMXB4IDI0cHggcmdiKDAgMCAwLzUlKSwKICAgIDAgOHB4IDEwcHggcmdiKDAgMCAwLzQlKSwKICAgIDAgM3B4IDNweCByZ2IoMCAwIDAvMiUpOwogIGNvbG9yOiB2YXIoLS1lcnJvci01MDApOwp9Ci50b2FzdC0taW5mbyB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tbmV1dHJhbC04MDApOwogIGJveC1zaGFkb3c6CiAgICBpbnNldCAycHggMCB2YXIoLS1wcmltYXJ5LTUwMCksCiAgICAwIDc2cHggODBweCByZ2IoMCAwIDAvNyUpLAogICAgMCAyMXB4IDI0cHggcmdiKDAgMCAwLzUlKSwKICAgIDAgOHB4IDEwcHggcmdiKDAgMCAwLzQlKSwKICAgIDAgM3B4IDNweCByZ2IoMCAwIDAvMiUpOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTAwMCk7Cn0KLnRvYXN0X190aXRsZSB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZvbnQ6IHZhcigtLWJvZHktMi1yZWd1bGFyKTsKICBnYXA6IHZhcigtLXNwYWNpbmctMik7Cn0KLnRvYXN0X190aXRsZV9faWNvbiB7CiAgZGlzcGxheTogZmxleDsKfQoudG9hc3QtLWluZm8gLnRvYXN0X190aXRsZV9faWNvbiB7CiAgY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKfQpAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOjY0cmVtKSB7CiAgLnRvYXN0IHsKICAgIC0tc2xpZGUtaW4tc3RhcnQ6Y2FsYygxMDAlICsgdmFyKC0tc3BhY2luZy0xMikpOwogICAgYm90dG9tOiB2YXIoLS1zcGFjaW5nLTEwKTsKICAgIGxlZnQ6IGF1dG87CiAgICBwYWRkaW5nOiB2YXIoLS1zcGFjaW5nLTYpOwogICAgcmlnaHQ6IHZhcigtLXNwYWNpbmctMTApOwogICAgd2lkdGg6IDQyMHB4OwogIH0KfQpAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246bm8tcHJlZmVyZW5jZSkgewogIC50b2FzdCB7CiAgICBhbmltYXRpb246IHNsaWRlLWluIC4zcyBlYXNlLW91dCwgc2xpZGUtb3V0IC4zcyBlYXNlLWluIDVzIGZvcndhcmRzOwogIH0KfQpAa2V5ZnJhbWVzIHNsaWRlLWluIHsKICAwJSB7CiAgICBvcGFjaXR5OiAuODsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1zbGlkZS1pbi1zdGFydCkpOwogIH0KICB0byB7CiAgICBvcGFjaXR5OiAxOwogICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKHZhcigtLXNsaWRlLWluLWVuZCkpOwogIH0KfQpAa2V5ZnJhbWVzIHNsaWRlLW91dCB7CiAgMCUgewogICAgb3BhY2l0eTogMTsKICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCh2YXIoLS1zbGlkZS1pbi1lbmQpKTsKICB9CiAgdG8gewogICAgb3BhY2l0eTogLjg7CiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgodmFyKC0tc2xpZGUtaW4tc3RhcnQpKTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9Ub2dnbGUvVG9nZ2xlLmNzcyAqLwoudG9nZ2xlIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtMTAwKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1ib3JkZXItcmFkaXVzLW1kKTsKICBkaXNwbGF5OiBmbGV4OwogIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOwogIHBhZGRpbmc6IHZhcigtLXNwYWNpbmctMik7Cn0KLnRvZ2dsZV9faXRlbSB7CiAgd2lkdGg6IDEwMCU7Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9TdGVwcy9TdGVwcy5jc3MgKi8KLnN0ZXBzIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZmxleC13cmFwOiB3cmFwOwp9Ci5zdGVwc19fbGluayBhLAouc3RlcHNfX2xpbmsgc3BhbiB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cn0KLnN0ZXBzX19saW5rIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7Cn0KLnN0ZXBzX19saW5rIC5zdGVwc19fbGlua19fY2hhcmFjdGVyIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKICBkaXNwbGF5OiBmbGV4OwogIGZvbnQ6IHZhcigtLXN1YnRleHQtbWVkaXVtKTsKICBoZWlnaHQ6IHZhcigtLXNwYWNpbmctNik7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgbWFyZ2luLXJpZ2h0OiB2YXIoLS1zcGFjaW5nLTIpOwogIHdpZHRoOiB2YXIoLS1zcGFjaW5nLTYpOwp9Ci5zdGVwc19fbGlua19fZGl2aWRlciB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNDAwKTsKICBtYXJnaW46IDAgdmFyKC0tc3BhY2luZy00KTsKfQouc3RlcHNfX2xpbms6Zmlyc3Qtb2YtdHlwZSAuc3RlcHNfX2xpbmtfX2RpdmlkZXIgewogIGRpc3BsYXk6IG5vbmU7Cn0KLnN0ZXBzX19saW5rLmFjdGl2ZSAuc3RlcHNfX2xpbmtfX2NoYXJhY3RlciB7CiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5zdGVwc19fbGluay5hY3RpdmUgLnN0ZXBzX19saW5rX19kaXZpZGVyLAouc3RlcHNfX2xpbmsuYWN0aXZlIGEgewogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC5zdGVwc19fbGlua19fZGl2aWRlciB7CiAgICBtYXJnaW46IDAgdmFyKC0tc3BhY2luZy02KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL21vbGVjdWxlcy9UaW1lbGluZS9UaW1lbGluZS5jc3MgKi8KLnRpbWVsaW5lIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnRpbWVsaW5lOmFmdGVyIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgY29udGVudDogIiI7CiAgZGlzcGxheTogYmxvY2s7CiAgbWFyZ2luOiAwIGF1dG87CiAgcG9zaXRpb246IGFic29sdXRlOwp9Ci50aW1lbGluZS0tdmVydGljYWw6YWZ0ZXIgewogIGhlaWdodDogMTAwJTsKICBpbnNldDogMCA1MCUgYXV0bzsKICB3aWR0aDogMXB4Owp9Ci50aW1lbGluZS0taG9yaXpvbnRhbCB7CiAgd2lkdGg6IDEwMCU7Cn0KLnRpbWVsaW5lLS1ob3Jpem9udGFsOmFmdGVyIHsKICBoZWlnaHQ6IDFweDsKICBpbnNldDogNTAlIDAgYXV0bzsKICB3aWR0aDogMTAwJTsKfQoudGltZWxpbmVfX2xhYmVsIHsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGRpc3BsYXk6IGZsZXg7CiAgZm9udDogdmFyKC0tYm9keS0yLW1lZGl1bSk7CiAgaGVpZ2h0OiAzMnB4OwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHdpZHRoOiAzMnB4Owp9Ci50aW1lbGluZV9fbGFiZWw6YmVmb3JlIHsKICBjb250ZW50OiAiIjsKICBkaXNwbGF5OiBibG9jazsKICBoZWlnaHQ6IDMycHg7CiAgd2lkdGg6IDMycHg7CiAgei1pbmRleDogMTA7Cn0KLnRpbWVsaW5lX19sYWJlbCA+IDppcyhzdmcsIHNwYW4pIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdGV4dC1hbGlnbjogY2VudGVyOwogIHotaW5kZXg6IDIwOwp9Ci50aW1lbGluZS0tdmVydGljYWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgbWFyZ2luOiB2YXIoLS1zcGFjaW5nLTQpIGF1dG8gMDsKfQoudGltZWxpbmUtLWhvcml6b250YWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgbWFyZ2luLWxlZnQ6IHZhcigtLXNwYWNpbmctNCk7Cn0KLnRpbWVsaW5lX19sYWJlbC0tcHJpbWFyeSB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtMDAwKTsKfQoudGltZWxpbmVfX2xhYmVsLS1wcmltYXJ5OmJlZm9yZSB7CiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7Y2hhcnNldD11dGYtOCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMzInIGhlaWdodD0nMzInIGZpbGw9J25vbmUnIHZpZXdCb3g9JzAgMCAzMyAzMiclM0UlM0NwYXRoIGZpbGw9JyUyMzAwQUI5RScgZD0nTTExLjE2OS4wNWM2LjAwNi43MDkgMTIuMzY4IDIuNDEzIDE3LjkyNCA0LjgwMiAxLjE5My41MTMgMi4xMjggMS4yOCAyLjcyIDIuMzA3cy43OSAyLjIyLjYzOCAzLjUxYy0uNzEgNi4wMDUtMi40MTQgMTIuMzY3LTQuODAzIDE3LjkyMy0uNTEzIDEuMTk0LTEuMjggMi4xMy0yLjMwNiAyLjcyMnMtMi4yMi43ODktMy41MS42MzdjLTYuMDA2LS43MS0xMi4zNjgtMi40MTQtMTcuOTI0LTQuODAzLTEuMTk0LS41MTMtMi4xMy0xLjI4LTIuNzIyLTIuMzA3cy0uNzg5LTIuMjItLjYzNy0zLjUxYy43MS02LjAwNiAyLjQxNC0xMi4zNjggNC44MDQtMTcuOTI0LjUxMy0xLjE5MyAxLjI4LTIuMTI4IDIuMzA2LTIuNzJzMi4yMi0uNzkgMy41MS0uNjM4Jy8lM0UlM0Mvc3ZnJTNFIik7Cn0KLnRpbWVsaW5lX19sYWJlbC0tc2Vjb25kYXJ5IHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci50aW1lbGluZV9fbGFiZWwtLXNlY29uZGFyeTpiZWZvcmUgewogIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJyBmaWxsPSdub25lJyB2aWV3Qm94PScwIDAgMzMgMzInJTNFJTNDcGF0aCBmaWxsPSclMjNmZmYnIHN0cm9rZT0nJTIzMDBBQjlFJyBkPSdNMTEuMTEuNTQ2YzUuOTU4LjcwMyAxMi4yNzQgMi4zOTYgMTcuNzg1IDQuNzY1IDEuMTEzLjQ3OSAxLjk1NiAxLjE4MSAyLjQ4NiAyLjA5OC41MjkuOTE2LjcxNSAxLjk5OC41NzMgMy4yLS43MDMgNS45NTktMi4zOTUgMTIuMjc0LTQuNzY1IDE3Ljc4Ni0uNDc4IDEuMTEzLTEuMTggMS45NTYtMi4wOTcgMi40ODYtLjkxNy41MjktMS45OTkuNzE1LTMuMjAxLjU3My01Ljk1OS0uNzAzLTEyLjI3NC0yLjM5Ni0xNy43ODYtNC43NjUtMS4xMTMtLjQ3OS0xLjk1Ni0xLjE4MS0yLjQ4Ni0yLjA5OC0uNTI5LS45MTYtLjcxNS0xLjk5OC0uNTczLTMuMjAxQzEuNzUgMTUuNDMgMy40NDIgOS4xMTYgNS44MTIgMy42MDVjLjQ3OC0xLjExMyAxLjE4LTEuOTU2IDIuMDk3LTIuNDg2QzguODI2LjU5IDkuOTA3LjQwNCAxMS4xMS41NDZaJy8lM0UlM0Mvc3ZnJTNFIik7Cn0KQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo2NHJlbSkgewogIC50aW1lbGluZV9fbGFiZWwgewogICAgZm9udDogdmFyKC0tYm9keS0xLW1lZGl1bSk7CiAgfQogIC50aW1lbGluZS0tdmVydGljYWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgICBtYXJnaW46IHZhcigtLXNwYWNpbmctNSkgYXV0byAwOwogIH0KICAudGltZWxpbmUtLWhvcml6b250YWwgLnRpbWVsaW5lX19sYWJlbCB7CiAgICBtYXJnaW4tbGVmdDogdmFyKC0tc3BhY2luZy01KTsKICB9Cn0KCi8qIHNyYy9jb21wb25lbnRzL29yZ2FuaXNtcy9Gb3JtR3JvdXAvRm9ybUdyb3VwLmNzcyAqLwouZm9ybS1ncm91cCB7CiAgZGlzcGxheTogZmxleDsKICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgovKiBzcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvRm9ybUdyb3VwL0hpbnQvSGludC5jc3MgKi8KLmZvcm0tZ3JvdXBfX2Vycm9yLAouZm9ybS1ncm91cF9faGludCB7CiAgZm9udDogdmFyKC0tc3VidGV4dC1yZWd1bGFyKTsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjaW5nLTEpOwogIHdpZHRoOiAtbW96LWZpdC1jb250ZW50OwogIHdpZHRoOiBmaXQtY29udGVudDsKfQouZm9ybS1ncm91cF9faGludCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKfQouZm9ybS1ncm91cF9fZXJyb3IgewogIGNvbG9yOiB2YXIoLS1lcnJvci01MDApOwp9CgovKiBzcmMvY29tcG9uZW50cy9vcmdhbmlzbXMvRm9ybUdyb3VwL0xhYmVsL0xhYmVsLmNzcyAqLwouZm9ybS1pdGVtX19sYWJlbCB7CiAgY29sb3I6IHZhcigtLW5ldXRyYWwtNjAwKTsKICBmb250OiB2YXIoLS1zdWJ0ZXh0LXJlZ3VsYXIpOwogIG1hcmdpbi1ib3R0b206IHZhcigtLXNwYWNpbmctMSk7CiAgbWF4LXdpZHRoOiAxMDAlOwogIG92ZXJmbG93OiBoaWRkZW47CiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgd2lkdGg6IC1tb3otZml0LWNvbnRlbnQ7CiAgd2lkdGg6IGZpdC1jb250ZW50Owp9CgovKiBzcmMvY29tcG9uZW50cy9hdG9tcy9SYWRpby9SYWRpby5jc3MgKi8KLnJhZGlvLWdyb3VwIHsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgZ2FwOiB2YXIoLS1zcGFjaW5nLTQpOwogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQoucmFkaW9fX2lucHV0LXdyYXBwZXIgewogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAgZGlzcGxheTogZmxleDsKICBnYXA6IHZhcigtLXNwYWNpbmctMyk7CiAgcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5yYWRpb19fbGFiZWwgewogIGN1cnNvcjogcG9pbnRlcjsKICBkaXNwbGF5OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KLnJhZGlvX19pbnB1dCB7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CiAgLW1vei1hcHBlYXJhbmNlOiBub25lOwogIGFwcGVhcmFuY2U6IG5vbmU7CiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjsKICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1uZXV0cmFsLTMwMCk7CiAgYm9yZGVyLXJhZGl1czogNTAlOwogIGNvbG9yOiB2YXIoLS1uZXV0cmFsLTMwMCk7CiAgZGlzcGxheTogZ3JpZDsKICBmb250OiBpbmhlcml0OwogIGhlaWdodDogdmFyKC0tc3BhY2luZy02KTsKICBtYXJnaW46IDA7CiAgbWluLXdpZHRoOiB2YXIoLS1zcGFjaW5nLTYpOwogIHBsYWNlLWNvbnRlbnQ6IGNlbnRlcjsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KLnJhZGlvX19pbnB1dDppcyg6Y2hlY2tlZCwgOmZvY3VzLCA6Zm9jdXMtd2l0aGluLCA6YWN0aXZlKSB7CiAgb3V0bGluZTogbm9uZTsKfQoucmFkaW9fX2lucHV0OmlzKDpjaGVja2VkLCA6YWN0aXZlKSB7CiAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwp9CkBtZWRpYSAoaG92ZXI6aG92ZXIpIHsKICAucmFkaW9fX2lucHV0Om5vdCg6ZGlzYWJsZWQsIDpmb2N1cy13aXRoaW4sIDphY3RpdmUsIDpjaGVja2VkKTpob3ZlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwKTsKICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXByaW1hcnktNTAwKTsKICB9Cn0KLnJhZGlvX19pbnB1dDpiZWZvcmUgewogIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXByaW1hcnktNTAwKTsKICBib3JkZXItcmFkaXVzOiA1MCU7CiAgY29udGVudDogIiI7CiAgZGlzcGxheTogYmxvY2s7CiAgaGVpZ2h0OiAwOwogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICByaWdodDogNTAlOwogIHRvcDogNTAlOwogIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgLTUwJSk7CiAgd2lkdGg6IDA7Cn0KLnJhZGlvX19pbnB1dDpjaGVja2VkOmJlZm9yZSB7CiAgaGVpZ2h0OiAxMnB4OwogIHdpZHRoOiAxMnB4Owp9CkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpuby1wcmVmZXJlbmNlKSB7CiAgLnJhZGlvX19pbnB1dDpiZWZvcmUgewogICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogLjE1czsKICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHdpZHRoLCBoZWlnaHQ7CiAgICB0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbjogZWFzZS1vdXQ7CiAgfQp9CgovKiBzcmMvY29tcG9uZW50cy9tb2xlY3VsZXMvUGFzc3dvcmQvUGFzc3dvcmQuY3NzICovCi5wYXNzd29yZCArIC5pbnB1dF9fc3VmZml4IHsKICBwb2ludGVyLWV2ZW50czogYXV0bzsKICByaWdodDogdmFyKC0tc3BhY2luZy02KTsKfQoucGFzc3dvcmQgKyAuaW5wdXRfX3N1ZmZpeCAuYnV0dG9uIHsKICBwYWRkaW5nOiAwOwp9Ci5wYXNzd29yZCArIC5pbnB1dF9fc3VmZml4IC5idXR0b246Zm9jdXMtdmlzaWJsZSB7CiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tcHJpbWFyeS01MDApOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLWJvcmRlci1yYWRpdXMtc20pOwogIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgb3V0bGluZTogbm9uZTsKfQoucGFzc3dvcmQgKyAuaW5wdXRfX3N1ZmZpeCAuYnV0dG9uX19sYWJlbCB7CiAgZGlzcGxheTogZmxleDsKICB3aWR0aDogLW1vei1maXQtY29udGVudDsKICB3aWR0aDogZml0LWNvbnRlbnQ7Cn0KQG1lZGlhIChob3Zlcjpob3ZlcikgewogIC5pbnB1dF9fd3JhcHBlcjpob3ZlciAuaW5wdXQ6bm90KDotbW96LXJlYWQtb25seSwgOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsIHsKICAgIGNvbG9yOiB2YXIoLS1wcmltYXJ5LTUwMCk7CiAgfQogIC5pbnB1dDpob3Zlcjpub3QoOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsLAogIC5pbnB1dF9fd3JhcHBlcjpob3ZlciAuaW5wdXQ6bm90KDpyZWFkLW9ubHksIDpkaXNhYmxlZCkgKyAuaW5wdXRfX3N1ZmZpeCAuYnV0dG9uX19sYWJlbCB7CiAgICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwogIH0KfQouaW5wdXRfX3dyYXBwZXIgLmlucHV0OmlzKDpmb2N1cywgOmFjdGl2ZSk6bm90KDotbW96LXJlYWQtb25seSwgOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsIHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9Ci5pbnB1dF9fd3JhcHBlciAuaW5wdXQ6aXMoOmZvY3VzLCA6YWN0aXZlKTpub3QoOnJlYWQtb25seSwgOmRpc2FibGVkKSArIC5pbnB1dF9fc3VmZml4IC5idXR0b25fX2xhYmVsIHsKICBjb2xvcjogdmFyKC0tcHJpbWFyeS01MDApOwp9CkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6NjRyZW0pIHsKICAucGFzc3dvcmQgKyAuaW5wdXRfX3N1ZmZpeCB7CiAgICByaWdodDogdmFyKC0tc3BhY2luZy00KTsKICB9Cn0K";
1121
1121
  var Du = { exports: {} }, ve = {}, Ju = { exports: {} }, Qu = {};
1122
1122
  /**
1123
1123
  * @license React
@@ -8954,7 +8954,7 @@ class xC extends HTMLElement {
8954
8954
  async connectedCallback() {
8955
8955
  const t = this.attachShadow({ mode: "open" });
8956
8956
  TC(t);
8957
- const n = Ed(t), r = (await import("./App-fd69d599.mjs")).default;
8957
+ const n = Ed(t), r = (await import("./App-af44a4a3.mjs")).default;
8958
8958
  n.render(
8959
8959
  /* @__PURE__ */ $n.jsx(
8960
8960
  r,
@@ -1,4 +1,4 @@
1
- import { e as f } from "./index-ab1ba154.mjs";
1
+ import { e as f } from "./index-ae7de489.mjs";
2
2
  export {
3
3
  f as default
4
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myxtra/authentication-green",
3
- "version": "1.16.0",
3
+ "version": "2.0.0",
4
4
  "main": "./dist/xtra-authentication.mjs",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -21,25 +21,24 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@myxtra/shared": "1.14.0",
24
- "@myxtra/ui-react": "1.16.0",
24
+ "@myxtra/ui-react": "1.17.0",
25
25
  "@tanstack/react-query": "^5.12.0",
26
26
  "clsx": "^2.0.0",
27
27
  "i18next": "^23.7.7",
28
28
  "i18next-browser-languagedetector": "^7.2.0",
29
- "js-cookie": "^3.0.5",
30
29
  "react": "^18.2.0",
31
30
  "react-dom": "^18.2.0",
32
31
  "react-i18next": "^13.5.0"
33
32
  },
34
33
  "devDependencies": {
35
34
  "@crowdin/cli": "^3.15.0",
35
+ "@myxtra/api": "1.2.0",
36
36
  "@myxtra/eslint-config": "1.14.0",
37
37
  "@myxtra/stylelint-config": "1.14.0",
38
38
  "@testing-library/dom": "^9.3.3",
39
39
  "@testing-library/jest-dom": "^6.1.5",
40
40
  "@testing-library/react": "^14.1.2",
41
41
  "@testing-library/user-event": "^14.5.1",
42
- "@types/js-cookie": "^3.0.6",
43
42
  "@types/react": "^18.2.39",
44
43
  "@types/react-dom": "^18.2.17",
45
44
  "@vitejs/plugin-react": "^4.2.0",